嘗試從我的終端安裝 Rails 時,在 Mac OS Big Sur 上,通過鍵入“sudo gem install rails”,我收到錯誤訊息:“無法構建本機擴展”。我安裝了 ruby?? 2.6.3。我嘗試安裝 Xcode,因為我在論壇中看到了建議,但它仍然不起作用。我不知道該怎么辦:
在這里,終端中的錯誤:
% sudo gem install rails 構建原生擴展。這可能需要一段時間... 錯誤:安裝導軌時出錯:錯誤:無法構建 gem 本機擴展。
current directory: /Library/Ruby/Gems/2.6.0/gems/nio4r-2.5.8/ext/nio4r
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./ siteconf20211119-69718-1dr6qis.rb extconf.rb 檢查 unistd.h... *** extconf.rb 失敗 *** 由于某種原因無法創建 Makefile,可能缺少必要的庫和/或頭檔案。檢查 mkmf.log 檔案以獲取更多詳細資訊。您可能需要配置選項。
uj5u.com熱心網友回復:
我不止一次遇到過類似的問題。
我可以想到三個潛在的原因和解決方案,盡管您的問題可能源于不同的東西。
1. Ruby 版本不匹配
你以為你在使用 Ruby 2.6.3。但實際上,您的 gem 命令識別出的 ruby?? 是不同版本的 Ruby。檢查它ruby --version并確保它是正確的。
如果您在以前的版本中使用 Ruby 中的 Rails,并且從那時起升級了 Ruby,則可能會引發此類錯誤,具體取決于您的包管理系統如何處理這種情況。如果是這樣,請先嘗試卸載 Rails 并重新安裝。
2.安裝Ruby的問題
出于某種原因,您嘗試使用的 Ruby (2.6.3) 尚未正確安裝。然后,一個簡單的解決方案是重新安裝 Ruby,確保它安裝正確。
這在很大程度上取決于您使用的系統,但如果您使用的rbenv是
rbenv uninstall 2.6.3
rbenv install 2.6.3
rbenv rehash
應該做的作業。然后,您可以重新安裝 Rails。
3. 權限問題(目錄撰寫等)
在您的情況下,您運行sudo gem install rails,這可能意味著您已經以超級用戶身份安裝了 Ruby 和 Gems,包括 Rails,而您的 Rails 應用程式目錄位于普通用戶中。
我知道以運行 Rails 的同一用戶身份安裝 Ruby 和 Gems 通常更安全(但請注意,在某些特定環境中在實踐中可能并非不可能)。當用戶不同時,可能會遇到各種權限問題,安裝Rails應用程式也有問題——這是可能的,但在我的經驗中并不簡單。
因此,我的建議是,如果可能且對您實用,洗掉所有已安裝的 Ruby 并以擁有?? Rails 應用程式目錄的普通用戶身份重新安裝 (=Ruby),而不使用sudo. 例如,如果您正在使用rbenv,則卸載rbenv,洗掉與 相關的所有目錄rbenv,然后rbenv以普通用戶的身份從頭重新安裝。或者,如果您使用的是系統默認的 Ruby,我建議您安裝 Ruby 版本管理系統,rbenv或者rvm,作為普通用戶,使用它安裝 Ruby(s),并使用它管理已安裝的 Ruby 版本.
如果兩者都不可能或不切實際,請檢查安裝 Gems 的目錄權限,并確保它們與您期望的一致。就我個人而言,每當我使用 Rails 時,我都會盡一切努力使用 Ruby 版本管理系統。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364625.html
