Bundler: Befehl nicht gefunden

140

Ich hoste auf einem vps, Ubuntu 10.04, Rails 3, Ruby und MySQL korrekt installiert, indem ich einige Tutorials befolge. Wenn ich laufe bundle checkoder bundle installdie Fehlermeldung '-bash: bundle: Befehl nicht gefunden' erhalte. Von gem list --localIch sehe 'Bundler (1.0.2, 1.0.0)' installiert ist.

Ich weiß nicht, was falsch läuft ...

gem environment kehrt zurück:

 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/

und echo $PATHkehrt zurück:

/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

und which gemkehrt zurück:

/usr/bin/gem

locate bundle kehrt zurück:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/
raphael_turtle
quelle
7
Hast du Bundler installiert?
Shingara

Antworten:

87

Sie müssen das ausführbare Ruby Gem-Verzeichnis zu Ihrem Pfad hinzufügen

export PATH=$PATH:/opt/ruby-enterprise-1.8.7-2010.02/bin
Peter Brown
quelle
14
Unter uBuntu 11.04 ist der neueste Befehlspfad jetzt export PATH = $ PATH: /var/lib/gems/1.8/bin
Antony
Update: Unter Ubuntu 11.04 scheint der Pfad irrelevant zu sein, denn solange wir das neueste RubyGem verwenden möchten, müssen wir nur RVM installieren und die gewünschte Ruby-Version installieren.
Antony
Antony, der für mich funktioniert hat und ich habe ein Update für die Hauptantwort eingereicht.
Michael Durrant
5
Verwenden Sie für Arch Linux den Export PATH = $ PATH: ~ / .gem / ruby ​​/ 2.0.0 / bin (an Ihre Ruby-Version anpassen)
Kostas Maragos
Für RVM export /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHoder ENV PATH /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHmit Docker.
CrizCraig
199

Mein Problem war, dass ich:

sudo gem install bundler

Also hatte ich als root und nicht als ich selbst installiert. Also habe ich als root deinstalliert und dann als ich selbst installiert:

sudo gem uninstall bundler
gem install bundler
rbenv rehash

(letzter Befehl, wenn Sie rbenv verwenden)

Und es hat funktioniert. Der "richtige" Pfad war in .bashrc(oder einem anderen Shell-Profil), zumindest gemäß

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

aber es hatte erwartet, dass es für mich installiert wird - nicht für root. In meinem Fall befindet sich der rechtmäßige Installationsort in~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler

xxjjnn
quelle
3
rbenv ist eine Alternative zu RVM. Es verwaltet alle Ihre verschiedenen Ruby-Versionen. Wenn Sie ein Juwel gem installdamit installieren, wird es zusammen mit der aktuell verwendeten Version von Ruby installiert, die Sie sehen können, wenn Sie dies tun rbenv versions(es sollte mit einem * gekennzeichnet sein). Wenn Sie den Bundler-Edelstein installieren, können Sie bundle installEdelsteine ​​verwenden, mit denen Sie Edelsteine ​​pro Projekt installieren können. Die Edelsteine, zu denen Sie neigen, gem installsind Dinge wie Bündler und Zeus. Wenn Sie müssen gem install, müssen Sie rbenv rehashdanach laufen . Es ist einfach so wie es ist.
xxjjnn
Ich hatte dieses Problem unter Windows. Rang gem install bundlerund jetzt ist alles gut.
Dan Atkinson
25

... auch für Debian GNU / Linux 6.0 :)

export PATH=$PATH:/var/lib/gems/1.8/bin
Lars Moelleken
quelle
Hat bei mir nicht funktioniert, irgendwelche Vorschläge? - GEM PATHS: - /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

Ich habe das gemacht (Ubuntu spätestens ab März 2013 [glaube ich :)]):

sudo gem install bundler

Der Kredit geht an Ray Baxter .

Wenn Sie Edelstein benötigen, habe ich Ruby auf diese Weise installiert (obwohl dies chronisch anstrengend ist):

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
Cody
quelle
3

Ich verwende Ubuntu 11.10 und die ausführbare Bundle-Datei befand sich in:

/var/lib/gems/1.8/bin
Spectralsun
quelle
3

Meine Lösung bestand darin, sicherzustellen, dass ich eine Version von Ruby für dieses Repo ausgewählt habe.

Beispiel: chruby 2.2.2oderrvm 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/.........
Mark Evans
quelle
3

Wahrscheinlich fügt dies der distro-sichere Pfad Ihrem .bashrc oder .zshrc hinzu, unabhängig von Ihrer Shell:

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

oder wenn Sie Ihre Edelsteine ​​benutzerweit installiert haben, verwenden Sie:

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

Für Benutzer von 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
Donato
quelle
1

Stellen Sie sicher, dass Sie dies tun, rbenv rehashwenn Sie verschiedene Rubine installieren

Peter
quelle
1

Schritt 1: Stellen Sie sicher, dass Sie sich auf dem Pfad des tatsächlichen Arbeitsbereichs befinden. Beispiel: Arbeitsbereich / Blog $: Schritt 2: Geben Sie den folgenden Befehl ein: gem install bundler. Schritt 3: Sie sollten jetzt bereit sein, die Installation oder das Update zu bündeln

unedujoe
quelle
1

Bei meiner Arch Linux-Installation wurden Gems im ~/.gem/ruby/2.6.0/binVerzeichnis installiert, wenn sie als Benutzer oder /root/.gem/ruby/2.6.0/binüber installiert wurden sudo. Hängen Sie einfach die entsprechende an Ihre $PATHUmgebungsvariable an:

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

Ich denke, die ausführbare Bundle-Datei ist aktiviert:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin und es ist nicht in Ihrem $ PATH

Shingara
quelle
0

Sie können auch einen Symlink erstellen:

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundle
Idee der Bestellung
quelle
ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundlesollte es dies mit einem Extra sein, das bundleSie als Sym-Link zum Bundle erstellen möchten, anstatt mit dem gesamten Bin-Verzeichnis?
Ashish Singh
0

Ich hatte genau das gleiche Problem und konnte es durch Ausführen beheben

rbenv rehash

Danach hat es bundlewie erwartet funktioniert. Beim Betrachten des Rbenv-Wiki-Eintrags wird erwähnt, dass Rehash ausgeführt werden sollte, wenn ein installierter Edelstein Befehle bereitstellt.

Installiert Shims für alle ausführbaren Ruby-Dateien, die rbenv bekannt sind (dh ~ / .rbenv / Versionen / / bin / ). Führen Sie diesen Befehl aus, nachdem Sie eine neue Version von Ruby installiert haben, oder installieren Sie ein Juwel, das Befehle bereitstellt.

Anscheinend ist dies so ärgerlich, dass einige Leute ein Juwel geschrieben haben, um sicherzustellen, dass Sie nie rehashwieder rennen müssen . rbenv-gem-rehash

Dan Bradbury
quelle
0

Ich habe diesen Fehler bekommen rbenv: bundle: command not found nachdem ein altes Rails-Projekt geklont habe, das ich vor Monaten gebaut hatte. So ging ich vor: So installieren Sie eine bestimmte Version des Bundlers oder führen Sie einfach den folgenden Befehl aus, um den neuesten verfügbaren Bundler zu installieren:

Lauf gem install bundler

Dann habe ich mit diesem Befehl die genaue Version des gewünschten Bundlers installiert:

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

[Weitere Informationen finden Sie in diesem Artikel] ( https://www.aloucaslabs.com/miniposts/rbenv-bundle-command-not-found#:~:text=When%20you%20get%20the%20rbenv,to%20install% 20the% 20Bundler% 20gem Weitere Informationen finden Sie in diesem Artikel

Holen Sie sich das Listen to Work, indem Sie diesen Befehl ausgeben

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

Addo
quelle