32 votes

ERROR : Gem bundler n'est pas installé, exécutez d'abord `gem install bundler`.

Bonjour, j'ai probablement essayé d'installer le paquet de gemmes Ruby. Je suis les instructions gem install bundle après avoir reçu ce message, mais cela ne fonctionne toujours pas quand je tape bundle -v . Je tape aussi

which bundle et recevoir

/Users/edmundmai/.rvm/bin/bundle

alors il existe ! ! Alors pourquoi ça ne marche pas ! ! Y a-t-il un problème avec le mystérieux $PATH que je ne comprends pas ? (Je suis un noob).

Voici mon .bash_profile :

PATH=$PATH:~/bin
export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

Voici mon .bashrc :

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

Voici ma gemme env :

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.24
- RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-darwin11.3.1]
- INSTALLATION DIRECTORY: /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd
- RUBY EXECUTABLE: /Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
- EXECUTABLE DIRECTORY: /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - x86_64-darwin-11
- GEM PATHS:
   - /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd
   - /Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@global
- GEM CONFIGURATION:
   - :update_sources => true
   - :verbose => true
   - :benchmark => false
   - :backtrace => false
   - :bulk_threshold => 1000
   - "install" => "--no-rdoc --no-ri"
   - "update" => "--no-rdoc --no-ri"
- REMOTE SOURCES:
   - http://rubygems.org/

echo $PATH

/Users/edmundmai/.rvm/bin:/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/bin:/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/edmundmai/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/edmundmai/bin:/Users/edmundmai/bin

UPDATE Après avoir essayé de suivre à nouveau le tutoriel sur les RdR, j'ai répété certaines des étapes décrites plus haut dans le chapitre dans l'un de mes deux terminaux Windows (appelons-les Terminal #1 et Terminal #2). Le Terminal #2 ne fonctionne toujours pas (la ligne de commande ne se trouve dans aucun répertoire, juste dans le répertoire par défaut) alors que le Terminal #1 (dans mon répertoire sample_app) fonctionne. Je pense que rvm get head && rvm reload pourrait être la clé ? Mais est-ce que ça veut dire que je dois exécuter ça à chaque fois que j'ouvre mon terminal ? Jetez un coup d'oeil à mes commandes du terminal #1 avant et après (j'ai supprimé une partie de la sortie pour que mes lignes d'entrée soient plus claires) :

Edmunds-MacBook-Pro:sample_app edmundmai$ bundle -v
ERROR: Gem bundler is not installed, run `gem install bundler` first.
Edmunds-MacBook-Pro:sample_app edmundmai$ gem install
ERROR:  While executing gem ... (Gem::CommandLineError)
Please specify at least one gem name (e.g. gem build GEMNAME)
Edmunds-MacBook-Pro:sample_app edmundmai$ rvm -v

rvm 1.15.8 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis     <mpapis@gmail.com> [https://rvm.io/]

Edmunds-MacBook-Pro:sample_app edmundmai$ rspec spec/
No DRb server is running. Running in local process instead ...
........

Finished in 0.36709 seconds
8 examples, 0 failures

Randomized with seed 59500

Edmunds-MacBook-Pro:sample_app edmundmai$ subl .
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle install --binstubs=./bundler_stubs
Using rake (0.9.2.2) 
...
...
(**list of stuff)
Using uglifier (1.2.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle show bundler
/Users/edmundmai/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/bundler-1.2.0

Je ne sais pas du tout à quoi sert le $PATH. Si vous avez besoin de plus d'informations, n'hésitez pas à m'en faire part et je vous les fournirai.

0 votes

Vous avez essayé gem install bundle mais avez-vous essayé gem install bundler ?

0 votes

@cjc343 : Le site bundle La pierre précieuse a bundler comme dépendance, ce qui a le même effet.

0 votes

@Edmund : Avez-vous lancé un nouveau terminal ou extrait votre bash_profile depuis que vous l'avez modifié ? Pouvez-vous coller la sortie de echo $PATH dans votre coquille ? Comment as-tu installé RVM ? Cela fait un moment que je ne l'ai pas utilisé, mais en général, c'est un copier/coller et une installation en cours.

86voto

jmdeldin Points 2932

Je pense que c'est le problème : vous avez installé Bundler sur un site spécifique. gemset C'est pourquoi il n'est disponible que lorsque vous êtes dans le répertoire de votre application (je suppose qu'il y a un fichier .rvmrc dans ce fichier).

Vous avez quelques options :

  1. Installer bundler à un gemset global. rvm gemset use global && gem install bundler
  2. Si vous avez installé Homebrew, il suffit de faire brew install ruby et éviter complètement la rvm. (Il y a aussi rbenv et ry comme alternatives à rvm, mais j'utilise juste la 1.9.3 pour toutes mes applications, donc Homebrew est bien).

Pour référence, $PATH est une variable d'environnement de l'interpréteur de commandes contenant une liste de répertoires contenant des exécutables (par ex, echo , ls , vim etc.). C'est intrinsèque aux coquillages.

1 votes

Merci pour la référence à $PATH. Je viens d'essayer le n°1 en ouvrant un nouveau terminal et ça a marché quand j'ai tapé bundle -v (Je n'ai pas essayé le homebrew, car il a fonctionné après le numéro 1). Vous êtes les meilleurs, merci pour toute votre aide !

1 votes

@Edmund : Content que ça ait marché ! Maintenant, la partie la plus difficile est terminée, et vous pouvez retourner à l'apprentissage de Rails :).

0 votes

Le réglage du bundler sur le gemset global a parfaitement fonctionné ! Merci beaucoup !

53voto

hammady Points 170

Parfois, il s'agit simplement d'un problème d'approvisionnement en rvm, car vous n'êtes pas dans un shell de connexion (en utilisant l'écran ?). Tapez

    source ~/.rvm/scripts/rvm

Et utiliser n'importe quelle commande de bundle.

0 votes

Cela m'a aidé mais je dois exécuter cette commande à chaque fois que j'ouvre une nouvelle fenêtre de terminal. Comment puis-je éviter cela ?

4 votes

Mettez cette ligne dans votre ~/.bashrc (si elle n'y est pas déjà).

4voto

jlucasps Points 134

Ajoutez la ligne suivante à ~/.bashrc archivo

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

puis rechargez le fichier :

$ source ~/.bashrc

1voto

devudilip Points 505

Moi aussi, j'ai eu le même problème,

Dans le serveur, rvm n'a pas été sélectionné comme valeur par défaut.

rvm use 1.9.3 --default

gem install bundler

a résolu mon problème

(Le problème ne se produit qu'en utilisant rvm)

0voto

Eric Brooke Points 44

Si vous utilisez rvm, créez un gemset séparé, qui sont des paquets de gemmes autonomes.

rvm use 1.9.3@myApplicationNameHere --create --default
  • myApplicationNameHere = changez ceci pour le nom de votre application
  • create = crée un gemset
  • default = signifie utiliser cette version de ruby et gemset par défaut

Voici le lien vers le site de la rvm et la section concernée https://rvm.io/gemsets/basics/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X