Bundler : gem으로 번들을 설치하는 동안 실행 가능한 번들 (Gem :: GemNotFoundException)이있는 gem 번 들러 (> = 0.a)를 찾을 수 없습니다.


85

다음 스크립트를 실행하고 있습니다.

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설치된 보석을 보여줍니다. 다음을 수행 할 때도 번들을 찾을 수 있습니다.

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)

답변:


141

Bundler 버전 2는 Gemfile.lock프로젝트에 지정된 Bundler 버전을 자동으로 사용하는 새로운 기능을 도입했습니다 . 따라서 Gemfile.lock하단에 이와 같은 선 이있는 기존

BUNDLED WITH
   1.17.3

Bundler는 Bundler 버전 2.0 미만으로 실행을 시도합니다. Bundler 2.0.1 (및 Rubygems> = 2.7.0)이 설치되어 있기 때문에 다소 도움이되지 않는 오류 메시지와 함께 실패합니다.

이 문제를 해결하려면

  • 당신의 줄을 제거하고 Gemfile.lock지금부터 어디서나 번 들러 2.x를 사용 하십시오.
  • gem install bundler -v '< 2.0'지정된대로 적절한 버전을 사용하려면 번 들러 1.x 버전을 설치 하십시오 Gemfile.lock.

이에 대한 자세한 정보는 Bundler 블로그 에서 찾을 수 있습니다 .


4
IMO 이것은 정답이어야합니다. 가능한 수정이 목록에 추가 할 수있는 또 다른 옵션은 삭제하는 것입니다 Gemfile.lock다시 설치 번들 실행
아메 Savinon

이 답변에 감사드립니다.
올랜도

rubygems최신 버전으로 업데이트 하면 문제도 해결됩니다. gem update --system최신 버전으로 (또는 적어도 업그레이드 gem update --system '2.7.10' to stay on 2.7.x version of RubyGems.
알렉세이 Kubarev에게

Bundler 블로그는 RubyGems가 찾고있는 정확한 버전의 Bundler를 설치하는 한 줄 명령을 제공합니다 . 자세한 내용은 해당 기사shell gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)" 읽을 수 있습니다 .
Tom Nguyen

88

게시물에 언급 된 설명에 따라 아래 언급 된 명령을 실행하기 전에 :

bundle install

스크립트에서 아래 명령을 실행해야합니다.

gem install bundler

따라서 작동 할 명령의 순서는 다음과 같습니다.

gem install bundler
bundle install

작동하지 않는 경우 번 들러 명령을 업데이트하십시오.

 gem install bundler -v '1.17.3'

번 들러 2.0에서 기능이 중단 된 이유는 아래에 언급 된 링크에 나와 있습니다.

https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html


4
시도했지만 여전히 같은 문제입니다.
DenCowboy

1
그게 트릭을 했어요! 답변을 업데이트 할 수 있으며 수락하겠습니다. 더 많은 정보를 제공 할 수 있습니까?
DenCowboy

1
답변 업데이트 !!
Rohan

훌륭한 대답은 버전을 되 돌리는 것만 큼 간단하지는 않았지만 그랬다는 것을 아는 것이 좋습니다.
newdark-it

1
Bundler 1.x에서 2.x로 방금 업그레이드 한 경우 BUNDLED WITH와 관련된 Holger Just의 답변을 참조하십시오. 번 들러를 다운 그레이드 할 필요가 없습니다. 줄을 제거하거나 현재 버전으로 업데이트하면 해결됩니다.
William Lahti 2019



4

최근에 같은 문제가 발생했습니다. 제 경우에는 Gemfile.lock에 기록 된 것과 다른 버전을 번 들러에 설치했습니다. 확인해주십시오


3

나는이 같은 문제에 직면했다. 이 문제는 RubyGems가 시스템에서 번 들러 gem의 실행 가능한 번들을 찾을 수 없기 때문에 발생합니다.

문제를 해결하려면 먼저 실행하세요.

gem install bundler

번 들러 젬이 로컬에 설치되어 있지 않으면 다음을 실행하십시오.

gem update --system

그게 다야

이게 도움이 되길 바란다


이 사이트에도있는 답변으로 해결했습니다 : bundler.io/blog/2019/05/14/…
DiegoG

2

RubyGems가 찾고있는 정확한 버전의 Bundler를 다음을 실행하여 설치해야합니다.

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

1

나는 오늘도 같은 오류에 직면했습니다. 이전에 시스템에 설치 한 번 들러 버전은 1.16.6입니다.

Bundler 2로 업그레이드하는 방법 에 대한 공식 번 들러 문서의 지침을 따르고 아래 두 단계가 트릭을 수행했습니다.

  1. gem install bundler (오늘 현재 2.0.2 인 최신 버전의 번 들러를 얻을 수 있도록 도와줍니다.)
  2. bundle update --bundler

1

mac os를 Catalina로 업그레이드 한 후 travis 번들에 대해 유사한 오류 메시지가 표시되었습니다.

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.