RVMを使用してRionにRailsをインストールできないのはなぜですか?


83

RVMを使用してOSXLionにRailsをインストールしようとすると問題が発生します。

これまでのところ、私は次のことを行いました。

  1. Mac OS X Lionバージョン10.7(ビルド11A459e)をインストールしました。
  2. XCode 4.1 Developer Preview5をインストールしました。
  3. インストールされたRVM。
  4. コマンドを使用して、RVM経由で1.8.7バージョンのRubyをインストールしましたrvm install 1.8.7。注:1.9.2ではなく1.8.7を使用する必要があります。
  5. コマンドを使用して、1.8.7バージョンのRubyに切り替えましたrvm 1.8.7
  6. コマンドを使用して新しいgemsetを作成しましたrvm gemset create rails3
  7. コマンドを使用して新しいgemsetに切り替えましたrvm use 1.8.7@rails3
  8. Railsをインストールするには、コマンドを実行しましたgem install railsが、次のエラーが発生しました。

    /Users/m/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:60:[BUG]セグメンテーション違反

gemコマンドを実行しようとすると同じエラーが発生するため、Railsの問題ではないと思います。

以下のリンクから判断すると、この問題を抱えているのは私だけではないようです。

http://twitter.com/#!/pingles/status/66261101351927809 およびhttps://github.com/carlhuda/bundler/issues/1058


2
あなたは非常に出血しているエッジを歩いています、そして1.8.7の追加はおそらく問題を複雑にします。1.9.2をインストールしてから、Railsをインストールして、それがどのように行われるかを確認することをお勧めします。次に、1.8.7とRailsを後付けしてみます。現状では、まだリリースされていない2つのソフトウェアを使用しているため、サポートがまだ追いついていない可能性があります。「セグメンテーション違反」は、多くの場合、64ビットシステムに対する32ビットビルドの結果であり、予期しないシステムバージョンで発生する可能性があります。の出力を調べて、rvm infoそれが何を言っているかを確認してください。それはいくつかの手がかりを持っているかもしれません。
ブリキの

2
公正な警告と同様に、LionはNDAの下にあるため、指定されたAppleチャネル以外でこれについて話すことはおそらく許可されていません。もし彼らがそんなに傾いているなら、Appleはあなたの開発者アカウントをそれについて議論するために取り消すかもしれない。
チャック

ありがとう@ブリキの木こり:rvm情報に何かがあるかどうかを確認します。残念ながら、このプロジェクトでは1.8.7を使用する必要があります。上記の手順に従いますが、Ruby 1.9.2では、Rails3を正常にインストールできました。
マイケルジェローム

警告@Chuckをありがとう-私は同意しないことに同意したものを開示しないように注意します。
マイケルジェローム

RVM 1.9.2は、これらの提案のいずれでも機能しません。rvmはllvmを検出し、実行されません
Dale

回答:


77

修正しました!

答えは、実際には私が上に投稿したリンクの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

すでにruby1.8.7をインストールしている場合。ただやるCC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7


llvmがlionのデフォルトのコンパイラになることをどこかで読んだことを覚えています。これが、そのようなものが必要な理由だと思います。
Schmurfy 2011年

3
そのエクスポートコマンドを使用すると、セッション内の後続のすべてのコマンドのCCが変更されます...これにより、他のコンパイルが台無しになる可能性があります。CC=/usr/bin/gcc-4.2 rvm install 1.8.7rvmインストールのCCをオーバーライドするには、1行すべてを使用します。
skue 2011

価値があるので、@ skueのメモは私にはうまくいきませんでした。これを.zshrcファイルに追加する必要がありました。
ベンクリーガー2011

1
@Benjamin Z Shellを使用していますよね?明らかにほとんどのMacユーザーはターミナル+ Bashを使用しているだけなので、注目に値します。
アランH.

1
@Alan H.-はい、間違いなくzshです。FWIW、Lionでは、zshの起動.rvmrcスクリプトで問題が発生したbashため、しばらくの間に切り替えました。したがって、その行をに追加しました.bash_profile
ベンクリーガー2011

24

Xcode 4.2をインストールした場合、実際には非LLVM gccはインストールされないため、追加する必要があります。何らかの理由で、4.2をインストールした後に4.1にダウングレードしても正しく機能しません(少なくとも私にとってはそうではなく、他の人も同様の問題を抱えていました)。

かなりのスラッシングの後、これが最終的に私のために働いたものです:

  1. AppStoreからXcode4.2をインストールします
  2. OSXgccインストーラーを使用してdarwingccをインストールします
  3. REEをインストールして、以前の試みの痕跡をすべて削除してください。

開いているターミナルウィンドウをすべて閉じ、新しいウィンドウを開いて、

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)で機能しました。

すでにXcode4.1をインストールしている場合は、4.2にアップグレードしたいという衝動に抵抗してください。大丈夫です。


前回は見ませんでしたが、別のチュートリアルでこのパッケージを見つけました。しかし、上記の推奨事項が機能しない場合は、すばらしい答えです。
Tim Baas

ええ、私はちょうど新しいMBPを手に入れました、そして以前の答えのどれも私のために働きませんでした。FWIW、Xcodeをインストールしたとき、もちろん、最新バージョンである4.2.1を入手しました。OSC gccインストーラーをインストールし、エクスポート行を.bash_profileに追加してから、-forceを使用してrvm installコマンドを再実行しましたが、問題ありませんでした。ありがとう!
ターボラディン2011

これが役に立ったことをうれしく思います!私は同じ状況にあり、他の答えはどれもうまくいかなかったので、それを文書化したいと思いました。
マットサンダース

これまでの提案がすべて失敗した後も、これは私にとってはうまくいきました。
Cory Schires 2012

更新として、最近Lionを再インストールし、Xcodeをまったくインストールせずにすべてを機能させることができました。したがって、まだインストールしていない場合は、OSX gccインストーラーを試して、必要なものがあるかどうかを確認することをお勧めします。
マットサンダース

22

それでも機能しない場合は、-forceを追加します。したがって、これは次のようになります。

CC=/usr/bin/gcc-4.2 rvm install ruby-1.8.7 --force


はい、gcc-4.2を使用せずにインストールを開始した場合、2回目に中断したところから再開されます。したがって、llvmで既にコンパイルしたものを消去して最初からやり直すには--forceが必要です。
ローレンス2011

私は〜/ .rvmを吹き飛ばしましたが、それでも--force ty Hans
Scott Smith

ハンスに感謝します、
Stu 2011

1
多くの場合make clean、インストールディレクトリのコマンドラインから使用する方が、の代わりに使用するのに適したコマンドです--force。Forceはエラーを無視し、エラーには注意が必要です。ので注意してください。
ブリキの

7

export CC=/usr/bin/gcc-4.2」を使用する前に、すでに1.8.7をインストールしている場合は、必ず「」を実行して1.8.7を削除してくださいrvm remove 1.8.7


6

私のシステムでも同じ問題が発生しました。LLVMコンパイラが付属していてLLVMフリーのコンパイラが付属していないAppleのXcodeコマンドラインツールをインストールしました。

Ruby 1.8.7はLLVMコンパイラでは動作しませんCC=clang。そのため、LLVMフリーのgccをインストールすると問題が解決します。

ここにリストされている複数のオプションがあります。

https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers

簡単に言えば、HomebrewでGCC v4.2をインストールします:

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb

そしてその後、 1.8.7 Rubyのインストール:

CC=gcc-4.2 rvm install 1.8.7

4
GitHubのURLが変更されました。コマンドはbrew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb代わりになりました。
Matthew Ratzloff 2012年

4

" export CC=/usr/bin/gcc-4.2" do " export CC=gcc"の代わりに(xCode 4.2.xをインストールする必要があります)。


2

あなたがこのように持っている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

お役に立てれば。


1

macportとruby-1.9.xバージョンを使用します。私はrubygemでレールを正常にインストールしました。


1

私は唯一のアーチに同じ問題を抱えているx86_64で、私は私の中で行をコメントする場合、〜/ .rvmrc

rvm_archflags="-arch x86_64"

新しいターミナルを開き、ruby-1.8.7を再度インストールしようとしました

rvm install 1.8.7

成功しました。



0

これはRVMとは関係ありませんが、Lionのローカル開発環境を探している場合は、RubyStackを試してみることをお勧めします。これは、Apache、MySQL、Ruby、の無料のオープンソースオールインワンインストーラーです。 Railsなど。コンパイルは不要で、自己完結型なので、気に入らない場合は、インストールディレクトリを削除するだけで完了です。免責事項:私はRubyStack開発者の1人です:)


0

CC=/usr/bin/gcc-4.2 rvm install 1.8.7私のために機能しませんでした、私は使用しました、CC=/usr/bin/gcc rvm install 1.8.7そしてそれはしました(「どのgcc」でチェックする)


0

このページの他のすべての提案があっても、私はまだセグメンテーション違反を起こし、イライラしていたので、「ねじ込みます!」と言いました。システムが提供するRuby1.8.7を使用します。

rvm use system

gemをインストールするには、sudoを使用する必要がありますが、それでも頭痛の種は少なくなります。


Ruby 1.8.7がインストールされたシステムは、Appleが使用するためのものであることを忘れないでください。ピギーバックすることはできますが、gemの更新には注意が必要です。
ブリキの

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.