我无法在我的机器上安装许多ruby宝石,它们都会因编译本机部分而失败,我无法使任何解决方案起作用。
我期待着名的红宝石生产力,但经过一整天与这些安装问题的斗争后,我真的需要一些帮助来使数据库宝石工作,所以我可以开始使用RoR。
它首先发生在mysql gem上,但也发生在sqlite3上,甚至尝试重新安装ruby-debug gem。
OS:Mac OS X 10.9.2(Mavericks)。
ruby -v =>
ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-darwin12.0]
rvm list =>
> rvm rubies
> =* ruby-2.1.1 [ x86_64 ]
> # => - current
> # =* - current && default
> # * - default
rvm -v =>
Wayne E. Seguin,rvm 1.25.24(master), Michal Papis [https://rvm.io/]
gem -v =>
2.2.2
我有一个最新的Xcode 5.1 xcode-select -v => xcode-select版本2333。
我再次安装了命令行工具: xcode-select --install
然后我尝试了其他响应中的一些XCode命令,包括: sudo xcode-select -s / Library / Developer / CommandLineTools /
我尝试了多个与gcc相关的答案,并使用符号链接将gcc4.2与gcc相关联。
/usr/bin/gcc-4.2 -v =>
使用内置规格。目标:i686-apple-darwin11配置: /Volumes/Media/Builds/gcc-5666.3/build/obj/src/configure --disable-checking --prefix = / usr --mandir = / share / man --enable-languages = c,objc,c ++,obj-c ++,fortran --program-transform-name = / ^ [cg] [ ^ .-] * $ / s / $ / - 4.2 / --with-slibdir = / usr / lib --build = i686-apple-darwin11 --program-prefix = i686-apple-darwin11- --host = x86_64 -apple-darwin11 --target = i686-apple-darwin11 --with-gxx-include-dir = / include / c ++ / 4.2.1线程模型:posix gcc版本4.2.1(Apple Inc. build 5666)(第3点) )
示例失败就是这个:
gem install mysql2
构建原生扩展。这可能需要一段时间...错误:错误 安装mysql2:错误:无法构建gem原生扩展。
/Users/andrew/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb checking for ruby/thread.h... yes checking for rb_thread_call_without_gvl() in
ruby / thread.h ...是检查rb_thread_blocking_region()...是的 检查rb_wait_for_single_fd()...是检查 rb_hash_dup()...是检查rb_intern3()...是的 -----在/ usr / local / mysql / bin / mysql_config中使用mysql_config -----检查mysql.h ...是检查errmsg.h ...是检查mysqld_error.h ...是的 -----将rpath设置为/ usr / local / mysql / lib -----创建Makefile
使“DESTDIR =”清洁
make“DESTDIR =”编译client.c编译infile.c编译 mysql2_ext.c编译result.c链接共享对象 mysql2 / mysql2.bundle ld:警告:找不到选项的目录 '-L /用户/特拉维斯/ .SM / PKG /活性/ lib中'
make“DESTDIR =”install ./install -m 0755 mysql2.bundle ./.gem.20140427-52262-1rr56ob/mysql2 make:./ install:没有这样的文件或者 目录make: * [install-so]错误1
make install failed,退出代码2
Gem文件将保持安装状态 /Users/andrew/.rvm/gems/ruby-2.1.1/gems/mysql2-0.3.15进行检查。 记录结果 /Users/andrew/.rvm/gems/ruby-2.1.1/extensions/x86_64-darwin-12/2.1.0-static/mysql2-0.3.15/gem_make.out
任何想法?
我看到的一篇文章暗示了混合使用Ruby,Gems等64位和32位组件的问题。但是我没有看到修复,或者我应该如何重新安装仅32位组件。< / p>
P.S。看起来某个“Travis”应该尽量避免将对自己目录的引用放入代码中:
链接共享对象sqlite3 / sqlite3_native.bundle ld:警告: 找不到选项'-L / Users / travis / .sm / pkg / active / lib'
的目录
更新1
echo $PATH
/Users/andrew/.rvm/gems/ruby-2.1.1/bin:/Users/andrew/.rvm/gems/ruby-2.1.1@global/bin:/Users/andrew/.rvm/rubies/ruby-2.1.1/bin:/Users/andrew/.rvm/bin:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:.:/usr/lib/tuenti_tools/bin:/Users/andrew/bin:/Users/andrew/apache-maven-3.0.4/bin:/Users/andrew/android-sdk-macosx/platform-tools:/Users/andrew/android-sdk-macosx/tools:/Users/andrew/android-sdk-macosx/build_tools/17.0.0/:/Users/andrew/neo4j-community-2.0.0-M06/bin:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:.:/usr/lib/tuenti_tools/bin:/Users/andrew/bin:/Users/andrew/apache-maven-3.0.4/bin:/Users/andrew/android-sdk-macosx/platform-tools:/Users/andrew/android-sdk-macosx/tools:/Users/andrew/android-sdk-macosx/build_tools/17.0.0/:/Users/andrew/neo4j-community-2.0.0-M06/bin:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/mysql/bin
答案 0 :(得分:0)
通常,当依赖关系和/或路径不合时,您会从exten.conf
收到错误。首先确保您的路径正常运行,并且命令行中的ruby来自rvm:
# this should output the path to the ruby in the .rvm dir
which ruby
在尝试其他任何事情之前,请确保您的自制软件是最新且健康的:
# cd to the homebrew dir, typically here:
cd /usr/local/Cellar
git fetch origin
git reset --hard origin/master
brew update
在开始安装之前,请确保您的PATH正确加载。首先,您要先加载自制垃圾箱。在您的.bash_profile
或.bashrc
文件中,您可能有也可能没有PATH的设置,但请确保您有一行将订单修改为以下内容:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:$PATH
您只是想确保首先加载/usr/local/bin
。还要确保在.bash_profile
或.bashrc
中正确加载RVM功能:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
确保所有brew依赖关系都已对齐,并修复它可能会说的任何内容:
brew missing
您还需要检查您的啤酒的健康状况,并修复它建议的任何内容(我知道您已经完成了这项工作,但在刷新本地仓库并清理之后可能会出现新问题上一个命令):
brew doctor
不确定你是如何修补的#34; gcc问题,但自制软件非常适合:
brew install apple-gcc42
毕竟,我可以放心,这不是您当地自制设置的问题。我建议在任何地方使用自制软件进行任何本机扩展(包括mysql / postgres / etc)。如果您已经这样做了,请卸载brew并重新安装:
brew uninstall mysql
brew install mysql
如果您仍然遇到错误,请尝试清理rvm:
rvm cleanup
rvm repair
然后卸载/安装失败的gem:
gem uninstall mysql2
gem install mysql2
祝你好运!