![](/img/trans.png)
[英]Rails bootsnap `cannot load such file` error after MacOS Big Sur
[英]Rails: Bootsnap fails to load
今天啟動 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 上。
怎么了? 到底是怎么回事?
我在 Win10 上使用 WSL,幾天前出現了一些重大更新,但沒有像往常一樣工作。 據我了解,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 權限解決方案,但我受夠了,只是將應用程序目錄復制到容器中而不是安裝它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.