Rails bootsnap не загружается
При запуске приложения rails 5 сегодня возникает следующая ошибка:
1: from /home/deploy/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/compile_cache/iseq.rb:37:in `load_iseq'
/home/deploy/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/bootsnap-1.4.4/lib/bootsnap/compile_cache/iseq.rb:37:in `fetch':
Operation not permitted - bs_fetch:atomic_write_cache_file:chmod (Errno::EPERM)
Другие вопросы здесь указывают на решение, при котором вызов gemfile имеет require: false
но это уже указано
gem 'bootsnap', '>= 1.1.0', require: false
Единственный способ запустить сервер приложений (в настоящее время в режиме разработки) - это закомментировать из boot.rb следующую строку:
# require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
Между предыдущей перезагрузкой (вчера) и настоящим моментом ни boot.rb, ни Gemfile не были изменены. Включение и выключение этой строки доказывает, что проблема в начальной загрузке.
Что случилось? Что происходит?
3 ответа
У меня возникла эта проблема, когда я работал над приложением Rails, которое некоторое время работало нормально.
Проблема в том, что самоцвет Bootsnaptmp
каталог в каталоге вашего приложения не доступен для записи текущему пользователю, то есть текущий пользователь не имеет разрешения на запись в гем Bootsnaptmp
в каталоге вашего приложения.
Вот как я это решил:
Просто удалите tmp
каталог в каталоге вашего приложения с правами суперпользователя:
sudo rm -rf tmp
sudo rm -rf tmp
Не воссоздайте tmp
каталог снова, это пустая трата усилий
Просто запустите свое приложение иtmp
каталог будет снова создан автоматически:
rails s
Вот и все.
надеюсь, это поможет
Я использую WSL на Win10, несколько дней назад пришло какое-то большое обновление и ничего не заработало как обычно. Как я понимаю, WSL изменил некоторые настройки разрешений для папок или что-то в этом роде.
Поскольку мои проекты находятся под C:\sites
Похоже, Bootsnap должен иметь полные права для C:\sites\mywebsite\tmp\cache\bootsnap-compile-cache
Ответ в этой проблеме GitHub предполагает, что папка должна быть доступна для записи. Таким образом, в основном я должен был предоставить полный доступ для моего пользователя Win10 к моему C:\sites
и подпапки. Для того, чтобы я следовал этому руководству. Если по какой-то причине это не сработало сразу, попробуйте удалить папку "только для чтения" для вашей папки "сайты", например, проверьте это предложение.
Суть в том, что для этого нужно иметь полные права. cache
Папка, так что Bootsnap может записывать туда свои папки и файлы.
Надеюсь, это поможет.
Я столкнулся с этим с контейнером Docker, в котором корневой каталог приложения Rails был томом, смонтированным с хоста. Удаление
tmp
каталог (согласно ответу Promise Preston ) не решил проблему, потому что Rails не смог его создать.
Вероятно, этот ответ (или такой, как он) приведет к правильному решению с разрешениями Docker, но мне это надоело, и я просто скопировал каталог приложения в контейнер вместо его монтирования.