无法在Lion下使用RVM安装Ruby – GCC问题

关于这个问题的大部分问题是由于缺lessXcode; 我有Xcode 4.2安装。

安装尝试:

rvm install 1.9.3 Installing Ruby from source to: /Users/jamie/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)... ruby-1.9.3-p0 - #fetching ruby-1.9.3-p0 - #extracted to /Users/jamie/.rvm/src/ruby-1.9.3-p0 (already extracted) Fetching yaml-0.1.4.tar.gz to /Users/jamie/.rvm/archives Extracting yaml-0.1.4.tar.gz to /Users/jamie/.rvm/src Configuring yaml in /Users/jamie/.rvm/src/yaml-0.1.4. Compiling yaml in /Users/jamie/.rvm/src/yaml-0.1.4. Installing yaml to /Users/jamie/.rvm/usr ruby-1.9.3-p0 - #configuring ERROR: Error running ' ./configure --prefix=/Users/jamie/.rvm/rubies/ruby-1.9.3-p0 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/jamie/.rvm/usr ', please read /Users/jamie/.rvm/log/ruby-1.9.3-p0/configure.log ERROR: There has been an error while running configure. Halting the installation. 

configure.log:

 [2011-11-07 04:32:17] ./configure --prefix=/Users/jamie/.rvm/rubies/ruby-1.9.3-p0 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/jamie/.rvm/usr configure: WARNING: unrecognized options: --with-libyaml-dir checking build system type... x86_64-apple-darwin11.2.0 checking host system type... x86_64-apple-darwin11.2.0 checking target system type... x86_64-apple-darwin11.2.0 checking whether the C compiler works... no configure: error: in `/Users/jamie/.rvm/src/ruby-1.9.3-p0': configure: error: C compiler cannot create executables See `config.log' for more details 

GCC可用:

 gcc -v Using built-in specs. Target: i686-apple-darwin11 Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.1~1/src/configure --disable-checking --enable-werror --prefix=/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.1~1/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1 Thread model: posix gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00) ls /usr/bin | grep gcc gcc i686-apple-darwin11-llvm-gcc-4.2 llvm-gcc llvm-gcc-4.2 

基于config.log(由于大小发布在底部)我尝试了gcc-4.2到gcc的symlinking,然后安装:

 rvm install 1.9.3 ERROR: The autodetected CC(/usr/bin/gcc-4.2) is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`, and set CC=/path/to/gcc . 

所以我可能只是在其他地方抢gcc,但我最关心的是为什么发生这种情况。 不应该安装Xcode就够了?

的config.log:

 This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by configure, which was generated by GNU Autoconf 2.68. Invocation command line was $ ./configure --prefix=/Users/jamie/.rvm/rubies/ruby-1.9.3-p0 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/jamie/.rvm/usr ## --------- ## ## Platform. ## ## --------- ## hostname = Wilson.local uname -m = x86_64 uname -r = 11.2.0 uname -s = Darwin uname -v = Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 /usr/bin/uname -p = i386 /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = Mach kernel version: Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 Kernel configured for up to 4 processors. 4 processors are physically available. 4 processors are logically available. Processor type: i486 (Intel 80486) Processors active: 0 1 2 3 Primary memory available: 8.00 gigabytes Default processor set: 110 tasks, 546 threads, 4 processors Load average: 1.28, Mach factor: 2.71 /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /Users/jamie/.rvm/usr/bin PATH: /usr/bin PATH: /bin PATH: /usr/sbin PATH: /sbin PATH: /usr/local/bin PATH: /usr/X11/bin PATH: /Users/jamie/bin PATH: /Users/jamie/.rvm/bin PATH: /Users/jamie/.rvm/bin ## ----------- ## ## Core tests. ## ## ----------- ## configure:2764: checking build system type configure:2778: result: x86_64-apple-darwin11.2.0 configure:2849: checking host system type configure:2862: result: x86_64-apple-darwin11.2.0 configure:2882: checking target system type configure:2895: result: x86_64-apple-darwin11.2.0 configure:3376: checking for C compiler version configure:3385: gcc-4.2 --version >&5 ./configure: line 3387: gcc-4.2: command not found configure:3396: $? = 127 configure:3385: gcc-4.2 -v >&5 ./configure: line 3387: gcc-4.2: command not found configure:3396: $? = 127 configure:3385: gcc-4.2 -V >&5 ./configure: line 3387: gcc-4.2: command not found configure:3396: $? = 127 configure:3385: gcc-4.2 -qversion >&5 ./configure: line 3387: gcc-4.2: command not found configure:3396: $? = 127 configure:3416: checking whether the C compiler works configure:3438: gcc-4.2 conftest.c >&5 ./configure: line 3440: gcc-4.2: command not found configure:3442: $? = 127 configure:3480: result: no configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define CANONICALIZATION_FOR_MATHN 1 | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:3485: error: in `/Users/jamie/.rvm/src/ruby-1.9.3-p0': configure:3487: error: C compiler cannot create executables See `config.log' for more details ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-apple-darwin11.2.0 ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXFLAGS_set= ac_cv_env_CXXFLAGS_value= ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_host=x86_64-apple-darwin11.2.0 ac_cv_prog_CC=gcc-4.2 ac_cv_target=x86_64-apple-darwin11.2.0 ## ----------------- ## ## Output variables. ## ## ----------------- ## ALLOCA='' AR='' ARCHFILE='' ARCH_FLAG='' AS='' ASFLAGS='' BASERUBY='ruby' BUILTIN_ENCOBJS='' BUILTIN_TRANSOBJS='' BUILTIN_TRANSSRCS='' CAPITARGET='' CC='gcc-4.2' CCDLFLAGS='' CFLAGS='' CHDIR='' COMMON_HEADERS='' COMMON_LIBS='' COMMON_MACROS='' COUTFLAG='' CP='' CPP='' CPPFLAGS='' CPPOUTFILE='' CXX='g++-4.2' CXXFLAGS='' DEFS='' DLDFLAGS='' DLDLIBS='' DLEXT2='' DLEXT='' DLLWRAP='' DOT='' DOXYGEN='' ECHO_C='\c' ECHO_N='' ECHO_T='' EGREP='' ENABLE_SHARED='' EXECUTABLE_EXTS='' EXEEXT='' EXPORT_PREFIX='' EXTOUT='' EXTSTATIC='' GCC='' GNU_LD='' GREP='' INSTALLDOC='' INSTALL_DATA='' INSTALL_PROGRAM='' INSTALL_SCRIPT='' LDFLAGS='' LDSHARED='' LDSHAREDXX='' LIBEXT='' LIBOBJS='' LIBPATHENV='' LIBPATHFLAG='' LIBRUBY='' LIBRUBYARG='' LIBRUBYARG_SHARED='' LIBRUBYARG_STATIC='' LIBRUBY_A='' LIBRUBY_ALIASES='' LIBRUBY_DLDFLAGS='' LIBRUBY_LDSHARED='' LIBRUBY_RELATIVE='' LIBRUBY_SO='' LIBS='' LINK_SO='' LN_S='' LTLIBOBJS='' MAINLIBS='' MAJOR='1' MAKEDIRS='' MAKEFILES='' MANTYPE='' MINIOBJS='' MINIRUBY='' MINOR='9' MKDIR_P='' NM='' NROFF='' NULLCMD='' OBJCOPY='' OBJDUMP='' OBJEXT='' OUTFLAG='' PACKAGE='' PACKAGE_BUGREPORT='' PACKAGE_NAME='' PACKAGE_STRING='' PACKAGE_TARNAME='' PACKAGE_URL='' PACKAGE_VERSION='' PATH_SEPARATOR=':' PKG_CONFIG='' PREP='' RANLIB='' RDOCTARGET='' RI_BASE_NAME='' RM='' RMALL='' RMDIR='' RMDIRS='' RPATHFLAG='' RUBYW_BASE_NAME='rubyw' RUBYW_INSTALL_NAME='' RUBY_BASE_NAME='ruby' RUBY_INSTALL_NAME='' RUBY_PROGRAM_VERSION='1.9.3' RUBY_RELEASE_DATE='2011-10-30' RUBY_SO_NAME='' RUNRUBY='' SET_MAKE='' SHELL='/bin/sh' SOLIBS='' STATIC='' STRIP='' SYMBOL_PREFIX='' TEENY='1' TEST_RUNNABLE='' THREAD_MODEL='' TRY_LINK='' UNIVERSAL_ARCHNAMES='' UNIVERSAL_INTS='' USE_RUBYGEMS='' WERRORFLAG='' WINDRES='' XCFLAGS='' XLDFLAGS='' XRUBY='' XRUBY_LIBDIR='' XRUBY_RUBYHDRDIR='' XRUBY_RUBYLIBDIR='' ac_ct_CC='' ac_ct_CXX='' ac_ct_OBJCOPY='' ac_ct_OBJDUMP='' arch='' bindir='${exec_prefix}/bin' build='x86_64-apple-darwin11.2.0' build_alias='' build_cpu='x86_64' build_os='darwin11.2.0' build_vendor='apple' cflags=' ${optflags} ${debugflags} ${warnflags}' configure_args='' cppflags='' cxxflags=' ${optflags} ${debugflags} ${warnflags}' datadir='${datarootdir}' datarootdir='${prefix}/share' debugflags='' docdir='${datarootdir}/doc/${PACKAGE}' dvidir='${docdir}' exec='' exec_prefix='NONE' host='x86_64-apple-darwin11.2.0' host_alias='' host_cpu='x86_64' host_os='darwin11.2.0' host_vendor='apple' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' oldincludedir='/usr/include' optflags='' pdfdir='${docdir}' prefix='/Users/jamie/.rvm/rubies/ruby-1.9.3-p0' program_transform_name='s&^&&' psdir='${docdir}' ridir='' ruby_pc='' ruby_version='' rubyhdrdir='' rubylibprefix='' rubyw_install_name='' sbindir='${exec_prefix}/sbin' setup='' sharedstatedir='${prefix}/com' sitearch='' sitedir='' sitehdrdir='' sysconfdir='${prefix}/etc' target='x86_64-apple-darwin11.2.0' target_alias='' target_cpu='x86_64' target_os='darwin11.2.0' target_vendor='apple' try_header='' vendordir='' vendorhdrdir='' warnflags='' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define PACKAGE_STRING "" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define CANONICALIZATION_FOR_MATHN 1 configure: exit 77 

这个答案被多次编辑,现在包含了几个替代解决scheme。 首先尝试简单的“编辑3”解决scheme。

Ruby 1.9.3-p125及更高版本对clang有官方支持 ,所以如果你正在安装这样的版本,你不需要GCC。 如果您正在安装旧版本的Ruby,请继续阅读。

要用GCC编译Ruby,你需要一个非LLVM版本的GCC,它不再包含在XCode 4.2中。 自己安装(或临时降级到XCode 4.1),然后执行CC=/usr/local/bin/gcc-4.2 rvm install 1.9.3 --enable-shared (将pathreplace为非LLVM gcc)。

编辑: https : //github.com/kennethreitz/osx-gcc-installer/downloads可能有助于安装GCC。 还有一些信息可以通过运行rvm requirements

编辑2:为了更简单的解决scheme,你可以尝试添加--with-gcc=clang参数来configure Ruby使用clang而不是GCC。

编辑3rvm install 1.9.3 --with-gcc=clang为你做。

注意:使用当前版本的XCode,您需要单独安装与XCode菜单 – >首选项 – >下载 – >组件相关的命令行工具。 这是在命令行上使用XCode进行编译的先决条件,而不仅仅是Ruby。

注2:如果在执行完这些步骤后仍然无法正常工作,请尝试重新启动或重新login,以确保环境设置正确。

注3:1.9.3-p125之前的Ruby版本可能并不总是与clang完全兼容,所以如果在生产环境中使用“编辑3”解决scheme,请彻底testing您的软件。

对堆栈溢出的总结

我试图在App Store上安装Xcode上的一个干净的狮子安装SiriProxy

我不断收到像这样的错误:提供的CC(/ usr / bin / gcc)是基于LLVM的。

 bash-3.2$ rvm install 1.9.3 ERROR: The provided CC(/usr/bin/gcc) is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`. 

两天后,终于有了这两行工作:

 http://stackoverflow.com/questions/8000145/ruby-rvm-llvm-and-mysql bash-3.2$ rvm get head bash-3.2$ CC=/usr/bin/gcc-4.2 rvm install 1.9.3 --enable-shared 

在此之前,我曾尝试Ruby和Lion上的每一个stackoverflow文章,所以这些可能已经做了一些设置,帮助上述2个步骤工作:

我尝试的东西包括:

运行安装Xcode.app(我已经从App Store下载 – 运行这个进一步安装)

安装

 https://github.com/kennethreitz/osx-gcc-installer/downloads may help for installing GCC. 

在CC中设置

更多/Users//.bash_profile

 bash-3.2$ more /Users/<USERNAME>/.bash_profile [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function export CC=/usr/share/TargetConfigs/bin/gcc 

第一行来自SiriProxy安装指令https://github.com/plamoni/SiriProxy

第二条线出口CC似乎从来没有工作。 所以不要添加。

它有很多版本,每个指向我最后使用CC = / usr / bin / gcc-4.2 rvm install 1.9.3 –enable-shared

 rvm install 1.9.3 --with-gcc=clang 

为我工作。 这是一个全新的Xcode的狮子(没有“传统的”GCC)。

好的,我不需要单独安装gcc-4.2,我使用XCode提供的那个,但是我遇到了--with-gcc=clang没有通过的问题。 .rvmrc添加到我的.rvmrc

 export rvm_configure_flags="--with-gcc=clang" 

按要求工作

 rvm upgrade ruby-1.9.2-p290 ruby-1.9.3-p125 ... ruby-1.9.3-p125 - #extracted to /Users/leif/.rvm/src/ruby-1.9.3-p125 (already extracted) ruby-1.9.3-p125 - #configuring ruby-1.9.3-p125 - #compiling ruby-1.9.3-p125 - #installing .... Successfully migrated ruby-1.9.2-p290 to ruby-1.9.3-p125 Upgrade complete! bang:$ ruby -v ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0] 

注意我的env是以下内容

OS

 Darwin bang.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64 

的XCode

 XCode 4.2.1 Build 4D502 

GCC

 i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00) lrwxr-xr-x 1 root wheel 12 22 Dec 21:30 /usr/bin/gcc -> llvm-gcc-4.2 

我尝试使用在命令行上传递--with-gcc=clang给rvm升级命令的答案,但是它不起作用,它似乎没有通过rvm进行configuration。 显然,RVM中没有传递给参数的问题是固定的(在2011年的提交1641ceb0中),但是即使在将RVM升级到最新(通过rvm get latest )之后,它仍然没有通过。 使用.rvmrc文件是唯一能为我工作的方法。

只能在这里回答,因为我不能对莱安德罗对原始问题的评论发表评论。 花了好几天的时间试图让这个工作,他的解决scheme是终于得到它为我工作的那个:

编辑3 didn'work我(Xcode 4.2.1),但安装readline后

  rvm pkg install readline 

并传递一个额外的参数

 rvm install 1.9.3 --with-gcc=clang --with-readline-dir=$rvm_path/usr 

它安装成功。

您可以尝试为Xcode安装命令行工具 ,它包括GCC,LLMV和Xcode 4.2及更高版本中排除的其他工具。

我会build议从rvm requirements 酿造 ,我已经安装了它,而我已经安装了最新的Xcode版本4.4(4F250)

家酿:

如果你使用的是自制软件,你可以从自制软件安装apple-gcc42和所需的库文件:

  brew update brew tap homebrew/dupes brew install autoconf automake apple-gcc42 rvm pkg install openssl 

这可以与现有的Xcode 4.2+安装或Xcode的命令行工具并排居住。

你可以随时做

 $ brew cleanup [specific-formula or without-formula to clean all] 

然后如有必要

 $ brew remove apple-gcc42 

或任何其他安装的程序,通过brew(请参阅文档以解释这两个命令),也可以

 /join #machomebrew 

在freenode(不#homebrew我认为这是真正的自制啤酒和相关)

只要告诉configure在Lion上使用gcc而不是gcc-4.2 (Mac OSX 10.7.2)

从源代码编译ruby-1.9.3

你可以在你的configuration输出中看到:

 configure:3385: gcc-4.2 --version >&5 ./configure: line 3387: gcc-4.2: command not found 

如果你searchconfig.log你会看到:

 CC='gcc-4.2' 

我有同样的问题,所以我selectgcc而不是gcc-4.2运行configure

 > CC=gcc ./configure --prefix=/usr/local > make > make install > ruby --version ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0] 

(我不知道什么是configure: WARNING: unrecognized options: --with-libyaml-dir在你的输出中我想你想出了一个?)

下载并使用JewelryBox Mac OS的官方RVM GUI。 在“添加Ruby”里select你的Ruby版本。 在安装之前,请确保您select“使用Clang”,就像本主题中接受的答案的编辑3所示。

有同样的问题,因为我使用xcode 4.3.2和狮子10.7.3,我改变了我的笔记本电脑前几天,然后转移所有内容从旧的笔记本电脑。 显然,一些二进制文件不能被转移,比如gcc。

然后我做了以下:

  1. 将Xcode 4.3.2拖放到垃圾箱中
  2. https://github.com/kennethreitz/osx-gcc-installer/downloads下载gcc安装包v2
  3. 安装它
  4. 然后rvm安装1.9.2为我工作

确保你在最新的rvm。 使用rvm 1.10.0以上都没有为我工作。 而且, rvm get latest错误地告诉我“你已经有了最新版本!” 所以我不得不rvm implode并重新安装rvm(1.15.4),它会自动给我ruby1.9.3-p194没有大惊小怪。

对我而言,以上都不是。 终于成功了

 rvm get head rm -rf /usr/local/lib/libsqlite3* CC=/usr/bin/gcc-4.2 rvm install 1.9.3 --enable-shared 

特别的技巧是删除libsqllite,根据构build日志,缺less所需的64位体系结构或其他东西。

最近更简单的解决scheme是使用railsinstaller.org 。 它包含了osx-gcc,所以就像下载和安装一样简单。 在最近干涉了一个新的shell之后,我登陆了我的轨道环境。 在尝试了许多上述解决scheme之后(我可能会添加这些解决scheme)后,我按照以下步骤重新开始工作:

  • 核心你的本地环境,(认为rvm内爆和卸载Xcode)
  • 从railsinstaller.org下载pkg
  • 双击并安装

安装程序需要一些时间考虑它安装git,rvm,自制软件和一堆其他好东西。

随着酿造,你可以安装ruby单线:

 brew install ruby193 

在OS X 10.8.4上为我开箱即用。 (如果你想2.0,只需要运行brew install ruby

更一般地说, brew search ruby向您展示了不同的可用仓库,如果您想要获得真正的具体仓库,可以使用brew versions ruby并签出一个特定的版本。

您可能需要xcode和命令行工具,但brew的安装程序会检查所有这些。

尝试:

rvm install 1.9.3 –force-autoconf