RVMを使用してOS X LionにRailsをインストールしようとすると、問題が発生します。
これまでのところ、次のことを行ってきました。
rvm install 1.8.7
を使用してRVMを介してRubyの1.8.7バージョンをインストールしました。注:1.9.2ではなく1.8.7を使用する必要があります。rvm 1.8.7
を使用して、1.8.7バージョンのRubyに切り替えました。rvm gemset create Rails3
を使用して新しいgemsetを作成しました。rvm use 1.8.7@Rails3
コマンドを使用して、新しいgemsetに切り替えました。インストールするRailsコマンドgem install Rails
を実行しましたが、次のエラーが表示されました。
/Users/m/.rvm/rubies/Ruby-1.8.7-p334/lib/Ruby/1.8/timeout.rb:60:[バグ]セグメンテーション違反
Gemコマンドを実行しようとすると同じエラーが発生するため、Railsの問題ではないと思います。
以下のリンクから判断すると、この問題を抱えているのは私だけではないようです。
http://Twitter.com/#!/pingles/status/66261101351927809 および https://github.com/carlhuda/bundler/issues/1058
それを修正しました!
答えは、実際に私が上に投稿したリンクの1つにありました。 Ruby(rvm install 1.8.7)のバージョンをインストールする前に、 "export CC=/usr/bin/gcc-4.2
"。これで、すべてがスムーズに実行されました。
CC
を恒久的にエクスポートしたくない場合は、CC=/usr/bin/gcc-4.2 rvm install 1.8.7
既にインストール済みの場合Ruby 1.8.7。ただCC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7
Xcode 4.2をインストールしている場合、実際には非LLVM gccはインストールされないため、追加する必要があります。何らかの理由で、4.2をインストールした後4.1にダウングレードしても正しく動作しません(少なくとも私にとってはそうではなく、他の人も同様の問題を抱えていました)。
かなりのスラッシングの後、これは最終的に私のために働いたものです:
開いているターミナルウィンドウをすべて閉じ、新しいウィンドウを開いて、
rvm remove ree
export CC=/usr/bin/gcc-4.2
rvm install ree
これはrvm 1.8.6、OS X 10.7.2およびgcc-4.2バージョン4.2.1(Appleビルド5666)で機能しました。
Xcode 4.1をすでにインストールしている場合は、4.2にアップグレードしたいという衝動に抵抗してください。大丈夫です。
それでも解決しない場合は、-forceを追加します。したがって、これは次のようになります。
CC=/usr/bin/gcc-4.2 rvm install Ruby-1.8.7 --force
「export CC=/usr/bin/gcc-4.2
」を実行して「rvm remove 1.8.7
」を使用する前に、すでにインストールしている場合は必ず1.8.7を削除してください。
私のシステムでも同じ問題が発生しました。 Xcodeコマンドライン tools from AppleこれはLLVMコンパイラに同梱されており、LLVMフリーのものは付属していません。
Ruby 1.8.7はCC=clang
がなくてもLLVMコンパイラでは動作しないため、LLVMフリーのgccをインストールすると問題が解決します。
ここにリストされた複数のオプションがあります:
https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers
要するに、GCC v4.2を Homebrew でインストールします:
brew install https://raw.github.com/Homebrew/homebrew-dupes/master/Apple-gcc42.rb
およびtheninstall Ruby 1.8.7:
CC=gcc-4.2 rvm install 1.8.7
の代わりに "export CC=/usr/bin/gcc-4.2
" 行う "export CC=gcc
"(xCode 4.2.xをインストールする必要があります)。
次のようなgccのバージョンを確認してください。
ls -Al `which gcc-4.2`
ここの指示に従いました: http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion
brew update
brew tap homebrew/dupes
brew install Apple-gcc42
次に再インストールします。
Gccへのパスが何であるかをもう一度確認してください(CC =に使用するため):
ls -Al `which gcc-4.2`
(オプション)たとえば、これを.bashrcで設定できます。
export CC=/usr/bin/gcc-4.2
(オプション)古いバージョンのRubyを削除します
rvm remove 1.8.7
次に:
CC=/usr/local/bin/gcc-4.2 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk
または、プロファイルにCCを設定している場合
rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk
Rvmインストールのフラグに注意してください。 ftpサーバーでチェックサムを確認するのに問題があり、tckとその他の問題がありました。これらのフラグを省略できる場合があります。
また、gemsetの古いバージョンを削除する必要がある場合があります。
rvm gemset delete <gemset>
それから
gem install bundler
bundle install
お役に立てれば。
MacportおよびRuby-1.9.xバージョンを使用します。 Rails with Ruby gem。
私は〜/ .rvmrcで行をコメントするとき、Arch x86_64に対してのみ同じ問題があります
rvm_archflags="-Arch x86_64"
新しいターミナルを開き、Ruby-1.8.7を再度インストールしようとしました
rvm install 1.8.7
成功しました。
このページの他のすべての提案にもかかわらず、私はまだセグメンテーション違反を抱えていてイライラしていました。そして、システム提供のRuby 1.8.7を使用します:
rvm use system
GemのインストールにはSudoを使用する必要がありますが、それでも頭痛は少なくなります。
CC=/usr/bin/gcc-4.2 rvm install 1.8.7
がうまくいきませんでした。CC=/usr/bin/gcc rvm install 1.8.7
そしてそれはしました( "which gcc
"で確認)
私の解決策は、ターミナルの/ usr/bin/gccシンボリックリンクを上書きすることでした。以下がその方法です。
https://plus.google.com/101970693023462019144/posts/eYVLvMCqTmc
これにより、RVMのインストールが修正されただけでなく、ネイティブ拡張(rmagickなど)を使用したgemのインストールが確実に機能するようになりました。
これはRVMとは関係ありませんが、探しているのがLionのローカル開発環境である場合、試してみることができます RubyStack これは無料のオープンソースのオールインワンインストーラーですApache、MySQL、Ruby、Railsなど。コンパイルは不要で、自己完結型なので、気に入らない場合はインストールディレクトリを削除するだけで完了です。免責事項:私はRubyStack開発者の1人です:)