OS X 10.10 Yosemite 安装 Rails 错误
OS X 10.10 Yosemite install Rails error
我正在尝试在我的 OS X 10.10 Yosemite 上安装 rails 我收到这些错误:
我已经安装了 XCode Command Line Tools 和 Homebrew,但仍然有问题。
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$
您的机器上似乎同时安装了 rbenv 和 rvm。选择一个然后删除另一个,或者删除两个然后在干净的 table 上重新安装首选的那个。为简单起见,我会保留 rvm,查看其站点:https://rvm.io/。
干杯!
更新:现在看来您又安装了一个 ruby,现在通过 homebrew
。也将其删除。使用 RVM 的要点是,对于你的项目,你需要多个版本的 ruby 并且只让 RVM 管理你当前的 ruby,不要使用任何其他红宝石 (system/homebrew)。
RVM 速成班:
rvm current
- 显示您当前使用的 ruby 和 gemset(如果
任何)。这是非常重要的信息,非常重要,以至于我
建议你把它放到你的 shell 提示符中(如果你做了很多 ruby
编程),所以当你 运行 任何 shell 命令时你会知道哪个
ruby/gemset 您正在使用的一对。使用rvm-prompt
命令来放
进入您的 shell(仅 google 用于 "customize shell prompt" 如何
这样做,我不会在这里深入探讨这个话题。
rvm requirements
- 安装编译所需的所有要求
ruby 在您的平台上(这应该在
你运行rvm install <ruby version>
)
rvm list
- 将列出所有已安装的红宝石并显示
一个是默认的,你当前使用的是哪个。
rvm list known
- 将显示 ruby 你的所有推荐版本
可以安装,暂时看核磁共振部分,不需要
其他一切。
rvm install <ruby-version
- 显然,安装某个版本的 ruby。
rvm use <ruby-version>@<gemset>
- 切换到一些 <ruby-version>
并且,可选 <gemset>
。如果您的目录包含 .ruby-version
and/or .ruby-gemset
文件(见下文),您可以使用以下技巧: rvm use .
- 将使 RVM 为您当前的文件选择这些文件中定义的设置目录。
所以,当我不确定我是否使用正确时,这就是我所做的 ruby:
~/projects ♥ rvm current
ruby-2.2.1
~/projects ♥ rvm use ruby-2.2.0@myapp
Using /Users/alexey/.rvm/gems/ruby-2.2.0 with gemset myapp
~/projects ♥
如果您将特殊文件 .ruby-version
和 .ruby-gemset
放在项目的根目录中,您可以使 rvm
自动切换 ruby 版本和 gemsets(注意 .
在文件名的前面)并将你的 ruby 版本放到 .ruby-version
和你的 gemset 到 .ruby-gemset
,像这样:
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥ cat .ruby-version
ruby-2.1.4
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥ cat .ruby-gemset
active_interaction
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥ cd ..
ruby-2.2.0@pgm-rails2 in ~/projects ♥ cd -
~/projects/active_interaction
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥
注意在我切换目录时提示中的 ruby 版本是如何变化的。
提交 .ruby-version
文件以确保项目中的每个人都使用相同的 ruby 和 not 来提交 .ruby-gemset
因为它可能会干扰其他开发人员的一些自定义设置(如果他们有一个具有不同名称的 gemset,或者根本不使用任何 gemset)。
现在,你现在需要做的是:
- 通过 rvm 安装你想要的 ruby 版本。
- 转到您的项目文件夹并准备
.ruby-version
和(可选).ruby-gemset
文件。
- 切换到这些版本并确保切换正确。
- 现在,您可以 运行 任何您想要的命令,rvm 将使用您想要的 ruby。
有同样的问题。事实证明,即使我安装了开发工具,我也不同意条款和条件。
尝试运行'gcc'命令。就我而言,我收到了这条消息
Agreeing to the Xcode/iOS license requires admin privileges, please
re-run as root via sudo.
重新运行使用 sudo 执行相同的命令就成功了。
我正在尝试在我的 OS X 10.10 Yosemite 上安装 rails 我收到这些错误:
我已经安装了 XCode Command Line Tools 和 Homebrew,但仍然有问题。
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$
您的机器上似乎同时安装了 rbenv 和 rvm。选择一个然后删除另一个,或者删除两个然后在干净的 table 上重新安装首选的那个。为简单起见,我会保留 rvm,查看其站点:https://rvm.io/。 干杯!
更新:现在看来您又安装了一个 ruby,现在通过 homebrew
。也将其删除。使用 RVM 的要点是,对于你的项目,你需要多个版本的 ruby 并且只让 RVM 管理你当前的 ruby,不要使用任何其他红宝石 (system/homebrew)。
RVM 速成班:
rvm current
- 显示您当前使用的 ruby 和 gemset(如果 任何)。这是非常重要的信息,非常重要,以至于我 建议你把它放到你的 shell 提示符中(如果你做了很多 ruby 编程),所以当你 运行 任何 shell 命令时你会知道哪个 ruby/gemset 您正在使用的一对。使用rvm-prompt
命令来放 进入您的 shell(仅 google 用于 "customize shell prompt" 如何 这样做,我不会在这里深入探讨这个话题。rvm requirements
- 安装编译所需的所有要求 ruby 在您的平台上(这应该在 你运行rvm install <ruby version>
)rvm list
- 将列出所有已安装的红宝石并显示 一个是默认的,你当前使用的是哪个。rvm list known
- 将显示 ruby 你的所有推荐版本 可以安装,暂时看核磁共振部分,不需要 其他一切。rvm install <ruby-version
- 显然,安装某个版本的 ruby。rvm use <ruby-version>@<gemset>
- 切换到一些<ruby-version>
并且,可选<gemset>
。如果您的目录包含.ruby-version
and/or.ruby-gemset
文件(见下文),您可以使用以下技巧:rvm use .
- 将使 RVM 为您当前的文件选择这些文件中定义的设置目录。
所以,当我不确定我是否使用正确时,这就是我所做的 ruby:
~/projects ♥ rvm current
ruby-2.2.1
~/projects ♥ rvm use ruby-2.2.0@myapp
Using /Users/alexey/.rvm/gems/ruby-2.2.0 with gemset myapp
~/projects ♥
如果您将特殊文件 .ruby-version
和 .ruby-gemset
放在项目的根目录中,您可以使 rvm
自动切换 ruby 版本和 gemsets(注意 .
在文件名的前面)并将你的 ruby 版本放到 .ruby-version
和你的 gemset 到 .ruby-gemset
,像这样:
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥ cat .ruby-version
ruby-2.1.4
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥ cat .ruby-gemset
active_interaction
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥ cd ..
ruby-2.2.0@pgm-rails2 in ~/projects ♥ cd -
~/projects/active_interaction
ruby-2.1.4@active_interaction in ~/projects/active_interaction on master ♥
注意在我切换目录时提示中的 ruby 版本是如何变化的。
提交 .ruby-version
文件以确保项目中的每个人都使用相同的 ruby 和 not 来提交 .ruby-gemset
因为它可能会干扰其他开发人员的一些自定义设置(如果他们有一个具有不同名称的 gemset,或者根本不使用任何 gemset)。
现在,你现在需要做的是:
- 通过 rvm 安装你想要的 ruby 版本。
- 转到您的项目文件夹并准备
.ruby-version
和(可选).ruby-gemset
文件。 - 切换到这些版本并确保切换正确。
- 现在,您可以 运行 任何您想要的命令,rvm 将使用您想要的 ruby。
有同样的问题。事实证明,即使我安装了开发工具,我也不同意条款和条件。
尝试运行'gcc'命令。就我而言,我收到了这条消息
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
重新运行使用 sudo 执行相同的命令就成功了。