Ensemble RVM Installer l’erreur Gem manquante même si gem est installé

Je reçois l’erreur suivante même si la gemme Bundler est actuellement installée (elle apparaît lorsque je lance la liste $ gem).

ERROR: Gem bundler is not installed, run `gem install bundler` first. 

J’utilise RVM et mon $ PATH est comme suit:

 /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd/bin: /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@global/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 

Aussi c’est mon bijou 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/ruby-1.9.2-p290@rails3tutorial2ndEd - RUBY EXECUTABLE: /Users/cjstingl/.rvm/rubies/ruby-1.9.2-p290/bin/ruby - EXECUTABLE DIRECTORY: /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-darwin-11 - GEM PATHS: - /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd - /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@global - 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/ 

En outre: L’utilisation de la commande bundle -v renvoie la même erreur

J’ai essayé d’impliquer RVM et de réinstaller ce qui ne semble pas fonctionner. Je suis déconcerté et toute aide serait appréciée.

L’ajout de ce qui suit (pris à partir de .bash_profile) à .bashrc a corrigé pour moi:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

J’ai eu le même problème avec une installation propre de RVM 1.10.3. Après la réinstallation, j’ai remarqué que Bundler était installé et que les répertoires / bin étaient ajoutés à mon $ PATH, mais ces répertoires bin n’existaient pas réellement. Je pense que c’est juste un bug RVM.

Comme solution rapide, j’ai copié manuellement le fichier binary du bundle dans un répertoire bin RVM existant. Cela semble avoir résolu mon problème:

 $ cd ~/.rvm $ cp gems/ruby-1.9.3-p0/gems/bundler-1.0.21/bin/bundle rubies/ruby-1.9.3-p0/bin/ 

Les versions Ruby et Bundler dans ces chemins seront probablement différentes pour vous.


La solution ci-dessus fonctionne mais elle me gênait, alors je l’ai posée aux gars de la RVM; il s’avère que mon fichier ~ / .gemrc a remplacé l’emplacement de la gemme avec cette ligne:

 - "gem" => "-n/usr/local/bin" 

En le supprimant, je l’ai réparé. Voir ici pour le sujet complet: https://github.com/wayneeseguin/rvm/issues/1043#issuecomment-7336267

J’ai eu un problème similaire et la réponse (au moins pour moi) était extrêmement simple après beaucoup d’essais et d’erreurs.

C’est certainement un problème de chemin, et la mention de l’ordre de parcours par @ gamecreature était pour moi un indice crucial.

Je ne sais pas comment c’est arrivé, mais j’ai eu $HOME/.rvm/bin comme premier élément de mon exportation PATH.

Cela n’est pas nécessaire car ce répertoire est ajouté au chemin dans le bon ordre via la création du fichier rvm.

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

Donc, mon correctif était juste de supprimer $HOME/.rvm/bin de mon exportation PATH.

Si vous disposez de plusieurs fichiers init (.bashrc, .bash_profile, .profile), veillez à suivre les conseils de la page de dépannage rvm :

assurez-vous que la source du fichier rvm se trouve en dernier dans vos fichiers de profil (.bash_profile / .bashrc / .zshrc) essentiellement après toute personnalisation de PATH / fonctions ou d’alias.

Mais je vous recommande également de vérifier le rest de votre définition PATH pour vous assurer qu’il n’ya pas de doublons déclarés prioritaires.

J’ai eu un problème similaire. Il s’est avéré que je n’avais pas de fichier .rvmrc spécifique au projet. Je viens de le créer en utilisant

 rvm --rvmrc --create 1.9.3@my_project_name 

Dans mon projet dir

Cela a résolu le problème

Si vous arriviez au fond des choses et que vous vous cogniez toujours la tête contre le mur …

Mon problème était que rvm install 1.8.7 échouait tard dans l’installation mais semblait avoir réussi (j’ai eu ruby ​​1.8.7 et pouvait créer des gemsets)

Mais il semble que $GEM_HOME soit placé tard dans le script d’installation et que cela n’a pas été défini, rvm ne cherchait pas le bon endroit pour les gems.

J’ai couru rvm reinstall 1.8.7 et rvm reinstall 1.8.7 regardé soigneusement pour des erreurs.

Ce qui m’a fait penser à cela: https://groups.google.com/d/topic/rubyversionmanager/aUBDxbBzZpE/discussion

Vous pouvez vérifier si c’est votre problème en exécutant

echo $GEM_HOME ou gem env ou vérifiez votre journal d’installation rvm (voir le lien ci-dessus)

Voyez-vous votre version ruby ​​et votre nom de gemset dans votre Gem Path? Sinon, l’installation de rvm a peut-être échoué.

Je ne sais pas si c’est la cause de votre problème. Mais j’ai eu un problème similaire. La raison était que mon environnement RVM n’était pas correct.

J’avais 2 utilisateurs, un qui en travaillait un qui ne fonctionnait pas. L’utilisateur actif a utilisé le script de bundle suivant. (sortie de: quel bundle)

/home/rvm/.rvm/gems/ruby-1.9.3-p0/bin/bundle

Le mauvais utilisateur de rvm-installation utilisé:

/home/user/.rvm/bin/bundle

La raison en est le mauvais ordre $ PATH. Le chemin d’access .rvm / gems / ruby ​​-… / bin doit être placé avant le chemin d’access ./rvm/bin.

Dans ma situation, la cause était que je définissais la variable $ PATH à un autre utilisateur. J’ai corrigé le problème en ajoutant un lien symbolique au RVM de l’utilisateur et en changeant mon chemin depuis:

/home/rvm/.rvm/bin

à

/home/user/.rvm/bin

Lorsque le code ci-dessus ne fonctionne pas pour vous, vous pouvez ajuster manuellement le chemin juste après le chargement de rvm.

Essayez ceci: https://rvm.io/integration/gnome-terminal/

Il est dit à propos des profils exécutés au démarrage, je lance Ubuntu 12.10 et ça marche. La seule chose à faire est de définir “Exécuter la commande en tant que shell de connexion” dans les préférences du profil du terminal (titre et commande).

J’espère que ça fait gagner du temps à quelqu’un.

Cela m’est également arrivé après avoir basculé vers un nouveau gemset vide et lancé un gem install bundler . La cause est que le shell “se souvient” du dernier exécutable de bundle vous avez utilisé. Pour corriger cela (au moins dans bash -descendants):

 hash -r 

Vous savez quoi, c’est évidemment le problème de votre variable PATH.

Vous devez vous assurer que which bundle ressemble à /usr/local/rvm/gems/ruby-1.9.3-p194/bin/bundle au lieu de quelque chose comme /usr/local/rvm/bin/bundle .

allusion:

Avez-vous simplement utilisé PATH = une liste explicite dans votre fichier .zshrc?

Ensuite, vous devriez changer cela en PATH = $ PATH: une liste

Après avoir installé RVM sur plusieurs machines avec la même configuration et ayant des problèmes avec RVM sur un mais sans avoir ces problèmes sur un autre, j’ai décidé de chercher quelque chose de mieux, moins sujet aux erreurs.

J’ai trouvé et changé pour rbenv , ce qui est beaucoup plus simpliste que RVM.

Et comme l’indique le README de rbenv:

rbenv fait…

  • Laissez-vous changer la version globale de Ruby pour chaque utilisateur.
  • Fournir un support pour les versions Ruby par projet .
  • Permet de remplacer la version Ruby par une variable d’environnement.

Contrairement à rvm, rbenv ne fait pas…

  • Besoin d’être chargé dans votre shell. Au lieu de cela, l’approche de shben de rbenv fonctionne en ajoutant un répertoire à votre $ PATH.
  • Remplacez les commandes shell comme cd. C’est dangereux et sujet aux erreurs.
  • Avoir un fichier de configuration. Il n’y a rien à configurer, sauf la version de Ruby que vous souhaitez utiliser.
  • Installez Ruby. Vous pouvez créer et installer Ruby vous-même, ou utiliser ruby-build pour automatiser le processus.
  • Gérer les gemsets. Bundler est un meilleur moyen de gérer les dépendances des applications. Si vous avez des projets qui n’utilisent pas encore Bundler, vous pouvez installer le plug- in rbenv-gemset .
  • Exiger des modifications aux bibliothèques Ruby pour la compatibilité. La simplicité de rbenv signifie que tant qu’il est dans votre $ PATH, rien d’autre n’a besoin d’être connu.
  • Vous invite à envoyer des avertissements lorsque vous passez à un projet. Au lieu d’exécuter du code arbitraire, rbenv ne lit que le nom de la version de chaque projet. Il n’y a rien à “faire confiance”.

Donc, si vous me demandez, vider RVM et passer à rbenv.

J’ai installé ruby ​​1.9.3 par rvm. Après avoir terminé git octopress, éditez simplement $ path_of_git / .rvmrc comme ceci “rvm use 1.9.3”. ET ALORS, exécutez la commande “cd ..; cd $ path_of_git”. Après cela, il vous demandera de faire confiance à .rvmrc ou non. Tapez «y» pour que le fichier .rvmrc fonctionne.

J’ai eu un problème très similaire pour une raison légèrement différente. Mon répertoire personnel .gemrc un fichier .gemrc provenant d’une ancienne installation .gemrc , et je l’avais oublié lors de la suppression des anciens fichiers. Il semble que gem confondait les parameters rvm avec les parameters de ce fichier. Une fois que je l’ai retiré (et certains fichiers installés sur l’ancien site), tout s’est bien passé.

J’ai rencontré le même problème plus tôt aujourd’hui. L’approche que j’ai utilisée pour résoudre le problème était la suivante:

1) courir

 cap shell 

sur la même machine, vous lanceriez normalement la fonction de déploiement de la casquette. Ensuite, exécutez

 env | sort 

Cela exécute la commande sur le serveur distant. Copiez et collez la sortie dans un fichier texte local, par exemple capenv.txt

2) SSH sur le même serveur distant, et faites la même commande, à savoir env | Trier. Enregistrez ceci localement sous forme de fichier texte, par exemple sshenv.txt

3) Diffusez les deux fichiers et voyez ce qu’il y a dans sshenv.txt qui n’est pas dans capenv.txt – c’est probablement là que réside votre problème.

 < ++CAP ++ < _=/bin/sh --- > ++ SSH ++ > __array_start=0 14a15 > PS1=\[\e]2;tracker@charlotte\a\e[0;31m LIVE:\u@\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) J’ai immédiatement remarqué que l’interpréteur de shell n’était pas défini sur bash. Cela peut être corrigé en ajoutant

 set :shell, '/usr/bin/bash' 

à votre fichier deploy.rb. Cela a résolu mon problème

Cela fonctionne pour moi quand je spécifie la version de Ruby que je veux utiliser:

 $ rvm use 1.9.2-p290 Using /Users/myname/.rvm/gems/ruby-1.9.2-p290 

J’ai moi-même rencontré ce problème après avoir mis à jour mon niveau de patch Ruby. J’ai couru which gem et découvert qu’il utilisait une version globale de rubygems, dans ce cas le chemin était ~/.rvm/bin/gem . J’ai donc lancé rvm rubygems current , qui l’a installé dans ~/.rvm/rubies/ruby-1.8.7-p370/bin/gem . Ran gem install bundler et bundle . Problème résolu.

J’avais le même problème lorsque j’avais un fichier .rvmrc vide dans le répertoire vers lequel je suis passé (rvm 1.15.1). Evidemment, il y a beaucoup de causes à cette erreur

Ran dans le même problème (où j’ai continué à installer le bundler et rvm ne le reconnaîtra pas) sur un de mes ordinateurs portables. Je devinais que j’aurais peut-être mal installé le RVM alors que j’étais encore un noob des rails. J’ai essayé la solution ci-dessus mais cela n’a pas fonctionné pour moi. Après avoir joué avec, j’ai abandonné et enlevé le RVM et l’ai réinstallé. Je pensais que c’était dû à un problème de configuration bizarre nested quelque part ou. Voici les étapes que j’ai sockets:

Supprimer RVM:

 rvm implode 

Installez à nouveau RVM:

 curl -L https://get.rvm.io | bash -s stable --rails rvm reload 

Comme je travaille sur un ancien projet de rails pour le travail, j’ai dû installer ree-1.8.7-2012.02

 rvm install ree-1.8.7-2012.02 

Bien sûr, la loi de Murphy s’applique toujours. J’ai rencontré un autre problème où mon ordinateur portable ne pouvait pas trouver un compilateur C non cassé, même si Xcode est installé avec gcc. Mes dernières étapes ont été d’aller sur https://github.com/kennethreitz/osx-gcc-installer et d’installer leur paquet et de réinstaller ree.

J’espère que cette solution de dernier recours aide quelqu’un. Bonne chance!

Pour ma configuration, en ajoutant l’utilisateur fonctionnant avec Apache au groupe RVM

 usermod -a -G rvm www-data 

J’ai eu ce problème également. J’ai corrigé mon problème en spécifiant un gemset.

 $ 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!}