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

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

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)



답변

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 블로그 에서 찾을 수 있습니다 .


답변

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

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


답변

나는 심지어 할 수 없었다 bundle -v. 이것은 그것을 분류했습니다.

gem update --system

여기에서 정보를 얻었습니다 (유사한 문제). find_spec_for_exe ‘: 보석 번 들러를 찾을 수 없습니다 (> = 0.a) (Gem :: GemNotFoundException)

아마도 루비 + 보석 + 번 들러 간의 일부 버전 불일치


답변

gem install bundler -v '< 2.0'


답변

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


답변

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

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

gem install bundler

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

gem update --system

그게 다야

이게 도움이 되길 바란다


답변

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

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