2

バンドルを使用してgemfileを管理しているため、RVMをrbenvに置き換えることを検討していました。rbenvは、Rubyバージョンの管理がはるかに軽いと思うので、RVMをアンインストールしてrbenvをインストールしました。を使用してバンドラーgemをインストールしました

gem install bundler

どこでも必要だからです。次に、プロジェクトを開き、rbenvを使用して必要なバージョンのRubyをインストールしました。

rbenv install 1.9.3-p194
rbenv local 1.9.3-p194
rbenv rehash

正しいバージョンのRubyを使用していることを確認するために入力ruby -vしました。そのため、bundleを実行してみましたが、RedClothをインストールしようとするまで実行され、その後失敗しました。

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/bin/ruby1.9.1 extconf.rb --with-cflags=-w
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'

バンドルする前にRedCothをインストールすることを提案したので、RedClothをインストールしました。

gem install RedCloth

成功しました。次にruby -v、それがまだ正しいことを確認するために実行し、実行しようbundle updateとしましたが、同じエラーが発生しました。

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/bin/ruby1.9.1 extconf.rb --with-cflags=-w
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'

    Gem files will remain installed in /home/ruberto/.bundler/tmp/7551/gems/RedCloth-4.2.9 for inspection.
    Results logged to /home/ruberto/.bundler/tmp/7551/gems/RedCloth-4.2.9/ext/redcloth_scan/gem_make.out
    An error occurred while installing RedCloth (4.2.9), and Bundler cannot continue.
    Make sure that `gem install RedCloth -v '4.2.9'` succeeds before bundling.

次に、別のバージョンのRubyをインストールしようとしましたが、そこでも成功しませんでした。

誰かアイデアがありますか?

その後、他のプロジェクトでも同じことを試してみましたが、すべてうまくいくようです。1.8.7を使用するものがあり、rbenvを適切なバージョンに設定してから、バンドルを実行するのと同じくらい簡単でした。Rubyバージョンのほぼすべての組み合わせを試しましたが、機能しません。

4

2 に答える 2

0

私はついに問題を克服しました。

間違ったバージョンのRuby1.8.7-p370をインストールしました。次にバンドルを実行しましたが、バンドルが1.9.3パッケージの場合、Ruby 1.8.7に対してネイティブ拡張機能をコンパイルするgemがいくつかあったため、1.9.3バージョンに切り替えてバンドルを再度実行しようとしても、爆撃します。

これを修正するには、すべてのgemを削除し、適切なバージョンのRubyをインストールしてから、バンドルを再実行しました。

于 2012-09-05T08:29:02.573 に答える
0

私も同様の問題を抱えていました。パスの先頭に〜/ .rbenv / shimsディレクトリがありますが、zshはバンドルの場所を/ usr / local / bin/bundleにキャッシュしていることがわかりました。

ソリューションは単にrehashシェルで実行されていました(ではありませんrbenv rehash)。これにより、バンドルを含むすべてのキャッシュされたコマンドがフラッシュされ、その後はすべてうまくいきました。

于 2014-01-20T22:43:07.933 に答える