2016-07-20 6 views
1

BundlerはRakeを見つけることができません。私のRubyの宝石は、バンドラーがそれを見つけることができる場所にインストールされますように、私は私の宝石のパスを修正するにはどうすればよいRakeは私の宝石のパスにありますが、Bundlerはそれを見つけることができません。

私が行う場合:

gem env 

私は、次を参照してください。

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.0.14 
    - RUBY VERSION: 2.0.0 (2015-04-13 patchlevel 645) [universal.x86_64-darwin15] 
    - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0 
    - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/local/bin 
    - RUBYGEMS PLATFORMS: 
     - ruby 
     - universal-darwin-15 
    - GEM PATHS: 
     - /Library/Ruby/Gems/2.0.0 
     - /Users/lkrubner/.gem/ruby/2.0.0 
     - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0 
    - GEM CONFIGURATION: 
     - :update_sources => true 
     - :verbose => true 
     - :backtrace => false 
     - :bulk_threshold => 1000 
     - "install" => "--no-ri --no-rdoc" 
     - "update" => "--no-ri --no-rdoc" 
    - REMOTE SOURCES: 
     - https://rubygems.org/ 

すくいがあります:

ls -al /Library/Ruby/Gems/2.0.0/gems 

    rake-0.9.6 
    rake-10.4.2 
    rake-11.2.2 
    rdoc-4.0.0 
    test-unit-2.0.0.0 

しかし、現在のプロジェクトのために、この問題のどれも。

私は別の開発者からのRailsプロジェクトを引き継いでいます。

のRails 4.2

レーキ11..2.2

ルビー2.0.0

私は

.bundler/config 

に見れば、私は以下を参照してください。

BUNDLE_PATH: vendor/cache 
    BUNDLE_DISABLE_SHARED_GEMS: '1' 

もしI私が見ることができる "find"を使う

vendor/cache/rake-11.2.2.gem 
    vendor/cache/ruby/2.1.0/gems/rake-10.5.0/ 
    vendor/cache/ruby/2.1.0/gems/rake-11.2.2 
    vendor/cache/ruby/2.1.0/gems/rake-10.4.2 

しかし、これらのほとんどは2.0ではなく、ruby 2.1のフォルダになります。

しかし、私はしようとした場合:

bundle exec rake db:setup 

私が手:

Could not find rake-11.2.2 in any of the sources 

私は "バンドルがインストール" しようとしました。

私はGemfile.lockを削除しようとしました。

私は「バンドルexecを」使用しないようにしようとしました。

私は何もできません。

私はただ一つのパスを使用するようにシステムを取得する必要があります。バージョンはそれほど重要ではありません。

1つのパスですべてを一致させるにはどうすればよいですか?

私が実行している場合は、私が「すくい11.2.2の使用」を参照してください出力にし、「バンドルのインストール」。したがって、Bundlerが「インストール」タスクを実行しているときに「バンドル」コマンドでレーキが表示されますが、「実行」タスクを実行しているときは表示されません。ところで

which rake 
    /usr/local/bin/rake 

これはハードコーディングされた2にあります。ルビーの0バージョン:

#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby 
    # 
    # This file was generated by RubyGems. 
    # 
    # The application 'rake' is installed as part of a gem, and 
    # this file is here to facilitate running it. 
    # 

    require 'rubygems' 

    version = ">= 0" 

    if ARGV.first 
    str = ARGV.first 
    str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding 
    if str =~ /\A_(.*)_\z/ 
     version = $1 
     ARGV.shift 
    end 
    end 

    gem 'rake', version 
    load Gem.bin_path('rake', 'rake', version) 

[[UPDATE]]

[[UPDATE]]

私は削除:

.bash_profileの

.bashrcの

を。 zshrc

と私は実行しました:

chsh -s /bin/bash 

私はMacにいます。これは私のシェルをzshからbashに変更したはずです。

その後、すべての変更がロードされたことを確認するために、ターミナルウィンドウで開始しました。私は「バンドルのインストール」を実行する場合

さて、宝石は、ベンダー/キャッシュにインストールしているようだ/私はこのエラーを取得:

rbenv install 2.1.0 

と私は実行します。

Installing paperclip 5.0.0 
    Gem::InstallError: paperclip requires Ruby version >= 2.1.0. 

は、だから私は実行を"bundle install"を再度実行すると、同じエラーが表示されます。

ルビーのバージョンは次のとおりです。

ruby -v 
    ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15] 

任意のアドバイスはありますか?

は、私が実行した場合:

gem env 

は、私が参照してください。

- GEM PATHS: 
    - /Users/lkrubner/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0 
    - /Users/lkrubner/.gem/ruby/2.3.0 
+0

'gemfile 'に' gem' rake''が含まれていますか? –

+0

試してみる 'bundle exec gem list | grep rake'を実行して、複数のバージョンがインストールされていて、バージョンの一覧が表示されているかどうかを確認してください。次に 'gem uninstall rake'を使い、削除したいバージョンを選択します。 – jaydel

+0

@Holger - 私はそれを3つの方法で試しました.Gemfileでは 'rake'なしで、Gemfileでは指定されたバージョンがなく、バージョンも指定されています。何も動作しません。 – charlottesville

答えて

0

私はこれが修正されましたね。 .bashrcと.bash_profileと.zshrcをすべて削除し、デフォルトのシェルをbashに戻してrvmのすべての言及を削除し、rbenvを再インストールして "gem"と "Bundler"を再インストールすると、パスの問題の少なくとも一部が修正されたようです。そして私はペーパークリップをグローバルにインストールしたと思う "gem install paperclip"を行うことでPaperclipの問題を解決しましたが、少なくとも私のローカルMacで動作します。非常に壊れやすいが、物事は働いている。

私はこのプロジェクトでClojureを使用したいと考えています。私がRubyに巻き込まれるたびに、私はこの無限の迷路の問題に取り組むことになります。 Clojureでは、私はLeiningenによって保護されています。Leiningenは純粋な魔法でこのことを理解しているようです。

0

私はこの問題を解決するためにgem update bundlerを実行しました。

関連する問題