4

vagrant upシステムを実行しようとすると、json gemが突然見つからないという奇妙な問題が発生しています。vagrant up を実行すると、次のメッセージが表示されます。

/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find  json (~> 1.5.1) amongst [Platform-0.4.0, archive-tar-minitar-0.5.2, builder-3.0.0,  bundler-1.1.5, childprocess-0.3.5, cucumber-1.2.1, diff-lcs-1.1.3, erubis-2.7.0, ffi-1.1.5, gemcutter-0.7.1, gherkin-2.11.2, git-1.2.5, hiera-0.3.0, hiera-json-0.3.0, hiera-puppet-0.3.0, highline-1.6.13, i18n-0.6.0, json-1.7.5, log4r-1.1.10, metaclass-0.0.1, mocha-0.12.3, net-scp-1.0.4, net-ssh-2.5.2, open4-1.3.0, popen4-0.1.2, progressbar-0.11.0, puppet-module-0.3.4, puppetlabs_spec_helper-0.3.0, rake-0.9.2.2, rspec-2.11.0, rspec-core-2.11.1, rspec-expectations-2.11.2, rspec-mocks-2.11.2, rspec-puppet-0.1.4, thor-0.16.0, vagrant-1.0.3, veewee-0.2.3, virtualbox-0.9.2] (Gem::LoadError)
        from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:771:in `activate_dependencies'
        from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:760:in `each'
        from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:760:in `activate_dependencies'
        from /usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:744:in `activate'
        from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:1209:in `gem'
        from /usr/local/bin/vagrant:18

上記のエラーからわかるように、json gem は明らかにリストに含まれていますが、認識されません。私はこの問題を検索し、多くの発生を見つけましたが、ほとんどの場合、gem はリスト内に存在しません。ruby を複数回インストールしておらず、gem パスが設定されています。

宝石環境

RubyGems 環境:

  • ルビージェムのバージョン: 1.8.15
  • ルビー バージョン: 1.8.7 (2011-06-30 パッチレベル 352) [x86_64-linux]
  • インストールディレクトリ: /var/lib/gems/1.8
  • ルビー実行可能: /usr/bin/ruby1.8
  • 実行可能ディレクトリ: /usr/local/bin
  • RUBYGEMS プラットフォーム:
    • ルビー
    • x86_64-linux
  • GEM パス:
    • /var/lib/gems/1.8
    • /home/エイドリアン/.gem/ruby/1.8
  • 宝石の構成:
    • :update_sources => true
    • :verbose => true
    • :ベンチマーク => false
    • :バックトレース => false
    • :bulk_threshold => 1000
  • リモートソース:

インストール ディレクトリは、Ubuntu 12.04 のデフォルトです。

宝石リスト

* 地元の宝石 *

archive-tar-minitar (0.5.2)
builder (3.0.0)
bundler (1.1.5)
childprocess (0.3.5)
cucumber (1.2.1)
diff-lcs (1.1.3)
erubis (2.7.0)
ffi (1.1.5)
gemcutter (0.7.1)
gherkin (2.11.2)
git (1.2.5)
hiera (0.3.0)
hiera-json (0.3.0)
hiera-puppet (0.3.0)
highline (1.6.13)
i18n (0.6.0)
json (1.7.5)
log4r (1.1.10)
metaclass (0.0.1)
mocha (0.12.3)
net-scp (1.0.4)
net-ssh (2.5.2)
open4 (1.3.0)
Platform (0.4.0)
popen4 (0.1.2)
progressbar (0.11.0)
puppet-module (0.3.4)
puppetlabs_spec_helper (0.3.0)
rake (0.9.2.2)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.2)
rspec-mocks (2.11.2)
rspec-puppet (0.1.4)
thor (0.16.0)
vagrant (1.0.3)
veewee (0.2.3)
virtualbox (0.9.2)

ご覧のとおり、gem はここのインストール済みリストにあります。環境変数$GEM_HOME$GEM_PATHは設定されていません。

私はこれを理解しようとしてきましたが、現在途方に暮れています。Ruby および / または Vagrant の専門家からの助けをいただければ幸いです。

4

1 に答える 1

4

ここで指摘したように、既に json gem version がインストールされています1.7.5。しかし、取得しているエラーメッセージは states Could not find json (~> 1.5.1). ~>構文は、バージョンのみが受け入れられることを意味します1.5.x! したがって、依存関係を満たすために、これらのいずれかをインストールする必要があります。

于 2012-08-28T21:38:43.280 に答える