Ich erhalte die folgende Fehlermeldung, obwohl ich momentan das Bundler-Juwel installiert habe (es wird angezeigt, wenn ich $ gem list ausführe).
ERROR: Gem bundler is not installed, run `gem install bundler` first.
Ich verwende RVM und mein $ PATH lautet wie folgt:
/Users/cjstingl/.rvm/gems/[email protected]/bin:
/Users/cjstingl/.rvm/gems/[email protected]/bin:
/Users/cjstingl/.rvm/rubies/Ruby-1.9.2-p290/bin:
/Users/cjstingl/.rvm/bin:
/Users/cjstingl/.bin:
/usr/local/sbin:
/usr/local/Cellar/php/5.3.6/bin:
/usr/local/share/python:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/X11/bin
Auch das ist mein Juwel env
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.15
- Ruby VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.2.0]
- INSTALLATION DIRECTORY: /Users/cjstingl/.rvm/gems/[email protected]
- Ruby EXECUTABLE: /Users/cjstingl/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby
- EXECUTABLE DIRECTORY: /Users/cjstingl/.rvm/gems/[email protected]/bin
- RUBYGEMS PLATFORMS:
- Ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/cjstingl/.rvm/gems/[email protected]
- /Users/cjstingl/.rvm/gems/[email protected]
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => false
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "-n/usr/local/bin --no-ri --no-rdoc --no-user-install"
- REMOTE SOURCES:
- http://rubygems.org/
Außerdem: Wenn Sie den Befehl bundle -v verwenden, wird derselbe Fehler zurückgegeben
Ich habe versucht, RVM zu implodieren und neu zu installieren, was anscheinend nicht funktioniert. Ich bin ratlos und würde mich über jede Hilfe freuen.
Das Hinzufügen des Folgenden (aus .bash_profile entnommen) zu .bashrc hat es für mich behoben:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Ich hatte das gleiche Problem mit einer Neuinstallation von RVM 1.10.3. Nach der Neuinstallation ist mir aufgefallen, dass Bundler installiert ist und dass <gemset>/bin-Verzeichnisse zu meinem $ PATH hinzugefügt werden, diese bin-Verzeichnisse jedoch nicht vorhanden sind. Ich denke, es ist nur ein RVM-Fehler.
Als schnelle Lösung habe ich die Binärdatei bundle
manuell in ein vorhandenes RVM-Binärverzeichnis kopiert. Das scheint mein Problem behoben zu haben:
$ cd ~/.rvm
$ cp gems/Ruby-1.9.3-p0/gems/bundler-1.0.21/bin/bundle rubies/Ruby-1.9.3-p0/bin/
Die Versionen Ruby und Bundler in diesen Pfaden unterscheiden sich wahrscheinlich für Sie.
Die obige Lösung funktioniert, aber sie hat mich abgehört, also habe ich sie den RVM-Leuten zur Verfügung gestellt. Es stellte sich heraus, dass meine ~/.gemrc-Datei den Speicherort des Edelsteins mit der folgenden Zeile überschrieb:
- "gem" => "-n/usr/local/bin"
Das Entfernen hat es für mich behoben. Siehe hier für den vollständigen Thread: https://github.com/wayneeseguin/rvm/issues/1043#issuecomment-7336267
Ich hatte ein ähnliches Problem und die Antwort (zumindest für mich) war nach vielen Versuchen und Irrtümern unglaublich einfach.
Dies ist definitiv ein Pfadproblem, und die Erwähnung der Pfadreihenfolge durch @ gamecreature war der entscheidende Hinweis für mich.
Ich bin nicht sicher, wie es passiert ist, aber ich hatte $HOME/.rvm/bin
Als erstes Element in meinem PATH-Export.
Dies ist nicht erforderlich, da dieses Verzeichnis in der richtigen Reihenfolge zum Pfad hinzugefügt wird, indem die rvm-Datei bezogen wird.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Mein Fix bestand also darin, $HOME/.rvm/bin
Aus meinem PATH-Export zu entfernen.
Wenn Sie über mehrere Init-Dateien (.bashrc, .bash_profile, .profile) verfügen, befolgen Sie unbedingt die Anweisungen auf der Seite rvm-Fehlerbehebung :
stellen Sie sicher, dass das Sourcing der rvm-Datei zuletzt in Ihren Profildateien (.bash_profile/.bashrc/.zshrc) erfolgt, im Wesentlichen nach Anpassungen von PATH/Funktionen oder Aliase.
Ich würde jedoch auch empfehlen, den Rest Ihrer PATH-Definition zu überprüfen, um sicherzustellen, dass keine Duplikate deklariert wurden, die Vorrang haben würden.
Ich hatte ein ähnliches Problem. Es stellte sich heraus, dass ich keine projektspezifische .rvmrc-Datei hatte. Ich habe es gerade mit erstellt
rvm --rvmrc --create [email protected]_project_name
In meinem Projekt dir
Dies löste das Problem
Wenn Sie dem auf den Grund gegangen sind und immer noch Ihren Kopf gegen die Wand schlagen ...
Mein Problem war, dass rvm install 1.8.7
versagte spät in der Installation, schien aber erfolgreich zu sein (ich hatte Ruby 1.8.7 und konnte Gemsets erstellen)
Aber es scheint wie $GEM_HOME
wird spät im Installationsskript gesetzt und da das nicht gesetzt war, suchte rvm nicht an der richtigen Stelle nach Edelsteinen.
Ich rannte rvm reinstall 1.8.7
und suchte sorgfältig nach Fehlern.
Was mich darauf aufmerksam machte, war dieser Thread: https://groups.google.com/d/topic/rubyversionmanager/aUBDxbBzZpE/discussion
Sie können überprüfen, ob dies Ihr Problem ist, indem Sie ausführen
echo $GEM_HOME
oder gem env
oder überprüfe dein rvm Installationsprotokoll (siehe Link oben)
Sehen Sie Ihre Ruby Version und den Gemset-Namen in Ihrem Gem-Pfad? Wenn nicht, ist die Installation des rvm möglicherweise fehlgeschlagen.
Ich weiß nicht, ob es die Ursache Ihres Problems ist. Aber ich hatte ein ähnliches Problem. Der Grund war, dass meine RVM-Umgebung nicht korrekt war.
Ich hatte 2 Benutzer, von denen einer funktionierte, der nicht funktionierte. Der funktionierende Benutzer hat das folgende Bundleskript verwendet. (Ausgabe von: welches Bundle)
/home/rvm/.rvm/gems/Ruby-1.9.3-p0/bin/bundle
Der falsche Benutzer für die rvm-Installation hat Folgendes verwendet:
/home/user/.rvm/bin/bundle
Der Grund dafür ist die falsche $ PATH-Bestellung. Der Pfad .rvm/gems/Ruby -.../bin sollte vor dem Pfad ./rvm/bin stehen.
In meiner Situation bestand die Ursache darin, dass ich die Variable $ PATH auf einen rvm eines anderen Benutzers gesetzt habe. Ich habe das Problem behoben, indem ich einen symbolischen Link zur RVM des Benutzers hinzugefügt und meinen Pfad geändert habe von:
/home/rvm/.rvm/bin
zu
/home/user/.rvm/bin
Wenn der obige Code für Sie nicht funktioniert, können Sie den Pfad direkt NACH dem Laden von rvm manuell anpassen.
Versuchen Sie Folgendes: https://rvm.io/integration/gnome-terminal/
es heißt über Profile beim Start ausgeführt, ich bin Ubuntu 12.10 ausgeführt und es funktioniert. Sie müssen nur "Befehl als Anmeldeshell ausführen" in den Einstellungen des Terminalprofils festlegen (Tabulatortitel und Befehl).
Hoffe, es spart jemandem etwas Zeit.
Weißt du was? Dies ist offensichtlich das Problem deiner PATH-Variablen.
Sie sollten sicherstellen, dass which bundle
Wie /usr/local/rvm/gems/Ruby-1.9.3-p194/bin/bundle
Anstatt wie /usr/local/rvm/bin/bundle
Ist.
hinweis:
Haben Sie gerade PATH = eine explizite Liste in Ihrer .zshrc-Datei verwendet?
Dann sollten Sie dies in PATH = $ PATH: some list ändern
Dies passierte auch mir, nachdem ich zu einem neuen leeren Gemset gewechselt und gem install bundler
Ausgeführt hatte. Die Ursache ist, dass sich die Shell die letzte bundle
ausführbare Datei "merkt", die Sie verwendet haben. So beheben Sie das (zumindest in bash
- Nachkommen):
hash -r
Nachdem ich RVM auf mehreren Computern mit demselben Setup installiert hatte und Probleme mit RVM auf einem Computer hatte, aber diese Probleme auf einem anderen Computer nicht hatte, entschied ich mich, nach etwas Besserem zu suchen, das weniger fehleranfällig ist.
Ich fand und wechselte zu rbenv, was viel einfacher ist als RVM.
Und wie das README
von rbenv besagt:
rbenv macht ...
- Mit können Sie die globale Ruby Version auf Benutzerbasis ändern.
- Bieten Sie Unterstützung für pro Projekt Ruby Versionen .
- Erlauben Sie Ihnen, die Ruby Version mit einer Umgebungsvariablen zu überschreiben.
Im Gegensatz zu rvm funktioniert rbenv nicht ...
- Muss in Ihre Shell geladen werden. Stattdessen fügt rbenvs Shim-Ansatz Ihrem $ PATH ein Verzeichnis hinzu.
- Überschreiben Sie Shell-Befehle wie cd. Das ist gefährlich und fehleranfällig.
- Haben Sie eine Konfigurationsdatei. Es gibt nichts zu konfigurieren, außer welche Version von Ruby) Sie verwenden möchten.
- Installieren Sie Ruby. Sie können Ruby selbst erstellen und installieren oder Ruby-build verwenden den Prozess zu automatisieren.
- Gemsets verwalten. Bundler ist eine bessere Möglichkeit, Anwendungsabhängigkeiten zu verwalten. Wenn Sie Projekte haben, die Bundler noch nicht verwenden, können Sie das rbenv-gemset Plugin installieren.
- Erforderliche Änderungen an Ruby -Bibliotheken aus Kompatibilitätsgründen. Die Einfachheit von rbenv bedeutet, solange es sich in Ihrem $ PATH befindet. - sonst nichts muss es wissen.
- Fordern Sie Sie mit Warnungen auf, wenn Sie zu einem Projekt wechseln. Anstatt beliebigen Code auszuführen, liest rbenv nur den Versionsnamen aus jedem Projekt. Es gibt nichts zu "vertrauen".
Also, wenn Sie mich fragen, geben Sie RVM aus und wechseln Sie zu rbenv.
Ich hatte ein sehr ähnliches Problem aus einem etwas anderen Grund. Mein Heimatverzeichnis hatte ein .gemrc
Datei übrig von einem alten Ruby Setup, und ich hatte beim Löschen der alten Dateien verpasst. Es scheint, dass Gem die RVM-Einstellungen mit den Einstellungen in dieser Datei verwechselt hat. Einmal habe ich entfernt es (und einige Dateien an den alten Speicherort installiert), hat alles gut funktioniert.
Ich bin heute auf dasselbe Problem gestoßen. Der Ansatz, mit dem ich das Problem gelöst habe, war folgender:
1) Laufen
cap Shell
auf demselben Computer würden Sie normalerweise cap deploy ausführen. Dann ausführen
env | sort
Dadurch wird der Befehl auf dem Remoteserver ausgeführt. Kopieren Sie die Ausgabe und fügen Sie sie in eine lokale Textdatei ein, z. capenv.txt
2) SSH auf demselben Remote-Server und führen denselben Befehl aus, nämlich env | Sortieren. Speichern Sie dies lokal als Textdatei, z. sshenv.txt
3) Vergleichen Sie die beiden Dateien und sehen Sie, was sich in der Datei sshenv.txt und nicht in der Datei capenv.txt befindet. Dies ist höchstwahrscheinlich der Ort, an dem Ihr Problem liegt.
< ++CAP ++
< _=/bin/sh
---
> ++ SSH ++
> __array_start=0
14a15
> PS1=\[\e]2;[email protected]\a\e[0;31m LIVE:\[email protected]\h \w> \e[0m
18d18
< rvm_env_string=Ruby-1.9.3-p194
21d20
< rvm_Ruby_string=Ruby-1.9.3-p194
27c26,28
< USER=tracker
\ No newline at end of file
---
> USER=tracker
> USES_BASHRC=bashrc
> _=/usr/bin/env
4) Ich bemerkte sofort, dass der Shell-Interpreter nicht auf Bash eingestellt war. Dies kann durch Hinzufügen behoben werden
set :Shell, '/usr/bin/bash'
in Ihre deploy.rb-Datei. Dies löste mein Problem
Ich habe Ruby 1.9.3 von rvm installiert. Nachdem Git Octopress fertiggestellt ist, bearbeite einfach $ path_of_git/.rvmrc wie folgt: "rvm use 1.9.3". UND dann starte den Befehl von "cd ..; cd $ path_of_git ". Danach werden Sie gefragt, ob Sie der .rvmrc-Datei vertrauen möchten oder nicht. Geben Sie 'y' ein, damit die .rvmrc-Datei funktioniert.
Dies funktioniert für mich, wenn ich die Version von Ruby Ich möchte verwenden:
$ rvm use 1.9.2-p290
Using /Users/myname/.rvm/gems/Ruby-1.9.2-p290
Ich bin selbst auf dieses Problem gestoßen, nachdem ich mein Ruby Patch-Level. Ich habe which gem
Ausgeführt und festgestellt, dass es eine globale Version von Rubygems verwendet. In diesem Fall lautete der Pfad ~/.rvm/bin/gem
. Also habe ich rvm rubygems current
Ausgeführt, wodurch es in ~/.rvm/rubies/Ruby-1.8.7-p370/bin/gem
. Ran gem install bundler
Und bundle
installiert wurde. Problem behoben.
Stieß auf einem meiner Laptops auf dasselbe Problem (wobei ich den Bundler immer wieder installierte und rvm ihn nicht erkannte). Ich habe vermutet, dass ich RVM möglicherweise falsch installiert habe, als ich noch ein Rails Neuling war. Ich habe die obige Lösung ausprobiert, aber sie hat bei mir nicht funktioniert. Nachdem ich damit rumgespielt hatte, gab ich es auf und entfernte RVM und installierte es neu. Ich dachte, es liegt an einem seltsamen Konfigurationsproblem, das irgendwo oder tief verschachtelt ist. Hier sind die Schritte, die ich unternommen habe:
RVM entfernen:
rvm implode
Installieren Sie RVM erneut:
curl -L https://get.rvm.io | bash -s stable --Rails
rvm reload
Da ich an einem alten Rails Projekt für die Arbeit arbeite, musste ich ree-1.8.7-2012.02 installieren
rvm install ree-1.8.7-2012.02
Natürlich gilt immer noch Murphys Gesetz. Ich bin auf ein anderes Problem gestoßen, bei dem mein Laptop keinen Non-broken C-Compiler gefunden hat, obwohl Xcode zusammen mit gcc installiert ist. Meine letzten Schritte waren https://github.com/kennethreitz/osx-gcc-installer und die Installation des Pakets und die Neuinstallation von ree.
Ich hoffe, diese Lösung hilft jemandem. Viel Glück!
Ich hatte auch dieses Problem. Ich habe mein Problem behoben, indem ich ein Gemset angegeben habe.
$ bundle install
ERROR: Gem bundler is not installed, run `gem install bundler` first.
$ rvm gemdir
/usr/local/rvm/gems/Ruby-1.9.3-p194
$ rvm gemset list
gemsets for Ruby-1.9.3-p194 (found in /usr/local/rvm/gems/Ruby-1.9.3-p194)
global
Rails32
$ rvm gemset use Rails32
Using Ruby-1.9.3-p194 with gemset Rails32
$ Rails s
Could not find rake-10.0.4 in any of the sources
Run `bundle install` to install missing gems.
$ bundle install
Fetching gem metadata from https://rubygems.org/.......
{And voila! it worked!}
Für mein Setup hat das Hinzufügen des Benutzers, unter dem Apache ausgeführt wird, zur rvm-Gruppe funktioniert
usermod -a -G rvm www-data
Ich hatte das gleiche Problem, als ich eine leere .rvmrc
- Datei in dem Verzeichnis hatte, zu dem ich gewechselt habe (rvm 1.15.1). Offensichtlich gibt es viele Ursachen für diesen Fehler