我收到了此页http://www.fakingfantastic.com/2010/11/26/fixing-the-you-have-to-install-development-tools-first-error-with-nokogiri/中描述的错误,并按照他们的说明收到了以下错误:
[2011-02-13 11:05:03] ./configure --prefix=/Users/MYNAME/.rvm/rubies/ruby-1.9.2-p136 --enable-shared
checking build system type... i386-apple-darwin10.6.0
checking host system type... i386-apple-darwin10.6.0
checking target system type... i386-apple-darwin10.6.0
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/Users/MYNAME/.rvm/src/ruby-1.9.2-p136':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
我认为这个:https://gist.github.com/767866看起来像一个aswer,但我找不到.rvmrc。
编辑:我认为问题是i386。我的1.8.2安装是x8x_64,似乎。编辑2:经过多一点工作后,我把它吐出了这个错误
[2011-02-13 11:51:05] ./configure --prefix=/Users/MYNAME/.rvm/rubies/ruby-1.9.2-p136 --enable-shared --build=i386-apple-darwin10.6.0 --host=i386-apple-darwin10.6.0
checking build system type... i386-apple-darwin10.6.0
checking host system type... i386-apple-darwin10.6.0
checking target system type... i386-apple-darwin10.6.0
checking for i386-apple-darwin10.6.0-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for i386-apple-darwin10.6.0-g++... no
checking for i386-apple-darwin10.6.0-c++... no
checking for i386-apple-darwin10.6.0-gpp... no
checking for i386-apple-darwin10.6.0-aCC... no
checking for i386-apple-darwin10.6.0-CC... no
checking for i386-apple-darwin10.6.0-cxx... no
checking for i386-apple-darwin10.6.0-cc++... no
checking for i386-apple-darwin10.6.0-cl.exe... no
checking for i386-apple-darwin10.6.0-FCC... no
checking for i386-apple-darwin10.6.0-KCC... no
checking for i386-apple-darwin10.6.0-RCC... no
checking for i386-apple-darwin10.6.0-xlC_r... no
checking for i386-apple-darwin10.6.0-xlC... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... /lib/cpp
configure: error: in `/Users/MYNAME/.rvm/src/ruby-1.9.2-p136':
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
[2011-02-13 11:58:36] ./configure --prefix=/Users/MYNAME/.rvm/rubies/ruby-1.9.2-p136 --enable-shared
checking build system type... i386-apple-darwin10.6.0
checking host system type... i386-apple-darwin10.6.0
checking target system type... i386-apple-darwin10.6.0
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/Users/MYNAME/.rvm/src/ruby-1.9.2-p136':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
答案 0 :(得分:1)
@ eggie5说:
我会放入你的os x cd并再次安装xcode。
请勿从DVD安装XCode。已知10.6(Snow Leopard)磁盘上的版本是错误的。从Apple's XCode站点安装最新版本。您必须注册才能下载,但这是免费注册。
我怀疑您升级到10.6,而不是在购买机器时默认安装。 10.6是64位,与其相关的XCode版本一样,所以一切都应该是64位干净的。因为它不像普通的Leopard或10.6之前的操作系统。这意味着所有RVM托管的Rubies都是可疑的,需要清理,以及在升级和更新XCode之前编译的任何gem。
安装XCode发行版后,您需要卸载,然后安装RVM托管的Rubies。首先,将RVM更新为最新版本:键入rvm -v
并记下版本号。输入rvm get head
以加载最新版本。加载完成后,您应该看到一个新的版本号。 RVM变化很快,因此您希望定期更新到最新版本。
这来自RVM FAQ,这是使用RVM的非常好的信息,尤其是关于使用gems的sudo
的评论:
我的红宝石正在编译为32位,但我在Mac OS X Snow Leopard上有大量的广告,它是64位!!!
RVM编译到您当前运行的内核架构。这意味着如果你的内核作为32位内核(uname -m)运行,它将编译32位。您可以通过在安装ruby解释器之前将以下内容放在〜/ .rvmrc中来覆盖此行为:
rvm_archflags =“ - arch x86_64”
我认为设置它而不是依赖默认值是个好主意,因为从现在开始你可能会使用64位。
键入rvm reload
或关闭终端窗口并重新打开会话。
输入rvm notes
并阅读。这将为您提供基于操作系统顺利安装Ruby所需的先决条件列表。如果无法安装这些功能,可能无法在Ruby中使用各种功能,这将导致随机的,奇怪的故障。
键入rvm list
并记下已安装的Ruby版本。假装你的第一个是ruby-1.8.7-p330
。类型:
rvm uninstall ruby-1.8.7-p330
rvm install ruby-1.8.7-p330
对每个已安装的重复。完成后,键入rvm info
并查看其中所说的内容是否通过了完整性检查。
如果一切看起来都不错,那么就该重建宝石的原生驱动程序了。
这两个步骤都是可选的,但也是良好定期家务的一部分:
gem update
,则可能需要更新宝石。 rvm ruby 'gem update'
将浏览已安装的Rubies,并对其进行更新。rvm ruby 'gem clean'
将遍历已安装的Rubies,并清除旧的东西。 要重建原生驱动程序,请键入rvm ruby 'gem pristine --all'
,这将重新安装所有宝石。
然后,运行rvm info
并确保它再次返回合理的信息。
此外,作为紧急逃生舱,通过键入~/.rvm
或使用rm -f ~/.rvm
,然后重新开始,将您的rvm implode
目录清除是完全安全的。重新安装Ruby是这个过程中最长的部分,一旦支持库存在,RVM就会变得非常轻松。
答案 1 :(得分:-1)
我会放入你的os x cd并再次安装xcode。