web-dev-qa-db-ja.com

バンドラー:実行可能なバンドル(Gem :: GemNotFoundException)を持つgemバンドル(> = 0.a)が、gemを使用したバンドルのインストール中に見つかりません

次のスクリプトを実行しています。

gem install rdoc --no-document
gem install bundle
bundle

出力:

+ gem install rdoc --no-document
Successfully installed rdoc-6.1.1
1 gem installed
+ gem install bundle
Successfully installed bundle-0.0.1
Parsing documentation for bundle-0.0.1
Done installing documentation for bundle after 2 seconds
1 gem installed
1 gem installed
+ bundle install
/usr/lib/Ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
    from /usr/lib/Ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
    from /srv/myuser/.gem/Ruby/2.5.0/bin/bundle:23:in `<main>'

私は追加しました /srv/myuser/.gem/Ruby/2.5.0/binをパスに追加したので、gemをインストールできました。

gem env番組

RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.7
  - Ruby VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/lib/Ruby/gems/2.5.0
  - USER INSTALLATION DIRECTORY: /srv/myuser/.gem/Ruby/2.5.0
  - Ruby EXECUTABLE: /usr/bin/Ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /srv/myuser/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - Ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/lib/Ruby/gems/2.5.0
     - /srv/myuser/.gem/Ruby/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--user-install"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - Shell PATH:
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/bin

gem listは、インストールされているgemを示します。私が実行するときにもバンドルを見つけることができます:

ls -ltrah /srv/myuser/.gem/Ruby/2.5.0/bin

私はまた、バンドラーをインストールしようとしましたが、それも助けにはなりませんでした。何が悪いのですか?

gem which bundleは何も表示していません。gem spec bundleが表示しています。

更新:バンドルを実行する前にバンドラーをインストールしようとしましたが、同じ問題が表示されます:

gem list bundle番組

bundle (0.0.1)
bundler (2.0.1)
74
DenCowboy

今日も同じエラーに直面しました。以前システムにインストールしたバンドラーのバージョンは1.16.6でした。

Bundler 2にアップグレードする方法 の公式のバンドラードキュメントの指示に従い、以下の2つのステップでうまくいきました。

  1. gem install bundler(今日の2.0.2である最新バージョンのバンドラーを入手するのに役立ちます)
  2. bundle update --bundler
0
boddhisattva

次のコマンドを実行して、RubyGemsが探しているBundlerの正確なバージョンをインストールする必要があります。

$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"

Mac OSをカタリナにアップグレードした後、トラビスバンドルについて同様のエラーメッセージが表示されました。

Traceback (most recent call last):
    2: from /usr/local/bin/travis:22:in `<main>'
    1: from /usr/local/Cellar/Ruby/2.6.5/lib/Ruby/2.6.0/rubygems.rb:263:in `bin_path'
/usr/local/Cellar/Ruby/2.6.5/lib/Ruby/2.6.0/rubygems.rb:284:in `find_spec_for_exe': can't find gem travis (>= 0.a) with executable travis (Gem::GemNotFoundException)

この問題を解決するために、ソースからtravisを再インストールしました。

brew remove travis;
brew install -s travis