Bundler: nie znaleziono polecenia


141

Hostuję na serwerze vps, ubuntu 10.04, rails 3, ruby ​​i mysql zainstalowanym poprawnie, postępując zgodnie z kilkoma samouczkami. Jeśli uruchomię bundle checklub bundle installotrzymam błąd „-bash: bundle: nie znaleziono polecenia”. Od gem list --localwidzę 'Bundler (1.0.2, 1.0.0)' jest zainstalowany.

Nie wiem, co się dzieje ...

gem environment zwroty:

 RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.8.7 (2010-04-19 patchlevel 253) [i686-linux]
  - INSTALLATION DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
     - /root/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

i echo $PATHzwraca:

/opt/myruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/gem:/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/:/root/.gem/ruby/1.8

i which gemzwraca:

/usr/bin/gem

locate bundle zwroty:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/

7
czy zainstalowałeś pakiet?
shingara

Odpowiedzi:


87

Musisz dodać katalog wykonywalny ruby ​​gem do swojej ścieżki

export PATH=$PATH:/opt/ruby-enterprise-1.8.7-2010.02/bin

14
W uBuntu 11.04 najnowsza ścieżka poleceń to teraz export PATH = $ PATH: /var/lib/gems/1.8/bin
Antony,

Aktualizacja: pod Ubuntu 11.04 wydaje się, że ścieżka jest nieistotna, ponieważ tak długo, jak chcemy używać najnowszego RubyGem, wystarczy zainstalować RVM i zainstalować żądaną wersję Ruby.
Antony,

Antony, który działał dla mnie i przesłałem aktualizację do głównej odpowiedzi.
Michael Durrant,

5
W przypadku Arch Linux użyj export PATH = $ PATH: ~ / .gem / ruby ​​/ 2.0.0 / bin (dostosuj do swojej wersji Ruby)
Kostas Maragos

Do użytku rvm export /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHlub ENV PATH /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHz Dockerem .
crizCraig

199

Mój problem polegał na tym, że zrobiłem:

sudo gem install bundler

Więc zainstalowałem jako root, a nie jako ja. Więc odinstalowałem jako root, a następnie zainstalowałem jako siebie:

sudo gem uninstall bundler
gem install bundler
rbenv rehash

(ostatnie polecenie, jeśli używasz rbenv)

I zadziałało. „Prawidłowa” ścieżka znajdowała się w .bashrc(lub innym profilu powłoki), przynajmniej zgodnie z

$PATH
=> zsh: /Users/myself/.rbenv/shims:/Users/myself/.rbenv/bin: ... etc

ale spodziewał się, że zostanie zainstalowany dla mnie - nie dla roota. W moim przypadku jego prawowite miejsce instalacji to~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler


3
rbenv jest alternatywą dla RVM. Zarządza wszystkimi różnymi wersjami ruby. Kiedy instalujesz klejnot gem install, instaluje go wraz z aktualnie używaną wersją ruby, którą możesz zobaczyć, kiedy to zrobisz rbenv versions(powinno być oznaczone *). Kiedy instalujesz klejnot w pakiecie, możesz bundle installklejnoty, które pozwolą ci instalować klejnoty na podstawie projektu. gem installKlejnoty, do których masz skłonność, to takie rzeczy jak bundler i zeus. Kiedy ty gem install, musisz rbenv rehashpóźniej biec . Po prostu tak jest.
xxjjnn

Miałem ten problem w systemie Windows. Zadzwoniłem gem install bundleri teraz wszystko jest w porządku.
Dan Atkinson

25

... także dla Debian GNU / Linux 6.0 :)

export PATH=$PATH:/var/lib/gems/1.8/bin

Nie działały dla mnie jakieś sugestie? - ŚCIEŻKI GEM: - /var/lib/gems/1.8 - /kunden/homepages/11/dxxxxxx/htdocs/.gem/ruby/1.8 echo $ PATH ~ / .composer / vendor / bin: / usr / local / bin: / usr / bin: / usr / X11R6 / bin: / bin: / usr / local / ms: /kunden/homepages/11/d3xxxxxx/htdocs/.rvm/bin: /var/lib/gems/1.8/bin: / var / lib / gems / 1.8 / bin
Juan

15

Zrobiłem to (Ubuntu najnowsze w marcu 2013 [chyba :)]):

sudo gem install bundler

Kredyt należy do Raya Baxtera .

Jeśli potrzebujesz klejnotu, zainstalowałem Rubiego w ten sposób (choć jest to chronicznie obciążające):

mkdir /tmp/ruby && cd /tmp/ruby
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz
tar xfvz ruby-1.9.3-p327.tar.gz
cd ruby-1.9.3-p327
./configure
make
sudo make install

3

Używam Ubuntu 11.10, a plik wykonywalny pakietu znajdował się w:

/var/lib/gems/1.8/bin

3

Moim rozwiązaniem było upewnienie się, że wybrałem wersję Rubiego dla tego repozytorium.

Przykład: chruby 2.2.2lubrvm use 2.2.2

λ bundle install
zsh: command not found: bundle

λ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

### Notice the system Ruby version isn't included in chruby

λ chruby
  ruby-1.9.3-p551
  ruby-2.1.2
  ruby-2.2.1

### Select a version via your version manager

λ chruby 1.9.3

### Ensure your version manager properly selects a version (*)

λ chruby
 * ruby-1.9.3-p551
   ruby-2.1.2
   ruby-2.2.1

λ bundle install
Fetching gem metadata from https://rubygems.org/.........

3

Prawdopodobnie ścieżka odporna na dystrybucję dodaje to do twojego .bashrc lub .zshrc, niezależnie od twojej powłoki:

PATH="$(ruby -e 'print Gem.default_dir')/bin:$PATH"

lub jeśli zainstalowałeś swoje klejnoty dla całego użytkownika, użyj:

PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

2

Dla użytkowników rbenv:

$ rbenv versions
2.6.0
$ rbenv global 2.6.0
$ ruby -v
ruby 2.6.0p0
$ gem install bundler
$ rbenv rehash
$ bundle
$ rails -v
Command 'rails' not found
$ rbenv rehash
$ rails -v
Rails 4.2.11.1

1

Upewnij się, że robisz to rbenv rehashpodczas instalowania różnych rubinów


1

Krok 1: Upewnij się, że jesteś na ścieżce do rzeczywistego obszaru roboczego, na przykład obszar roboczy / blog $: Krok 2: Wpisz polecenie: gem install bundler. Krok 3: Powinieneś być już gotowy do instalacji pakietowej lub aktualizacji pakietu


1

W mojej instalacji Arch Linux klejnoty zostały zainstalowane w ~/.gem/ruby/2.6.0/binkatalogu, jeśli zostały zainstalowane jako użytkownik lub /root/.gem/ruby/2.6.0/binjeśli zostały zainstalowane przez sudo. Po prostu dołącz odpowiednią do $PATHzmiennej środowiskowej:

export PATH=$PATH:/home/your_username/.gem/ruby/2.6.0/bin

0

Myślę, że plik wykonywalny pakietu jest włączony:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin i nie ma go w $ PATH


0

Możesz również utworzyć łącze symboliczne:

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundle

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundleczy powinno być to z dodatkowym bundle, chcesz utworzyć link symboliczny do pakietu, a nie cały katalog bin?
Ashish Singh

0

Miałem dokładnie ten sam problem i udało mi się go rozwiązać, uruchamiając

rbenv rehash

Potem bundledziałało zgodnie z oczekiwaniami. Po spojrzeniu na wpis wiki rbenv wspomina się, że rehash powinien być uruchamiany, gdy zainstalowany gem dostarcza polecenia.

Instaluje podkładki dla wszystkich plików wykonywalnych Rubiego znanych rbenv (tj. ~ / .Rbenv / wersje / / bin / ). Uruchom to polecenie po zainstalowaniu nowej wersji Rubiego lub zainstalowaniu klejnotu, który udostępnia polecenia.

Najwyraźniej jest to tak irytujące, że niektórzy ludzie napisali klejnot, aby upewnić się, że nigdy więcej nie będziesz musiał biegać rehash. rbenv-gem-rehash


0

Mam ten błąd rbenv: bundle: command not found po sklonowaniu starego projektu Rails, który zbudowałem kilka miesięcy temu. oto jak się do tego zabrałem: Aby zainstalować konkretną wersję pakietu lub po prostu uruchom następującą komendę, aby zainstalować najnowszy dostępny pakiet:

biegać gem install bundler

następnie zainstalowałem dokładną wersję pakietu, którą chciałem, za pomocą tego polecenia:

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

[sprawdź ten artykuł, aby uzyskać więcej informacji] ( https://www.aloucaslabs.com/miniposts/rbenv-bundle-command-not-found#:~:text=When%20you%20get%20the%20rbenv,to%20install% 20the% 20Bundler% 20gem sprawdź ten artykuł, aby uzyskać więcej informacji

uruchom nasłuchiwanie, wydając to polecenie

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.