web-dev-qa-db-fra.com

Le paquet ne fonctionne pas avec rbenv

J'essaie d'utiliser bundler avec Rbenv. J'ai travaillé jusqu'à aujourd'hui. La seule chose que j'ai pu faire pour le casser était gem pristine --all ou gem cleanup? En essayant d'installer bundler, j'obtiens l'erreur suivante.

Antarrs-MacBook-Pro:some-app antarrbyrd$ Sudo gem install bundler
Password:
Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?
Successfully installed bundler-1.7.12
Parsing documentation for bundler-1.7.12
Done installing documentation for bundler after 3 seconds
1 gem installed
Antarrs-MacBook-Pro:some-app antarrbyrd$ bundle install
/Users/antarrbyrd/.rbenv/versions/2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 8 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/antarrbyrd/.gem', execute `gem env` for more information
    from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/dependency.rb:324:in `to_spec'
    from /Users/antarrbyrd/.rbenv/versions/2.1.2/lib/Ruby/site_Ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
    from /usr/local/bin/bundle:22:in `<main>'

quand je fais rbenv rehash ou rbenv bundler on il obtient cette erreur

Bundler gave the error "Could not find mail-2.5.4 in any of the sources" while processing "/Users/antarrbyrd/dev/some-app/Gemfile". Perhaps you forgot to run "bundle install"?

~/.bash_profile

export BUNDLER_EDITOR=atom
export PATH=$PATH:/usr/local/opt/Android-sdk/build-tools/21.1.2
export HOMEBREW_GITHUB_API_TOKEN=...

export Android_HOME=/usr/local/opt/Android-sdk
export PATH="$HOME/.rbenv/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

# Allow local Gem Managment 
# export GEM_HOME="$HOME/.gem"
# export GEM_PATH="$HOME/.gem"
# export PATH="$HOME/.gem/bin:$PATH"

gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - Ruby VERSION: 2.1.2 (2014-05-08 patchlevel 95) [x86_64-darwin14.0]
  - INSTALLATION DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0
  - Ruby EXECUTABLE: /usr/local/var/rbenv/versions/2.1.2/bin/Ruby
  - EXECUTABLE DIRECTORY: /usr/local/var/rbenv/versions/2.1.2/bin
  - SPEC CACHE DIRECTORY: /Users/antarrbyrd/.gem/specs
  - RUBYGEMS PLATFORMS:
    - Ruby
    - x86_64-darwin-14
  - GEM PATHS:
     - /usr/local/var/rbenv/versions/2.1.2/lib/Ruby/gems/2.1.0
     - /Users/antarrbyrd/.gem/Ruby/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "-n/usr/local/bin"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - Shell PATH:
     - /usr/local/var/rbenv/versions/2.1.2/bin
     - /usr/local/Cellar/rbenv/0.4.0/libexec
     - /Users/antarrbyrd/.gem/bin
     - /usr/local/var/rbenv/shims
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/var/rbenv/shims
     - /Users/antarrbyrd/.rbenv/bin
     - /Users/antarrbyrd/.rbenv/shims
     - /Users/antarrbyrd/.gem/bin
     - /usr/local/opt/Android-sdk/build-tools/21.1.2

mettre à jour

J'ai réinstallé rbenv via breuvage et le message d'erreur suivant s'affiche lors de l'exécution de l'installation groupée.

The `bundle' command exists in these Ruby versions:
  2.1.5

réponse à Joel

Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v Ruby
/usr/local/var/rbenv/shims/Ruby
Antarrs-MacBook-Pro:myapp antarrbyrd$ command -v bundle
/usr/local/bin/bundle
Antarrs-MacBook-Pro:myapp antarrbyrd$ Ruby -v
Ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]
Antarrs-MacBook-Pro:myapp antarrbyrd$ bundle -v
Bundler version 1.7.12
Antarrs-MacBook-Pro:myapp antarrbyrd$ 
34
Antarr Byrd

Votre installation est prise dans une boucle.

Basculez vers un répertoire qui n'est pas votre application et qui n'a pas de fichier Gemfile.

Puis faites les habituelles gem install bundle _ (et utilisez Sudo si vous en avez besoin)

Ensuite, accédez au répertoire de votre application et procédez comme d'habitude bundle install.

Cela résout-il votre problème?

Si vous avez besoin d’aide supplémentaire, pouvez-vous exécuter ces commandes puis coller les résultats dans votre question?

 $ command -v Ruby
 $ command -v bundle
 $ Ruby -v
 $ bundle -v

Recherchez tout décalage entre les résultats et vos attentes. Cela vous aidera à localiser ce qui se passe. Vous devrez peut-être mettre à jour votre Gemfile Ruby version.

(En outre, vous voudrez peut-être envisager de passer de rbenv à chruby car il vaut mieux, à mon humble avis, avec ce type de problèmes de chemin)

73
joelparkerhenderson

J'ai eu:

rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.3.0

après la mise à niveau vers Ruby 2.3.1

et c'est résolu par:

gem install Rails

du dossier de travail

38
ChaosPredictor

gem Installer Bundler

Vous devez réinstaller bundler pour chaque version de Ruby que vous utilisez.

Référence: numéro de github

18
Vbp

Essayez d'utiliser:

bin/paquet

au lieu de

paquet

5
Salma Gomaa

Voici ce qui a fonctionné pour moi avec un projet hérité:

  1. Définir la bonne version Ruby via rbenv

    $ cd YOUR_PROJECT_DIRECTORY
    $ rbenv install 2.1.0
    $ rbenv local 2.1.0
  1. Si vous rencontrez toujours une erreur lors de l'installation de bundle, recherchez un avertissement PATH:

    $ gem install bundle
    WARNING:  You don't have /Users/Lex/.gem/Ruby/2.1.0/bin in your PATH,
          gem executables will not run.
    Successfully installed bundle-0.0.1
    1 gem installed
  1. Mettez votre chemin à jour:

    $ PATH=/Users/Lex/.gem/Ruby/2.1.0/bin:$PATH
  1. Réessayer:

    $ bundle install
    Fetching: bundler-1.11.2.gem (100%)
    HTTP GET https://bundler.rubygems.org/api/v1/dependencies
    HTTP 200 OK
    Fetching gem metadata from https://rubygems.org/
    . . .

Utiliser Sudo pour installer des gems n’est généralement pas ce que vous voulez faire.

2
l3x

Essayez de régler Ruby globalement

rbenv global 2.3.1
2
Akshat Bajaj

Si aucune des solutions ne fonctionne pour vous, essayez ceci.

Pour une raison quelconque, je ne pouvais pas installer bundler sur des versions spécifiques de Ruby, la réinstallation de bundler n’a donc rien fait pour moi.

Cependant, j'ai remarqué comment rbenv whence bundle a spécifié que le bundle était actif dans certaines Ruby versions, mais pas dans d'autres. Si vous regardez sous le chemin d'accès à la gem sans bundler (pour moi, c'était ~/.rbenv/versions/2.5.1/bin/) vous remarquerez que ce n’est pas là. Cependant, sous d’autres versions, vous pouvez voir que l’exécutable est là (pour moi, c’est là sous ~/.rbenv/versions/2.3.1/bin/bundle).

Copiez simplement l'exécutable de la version de travail Ruby) vers celle qui est cassée. Puis, en haut du fichier, vous remarquerez que sha-bang est défini sur l'autre Ruby version (pour moi c'était #!/Users/myuser/.rbenv/versions/2.3.1/bin/Ruby). Changez le chemin de la version en Ruby que vous voulez corriger) et tout commencera comme par magie.

1
Alex Cohen

J'ai un problème similaire aujourd'hui. Mon problème a été résolu comme suit:

system dependencies
- rvenv
- Ruby 2.5.0
- Rails 5.1.6
BUNDLED WITH
  1.17.3
$ gem install bundler -v 1.17.3
Fetching bundler-1.17.3.gem
Successfully installed bundler-1.17.3
Parsing documentation for bundler-1.17.3
Done installing documentation for bundler after 3 seconds
1 gem installed

J'espère que cela aidera quelqu'un.

1
mnishiguchi

J'ai eu un problème similaire en cours d'exécution de garde avec Foreman. Ma commande d'origine pour l'exécuter était:

bundle exec foreman run guard -c

Cela m'a donné ces erreurs:

11:07:52 - INFO - Run all
11:07:52 - INFO - Running all specs
/Users/MyUser/.rbenv/versions/2.2.0/lib/Ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 146 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/MyUser/devel/o2/Vesta/vendor/bundle/Ruby/2.2.0', execute `gem env` for more information
        from /Users/MyUser/.rbenv/versions/2.2.0/lib/Ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
        from /Users/MyUser/.rbenv/versions/2.2.0/lib/Ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
        from /Users/MyUser/.rbenv/versions/2.2.0/bin/bundle:22:in `<main>'

La solution simple était de ne pas utiliser bundle exec avec contremaître mais à l’utiliser contre garde. par exemple.

foreman run bundle exec guard -c

J'espère que cela t'aides.

0
emson