2

これは私の最初の質問です:)

Rails 3.2.6 (rvm と ruby​​ 1.8.7 を使用) では、私の Gemfile には、bundle installコマンドの使用時に問題を引き起こす 2 つの gem が含まれています。

これらの gem は、次を使用して指定されます。

gem 'libv8', "~> 3.11.8.3"
gem 'therubyracer', '~> 0.11.0beta6'

私の問題は次のとおりです。bundle installコマンドを実行すると、バンドラーはバイナリ(コンパイル済み)の宝石(libv8-3.11.8.3-x86_64-linux.gemおよびtherubyracer-0.11.0beta6-x86_64-linux.gem)をフェッチし、プレーンソースのもの(libv8)はフェッチしません-3.11.8.3.gem および therubyracer-0.11.0beta6.gem)。

x86_64 バージョンは私のサーバー設定と互換性がありません: 含まれている動的ライブラリは不明なシンボル (rb_intern2、私の古い記憶から、間違っている可能性があります) を使用しているため、プリコンパイルされた gem をアプリケーションで読み込むことができません。

そのため、ソース パッケージから gem をインストールする必要があります。

現時点では、とbundle installからプリコンパイル済みの gem を削除する必要がありますが、これはあまり実用的ではありません。~/.rvm/gems/...gem install ~/tmp/libv8-3.11.8.3.gemgem install ~/tmp/therubyracer-0.11.0beta6.gem

Bundler に強制的にソース リリースを取得してコンパイルさせる方法はありますか?

4

1 に答える 1

3

試す:

bundle install --without x86_64-linux

x86_64-linuxはプラットフォームであり、bundler/rubygemsはそれを使用します。

次と同等である必要があります。

gem install libv8 -​-platform ruby

詳細:

于 2012-08-19T16:29:47.447 に答える