当今天启动一个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都没有修改。打开和关闭此行证明问题出在bootsnap上。
怎么啦?怎么一回事?
发布于 2020-04-16 22:21:15
发布于 2019-08-17 16:26:20
我在Win10上使用WSL,几天前有了一些大的更新,但没有像往常一样工作。据我所知,WSL改变了一些文件夹权限的设置。
由于我的项目位于C:\sites下,因此Bootsnap似乎需要拥有对C:\sites\mywebsite\tmp\cache\bootsnap-compile-cache的完全权限
在this GitHub issue中回复建议文件夹必须是可写的。因此,基本上我必须授予我的Win10用户对我的C:\sites和子文件夹的完全访问权限。为了做到这一点,如果由于某些原因不能立即工作,我遵循了this tutorial,试着删除你的“站点”文件夹的“只读”,例如,cheeck this suggestion
但关键的一行是-您必须拥有该cache文件夹的完全权限,以便Bootsnap可以在其中写入其文件夹和文件。
我希望这能帮到你。
发布于 2021-02-20 12:34:28
我在Docker容器中遇到了这种情况,其中Rails应用程序根目录是从主机挂载的卷。删除tmp目录(每个Promise Preston's answer)并没有解决问题,因为这样Rails就不能创建它了。
也许this answer (或类似的)会导致正确的Docker权限解决方案,但我受够了,只是将应用程序目录复制到容器中,而不是挂载它。
https://stackoverflow.com/questions/57335998
复制相似问题