web-dev-qa-db-ja.com

Bundlerは、gem "bundler"の互換バージョンを見つけることができませんでした:

RubyとRails here ...に新しい人を入力してください...過去にいくつかのチュートリアルを試しましたが、それはそれだけです。私は 'Rubyをフォローしようとしていますon Rails 3チュートリアル 'の本を読んでいて、こことGoogleで検索してもヘルプが見つからないという障害がありました。

実際にはまだ何もしていません。のみ:

Rails new first_app

次に、Gemfile sqlite3を

gem 'sqlite3-Ruby', '1.2.5', :require => 'sqlite3'

「バンドルインストール」を実行すると、次のようになります。

Fetching gem metadata from http://rubygems.org/.........
Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    Rails (= 3.0.1) Ruby depends on
      bundler (~> 1.0.0) Ruby

  Current Bundler version:
    bundler (1.1.3)

This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

を介してバンドラーをアンインストールしてみました

gem uninstall bundler -v 1.1.3

を介してbundler v1.0.0をインストールします

gem install bundler -v 1.0.0

しかし、それは私にバンドラー1.1.2を取得するようです。

私は行き止まりにぶつかったような気がし、この問題を解決する方法に関するこれ以上の情報を見つけることができません。

どんな助けでも大いに高く評価され、大量のベーコンで報われるでしょう...

更新更新更新

Bundler v 1.1.2をアンインストールできませんでした。私は最終的にすべての宝石をアンインストールすることができました:

Sudo gem list | cut -d" " -f1 > gem_list.txt  
cat gem_list.txt | xargs Sudo gem uninstall -aIx  
cat gem_list.txt | xargs Sudo gem install

その後、再インストールします...これにより、「バンドルインストール」を実行して、軌道に乗ることができました。ご協力ありがとうございます。

21
audioeric

最初にバージョンを確認して、すべてが最新であることを確認します。

$ Ruby -v
Ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]

$ Rails -v          
Rails 3.2.2

$ gem list bundler
*** LOCAL GEMS ***
bundler (1.1.3)

Rubyを更新する必要がある場合は、 https://www.Ruby-lang.org からダウンロードするか、Ruby-buildなどのツールを使用できます。 Ruby 1.9.3のバージョンがある場合は、今のところ問題ありません。

すべての宝石を更新するには:

gem update --system
gem update

Gemはいくつかの異なる場所にGemをインストールする場合があり、これらは互いに干渉する可能性があります。システムの宝石(通常はrootまたはSudoを使用してインストールされます)と個人ユーザーの宝石があります。これらを管理する私のお気に入りの方法は、rbenvと呼ばれるシンプルなツールを使用することです。関連するツールはrvmです。どちらでもかまいません。

最初のチュートリアルでは、Gemfileでバージョン番号の使用をスキップできます。

- gem 'sqlite3-Ruby', '1.2.5', :require => 'sqlite3'
+ gem 'sqlite3-Ruby', :require => 'sqlite3'

バンドラーはすべてを正しい方法で分類します。最終的には、他の開発者と調整したり、運用システムを構築したりする場合は、バージョン番号を指定する必要があります。

ここで気軽に質問してください。私がこの回答に追加します。

10

これは、gemがグローバルgemsetにもインストールされており、以下を使用してアンインストールできるためです。

rvm @global do gem uninstall bundler

ただし、次を使用して他のバージョンのバンドラーを使用することもできます。

gem install bundler -v '~>1.0.0'
bundle _1.0.0_ install

1.0.0を、インストールされているバージョン(他の場合)に置き換えます

15
Neeraj Kumar

多分あなたはあなたのマシンにインストールされたバンドル1.1.2と1.1.3(そしておそらくもっと多くのバージョン)を持っていました

使用する

gem list bundler

インストールしているバンドラーのバージョンを確認します。

次に、不要なものを削除します

gem uninstall bundler -v VERSION_NUMBER
9

最新バージョンのRails 3.0(3.0.12)を使用できます。これは最新のバンドラーをサポートしており、基本的に3.0.1と異なりません。

6
MikDiet

私はこの問題を抱えていて、ソースは.gemspecファイルのbundlerのバージョン指定でした:

spec.add_development_dependency "bundler", "~> 1.16"

バージョン番号を削除すると問題が解決しました:

spec.add_development_dependency "bundler"
1

この質問のタイトルに記載されている問題を修正するには、Gemfile.lockを削除してbundle updateを実行するだけで十分な場合があります。参考になれば幸いです。

0
Roman Podymov