webentwicklung-frage-antwort-db.com.de

RVM Bundle Install Missing Gem Fehler, obwohl Gem installiert ist

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.

55
cstingl

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" 
94
Roman

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

19
Rick Fletcher

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.

10
Patrick Smith

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.

5
jbaldo

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.

4
gamecreature

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.

4
mArtinko5MB

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

3
Minqi Pan

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
3
Matt Mitchell

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.

3
Koen.

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.

2
Daniel James

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

2
gordonbanderson

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.

2
user1417226

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
1
Erik Shilts

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.

1
lobati

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!

0
Jeff

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!}
0
MorningHacker

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
0
coneybeare

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

0
mloughran