2015-09-07 119 views
1

我想在我的OS X 10.10 Yosemite上安裝rails我得到這些錯誤:
我已經安裝了XCode命令行工具和自制軟件和sill有問題。OS X 10.10優勝美地安裝Rails錯誤

ERROR: Error installing rails: 
ERROR: Failed to build gem native extension. 

/usr/local/opt/ruby/bin/ruby -r ./siteconf20150908-43862-19795mu.rb extconf.rb 
checking if the C compiler accepts ... *** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of necessary 
libraries and/or headers. Check the mkmf.log file for more details. You may 
need configuration options. 

Provided configuration options: 
--with-opt-dir 
--with-opt-include 
--without-opt-include=${opt-dir}/include 
--with-opt-lib 
--without-opt-lib=${opt-dir}/lib 
--with-make-prog 
--without-make-prog 
--srcdir=. 
--curdir 
--ruby=/usr/local/Cellar/ruby/2.2.3/bin/$(RUBY_BASE_NAME) 
--help 
--clean 
/usr/local/Cellar/ruby/2.2.3/lib/ruby/2.2.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
from /usr/local/Cellar/ruby/2.2.3/lib/ruby/2.2.0/mkmf.rb:571:in `block in try_compile' 
from /usr/local/Cellar/ruby/2.2.3/lib/ruby/2.2.0/mkmf.rb:522:in `with_werror' 
from /usr/local/Cellar/ruby/2.2.3/lib/ruby/2.2.0/mkmf.rb:571:in `try_compile' 
from extconf.rb:80:in `nokogiri_try_compile' 
from extconf.rb:87:in `block in add_cflags' 
from /usr/local/Cellar/ruby/2.2.3/lib/ruby/2.2.0/mkmf.rb:619:in `with_cflags' 
from extconf.rb:86:in `add_cflags' 
from extconf.rb:337:in `<main>' 

extconf failed, exit code 1 

Gem files will remain installed in /Users/Nitzan/.rvm/gems/ruby-2.2.1/gems/nokogiri-1.6.6.2 for inspection. 
Results logged to /Users/Nitzan/.rvm/gems/ruby-2.2.1/extensions/x86_64-darwin-14/2.2.0/nokogiri-1.6.6.2/gem_make.out 
Nitzans-MBP:~ Nitzan$ 

回答

0

看來你已經在你的機器上安裝了rbenv和rvm。選擇一個並刪除另一個,或者同時刪除並在乾淨的桌面上再次安裝首選項。爲了簡單起見,我會保留rvm,檢查它的網站:https://rvm.io/。 乾杯!

UPDATE:現在看來你已經安裝了一個紅寶石,現在通過homebrew。也刪除它。使用RVM的意義在於,對於您的項目,您需要多個版本的Ruby,並且只允許RVM管理您當前的Ruby,不要使用任何其他Ruby(系統/自制軟件)。

RVM速成班:

  1. rvm current - 顯示您當前使用的紅寶石和寶石(如果 任何)。這是非常重要的信息,所以重要的是,我建議你把它放到你的shell提示符下(如果你做了很多ruby 編程),所以當你運行任何shell命令時你都會知道哪些是 ruby​​/gemset pair你正在使用。使用rvm-prompt命令將它 放到你的shell中(只是谷歌爲「定製shell提示符」如何 這樣做,我不會在這裏深入研究這個主題)。
  2. rvm requirements - 安裝所有需要的要求你的平臺上編譯 紅寶石(這應該已經自動時 運行rvm install <ruby version>完成)
  3. rvm list - 會列出您所有已安裝的紅寶石和展示其 一個是默認的,哪一個你正在使用嗎?
  4. rvm list known - 將顯示所有推薦的紅寶石版本,您可以安裝,現在看看MRI部分,您不需要 其他所有內容。
  5. rvm install <ruby-version - 顯然,安裝一些版本的紅寶石。
  6. rvm use <ruby-version>@<gemset> - 切換到一些<ruby-version> 和,可選<gemset>。如果您的目錄包含.ruby-version和/或.ruby-gemset文件(請參閱下文),則可以使用以下技巧:rvm use . - 將使RVM獲取在當前目錄中定義在這些文件中的設置。

所以,這就是我做什麼,當我不知道如果我使用正確的紅寶石:

~/projects ♥ rvm current 
ruby-2.2.1 
~/projects ♥ rvm use [email protected] 
Using /Users/alexey/.rvm/gems/ruby-2.2.0 with gemset myapp 
~/projects ♥ 

你可以,如果你在你的項目的根目錄放置rvm自動切換Ruby版本和gemsets特殊文件.ruby-version.ruby-gemset(注意文件名前面的.),並把你的Ruby版本.ruby-version和你的寶石來.ruby-gemset,像這樣:

[email protected]_interaction in ~/projects/active_interaction on master ♥ cat .ruby-version 
ruby-2.1.4 
[email protected]_interaction in ~/projects/active_interaction on master ♥ cat .ruby-gemset 
active_interaction 
[email protected]_interaction in ~/projects/active_interaction on master ♥ cd .. 
[email protected] in ~/projects ♥ cd - 
~/projects/active_interaction 
[email protected]_interaction in ~/projects/active_interaction on master ♥ 

請注意,在切換目錄時,提示中的ruby版本是如何改變的。

它也是有用的承諾.ruby-version文件,以使該項目確保每個人都使用相同的紅寶石和提交.ruby-gemset,因爲它可以與其他開發人員的一些自定義設置干擾(如果他們與另一個名稱的寶石,或者根本不使用任何gemsets)。現在

,你需要現在做什麼:

  1. 通過RVM安裝所需的紅寶石版本。
  2. 轉到您的項目文件夾並準備.ruby-version和(可選).ruby-gemset文件。
  3. 切換到這些版本並確保您正確切換。
  4. 現在,你可以運行你想要的任何命令,rvm將使用你想要的ruby。
+0

刪除rbenv,仍然會得到相同的錯誤 – android

+0

重新加載您的終端(只需打開一個新標籤)並重試。請更新你的錯誤,因爲至少有一些輸出應該改變,因爲你已經刪除了.rbenv(你不應該有任何包含'.rbenv'的行)。如果仍然存在,請通過'rm -rf〜/ .rbenv'手動刪除它。 –

+0

更新了錯誤 – android

2

有同樣的問題。事實證明,即使我安裝了開發工具,我也不同意這些條款和條件。

嘗試運行'gcc'命令。在我來說,我得到這個消息

在同意的Xcode/iOS的許可證需要管理員權限,請 重新運行如通過sudo根。

與sudo重新運行相同的命令做了伎倆。

相關問題