Wykonuję następujący skrypt:
gem install rdoc --no-document
gem install bundle
bundle
wynik:
+ 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>'
Dodałem /srv/myuser/.gem/ruby/2.5.0/bin
do mojej ścieżki, więc mogłem zainstalować klejnoty.
na gem env
pokazy
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
pokazuje zainstalowane klejnoty. Mogę również znaleźć pakiet, gdy wykonuję:
ls -ltrah /srv/myuser/.gem/ruby/2.5.0/bin
Próbowałem też zainstalować pakiet, ale to też nie pomogło. Co ja robię źle?
gem which bundle
nic nie pokazuje. gem spec bundle
pokazuje to.
Aktualizacja: próbowałem zainstalować pakiet przed uruchomieniem pakietu, ale ten sam problem pojawia się, gdy:
gem list bundle
przedstawia
bundle (0.0.1)
bundler (2.0.1)
Gemfile.lock
i ponowne uruchomienie instalacji pakieturubygems
do nowszej wersji - to również powinno rozwiązać problem.gem update --system
aby zaktualizować do najnowszej wersji (lub przynajmniejgem update --system '2.7.10' to stay on 2.7.x version of RubyGems
.shell gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
Możesz przeczytać jego artykuł, aby uzyskać więcej informacji.Zgodnie z opisem podanym w poście, przed uruchomieniem poniższej komendy:
w skrypcie musisz uruchomić poniższe polecenie:
Zatem sekwencja poleceń do działania byłaby następująca:
Zaktualizuj polecenie pakietu, jeśli nie działa, aby:
gem install bundler -v '1.17.3'
Przyczyna przerwy w funkcjonalnościach pakietu 2.0 podana jest w poniższym linku:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
źródło
Nie mogłem nawet tego zrobić
bundle -v
. To rozwiązało problem:Mam stąd informacje (podobny problem): find_spec_for_exe ': nie można znaleźć pakietu klejnotów (> = 0.a) (Gem :: GemNotFoundException)
Prawdopodobnie niezgodność wersji między ruby + gem + bundler
źródło
gem install bundler -v '< 2.0'
źródło
Ostatnio miałem ten sam problem. W moim przypadku zainstalowałem na bundlerze wersję inną niż ta zapisana w Gemfile.lock. Proszę sprawdzić
źródło
Zmierzyłem się z tym samym problemem. Problem jest spowodowany tym, że RubyGems nie może znaleźć pakietu wykonywalnego dla klejnotu pakietu w systemie
Aby to naprawić, najpierw uruchom
gem install bundler
jeśli nie masz zainstalowanego lokalnie klejnotu pakietu, uruchom
gem update --system
To wszystko
mam nadzieję, że to pomoże
źródło
Musisz zainstalować dokładną wersję Bundlera, której szuka RubyGems, uruchamiając:
$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"
źródło
Właśnie dzisiaj napotkałem ten sam błąd. Wersja bundlera, którą wcześniej zainstalowałem w swoim systemie, to: 1.16.6
Postępowałem zgodnie z instrukcjami w oficjalnych dokumentach pakietu dotyczącego aktualizacji do Bundler 2 i poniższe dwa kroki załatwiły sprawę :
gem install bundler
(Pomaga uzyskać najnowszą wersję pakietu, która na dzień dzisiejszy to 2.0.2)bundle update --bundler
źródło
Widziałem podobny komunikat o błędzie dla pakietu Travis po uaktualnieniu systemu Mac OS do Catalina.
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)
Aby rozwiązać ten problem, ponownie zainstalowałem program Travis ze źródła.
źródło