我正在嘗試在運行 Big Sur (11.5.2) 的 2020 Mac Book Pro 上安裝 Compass。
當我嘗試運行時:
gem install compass
我收到錯誤:
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory
如果我嘗試運行:
sudo gem install compass
我收到錯誤:
ERROR: Error installing compass:
ERROR: Failed to build gem native extension.
current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.4/ext/ffi_c
我試過安裝和更新 Ruby。我已嘗試更新系統 Ruby,但系統不允許使用比以下更新的版本:
Updating rubygems-update
Fetching rubygems-update-3.3.3.gem
Successfully installed rubygems-update-3.3.3
Parsing documentation for rubygems-update-3.3.3
Installing ri documentation for rubygems-update-3.3.3
Installing darkfish documentation for rubygems-update-3.3.3
Done installing documentation for rubygems-update after 206 seconds
Parsing documentation for rubygems-update-3.3.3
Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 3.3.3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem
% ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
不確定下一步該做什么或嘗試什么。
有人對如何安裝指南針有任何想法嗎?
uj5u.com熱心網友回復:
正如您在sudo通話中注意到的那樣,這實際上分解為兩個問題。
(1) 您正在嘗試將 gems 寫入系統 Ruby 的受保護目錄。
在大多數開發環境中,最好安裝一個 Ruby 版本管理器,它允許您為不同的專案并排安裝多個 Ruby。純粹主觀上,我建議只rbenv管理Ruby,或者將 Ruby 版本與其他語言版本一起管理。但是,使用哪個 Ruby 版本管理器的問題已經很清楚了,因此您可以根據現有資訊選擇最適合您需求的解決方案。asdf
(2) 您正在安裝帶有本機擴展的 gem,這意味著您需要在系統上安裝底層 C 庫才能正確構建(假設您使用的是默認的 Ruby 實作 CRuby)。您需要libffi-dev在您的機器上安裝才能正確構建該 gem。基于這個問題,似乎brew install libffi應該很簡單。
最后,我會建議使用bundlergem來管理每個專案的 gems是慣用的做法。我會重新考慮您是否真的想在系統范圍內運行這個 gem,或者它是否可能在多個專案中改變版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/400111.html
上一篇:包裝陣列方法更干凈更干代碼
