1

最近、Gemfileを更新して、githubアカウントでフォークされたコピーレールを使用するようにしました。2.3-stableブランチ(これを呼び出しますthe_bugfix_branch)からカスタムブランチを作成し、各gemにgemspecを追加して、bundlerで見つけられるようにしました。

私のGemfileには次のものがあります。

git 'git://github.com/ourgithub/rails.git', :branch => "the_bugfix_branch"  do
  # Note: load-order is essential for dependencies
  gem 'activesupport', '2.3.2' # this must go first
  gem 'actionpack',    '2.3.2' # this must go second
  gem 'actionmailer',  '2.3.2' 
  gem 'activerecord',  '2.3.2' 
  gem 'activeresource','2.3.2' 
  gem 'rails',         '2.3.2' # this must go last
end

bundle install(残りのすべてのgem出力の中で)私に喜んで実行します:

Using actionpack (2.3.2) from git://github.com/ourgithub/rails.git (at the_bugfix_branch) 
Using actionmailer (2.3.2) from git://github.com/ourgithub/rails.git (at the_bugfix_branch) 
Using activesupport (2.3.2) from git://github.com/ourgithub/rails.git (at the_bugfix_branch) 
Using activerecord (2.3.2) from git://github.com/ourgithub/rails.git (at the_bugfix_branch) 
Using activeresource (2.3.2) from git://github.com/ourgithub/rails.git (at the_bugfix_branch) 
...
Using rails (2.3.2) from git://github.com/ourgithub/rails.git (at the_bugfix_branch)
...
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

次に、以下を含むGemfile.lockをチェックインしてコミットします。

GIT
  remote: git://github.com/ourgithub/rails.git
  revision: 3fc562f9b1def3ad9a7abbfd5ccfa713a6dbc39f
  branch: the_bugfix_branch
  specs:
    actionmailer (2.3.2)
      actionpack (= 2.3.2)
    actionpack (2.3.2)
      actionpack (= 2.3.2)
    activerecord (2.3.2)
      activesupport (= 2.3.2)
    activeresource (2.3.2)
      activesupport (= 2.3.2)
    activesupport (2.3.2)
    rails (2.3.2)
      actionmailer (= 2.3.2)
      actionpack (= 2.3.2)
      activerecord (= 2.3.2)
      activeresource (= 2.3.2)
      activesupport (= 2.3.2)
      rake (>= 0.8.3)

ただし、サーバーを起動しようとすると、次のように表示されます。

The git source git://github.com/ourgithub/rails.git is not yet checked out. Please run `bundle install` before trying to start your application

試してみると、まったく同じメッセージが表示されbundle show railsますbundle check

> bundle show rails
The git source git://github.com/ourgithub/rails.git is not yet checked out. Please run `bundle install` before trying to start your application
> bundle check
git://github.com/ourgithub/rails.git (at the_bugfix_branch) is not checked out. Please run `bundle install`

私がbundle install --deployment(キックのためだけに)試してみると、それは次のようになります:

> bundle install --deployment
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

You have added to the Gemfile:
* source: git://github.com/ourgithub/rails.git (at the_bugfix_branch)

You have deleted from the Gemfile:
* source: git://github.com/ourgithub/rails.git (at the_bugfix_branch)

You have changed in the Gemfile:
* activeresource from `git://github.com/ourgithub/rails.git (at the_bugfix_branch)` to `no specified source`
* activerecord from `git://github.com/ourgithub/rails.git (at the_bugfix_branch)` to `no specified source`
* actionmailer from `git://github.com/ourgithub/rails.git (at the_bugfix_branch)` to `no specified source`
* actionpack from `git://github.com/ourgithub/rails.git (at the_bugfix_branch)` to `no specified source`
* activesupport from `git://github.com/ourgithub/rails.git (at the_bugfix_branch)` to `no specified source`
* rails from `git://github.com/ourgithub/rails.git (at the_bugfix_branch)` to `no specified source`

私は明らかにGemfileを変更しただけではなく、Gemfileにそのようなものを追加して以来、バンドルインストールを実行したことは間違いありません。

「まだチェックアウトされていません。bundle installアプリケーションを起動する前に実行してください」とグーグルで検索しましたが、「機能しない」という質問はすべてbundle install実行してbundle installから、コピーをチェックインしてくださいGemfile.lockと表示されます...私は明らかにそれをしました。また、本番環境でバンドルインストールが失敗する傾向がありますが、開発でもこのように失敗します。

これは単純なGemfile/Gemfile.lockの不一致の問題ではないと思います!

グーグルの結果のいくつかは、.bundle/configを削除してもう一度実行してみることを教えてくれます。私はそれを同じ(欠如した)効果で試しました。

具体的には、バンドルのインストールを再実行する前にrm -rf、このトラブルシューティングガイドのすべての行(https://github.com/carlhuda/bundler/blob/master/ISSUES.md )を確認しました。

エラーメッセージに変更はありません。

何か案は?

4

1 に答える 1

4

タリンイーストは言った:

これは単純なGemfile/Gemfile.lockの不一致の問題ではないと思います!

私が間違っていたことがわかりました。

解決策は、Gemfileのバージョン番号を削除し、代わりにブランチを明示的に使用することでした。

git 'git://github.com/ourgithub/rails.git', :branch => "the_bugfix_branch"  do
  # Note: load-order is essential for dependencies
  gem 'activesupport', :branch => "the_bugfix_branch" # this must go first
  gem 'actionpack',    :branch => "the_bugfix_branch" # this must go second
  gem 'actionmailer',  :branch => "the_bugfix_branch" 
  gem 'activerecord',  :branch => "the_bugfix_branch" 
  gem 'activeresource',:branch => "the_bugfix_branch" 
  gem 'rails',         :branch => "the_bugfix_branch" # this must go last
end

bundlerは、一方ではバージョン番号、もう一方ではブランチと混同されていました。

リストされているすべてのgemのブランチを明示的に設定すると、ようやくうまくいくように見えました。

于 2013-01-22T01:29:05.057 に答える