Erro “Não foi possível encontrar o bundler”

107

Quando tento fazer bundler update, recebo este erro:

.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in
`to_specs': Could not find bundler (>= 0) amongst
[rake-0.8.7, rake-0.8.7, rubygems-update-1.8.4] (Gem::LoadError)

Sou novo em Ruby, alguém pode me dizer o que poderia causar isso? Rake 0.8.7 está instalado.

Steven
fonte
1
0 voto negativo Está dizendo que você não tem o bundler instalado. Se você executar uma 'lista de gemas b', você vê o bundler?
Jake Dempsey

Respostas:

214

Certifique-se de inserir a atualização "bundle", se tiver o bundler gem instalado.

bundle update

Se você não tem bundler instalado, faça gem install bundler.

Ardavis
fonte
se você criar um novo applocation - rails novo e se você receber este erro?
AMIC MING
2
Faça um gem list bundlere veja se aparece. Se não tiver, você precisará instalá-lo conforme listado em minha resposta.
ardavis
10
Isso aconteceu comigo depois de instalar uma nova versão do ruby ​​usando o rvm. Então eu tive que correr gem install bundlernovamente
NRR
61

Eu tive esse problema, então eu fiz:

gem install bundle

observe que "bundle" e não "bundler" resolveu meu problema.

em seguida, na pasta do projeto:

bundle install

e então você pode executar seu projeto usando:

script/rails server
Dorian
fonte
pacote de instalação do gem - isso funcionou para mim também.
Don Cote
10
Observe que a gema "bundle" é simplesmente uma gema que declara "bundler" como uma dependência, o que essencialmente corrige seu erro de digitação. github.com/will/bundle/blob/…
sealocal
13

Eu tive o mesmo problema. Isso funcionou para mim:

  1. execute rvm / script / rvm e também adicione-o ao seu .profile ou .bash_profile conforme mostrado em https://rvm.io/rvm/install/

  2. usar pacote sem sudo

bjelli
fonte
8

O comando é bundle update(não há "r" no "pacote").

Para verificar se o bundler está instalado, faça: gem list bundlerou even which bundlee o comando listará a versão do bundler ou o caminho para ele. Se nada for mostrado, instale o bundler digitando gem install bundler.

Zabba
fonte
7

Eu tive o mesmo problema .. algo aconteceu ao meu perfil do bash que não estava configurando o material RVM corretamente.

Certifique-se de que seu perfil bash tenha a seguinte linha:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

Então eu executei "source ~ / .bash_profile" e isso recarregou tudo que estava em meu perfil bash.

Isso pareceu consertar para mim.

Brian Vitrue
fonte
Obrigado por isso. Embora eu soubesse soletrar "bundle" vs "bundler", tinha esquecido completamente que reinstalei o zsh e, no processo, acidentalmente destruí esta linha do meu .zshrc.
Estava
Essa resposta é antiga, mas para mim tem sido a solução!
jonnyjava.net
Certifique-se de que esta seja a ÚLTIMA linha em seu arquivo de perfil
rmcsharry
6

De acordo com esta resposta a uma pergunta semelhante, deve ser suficiente:

rvmsudo gem install bundler.

Felicidades

Andrew Khouzam
fonte
4

Você pode ter que fazer algo como "rvm use 1.9.2" primeiro para usar o rubi e o conjunto de joias corretos. Você pode verificar qual rubi você está usando fazendo "qual rubi"

mgauthier
fonte
2

Eu consegui isso depois de atualizar para o ruby ​​2.1.0. Meu PATHfoi definido em meu script de login para incluir .gem/ruby/2.0.0/bin. Atualizar o número da versão corrigiu isso.

Thomas Leonard
fonte
2

O sistema pode estar executando "sem raiz". Tente definir a variável boot-args do firmware nvram como "rootless = 0". Tente executar um conjunto de comandos:

sudo nvram boot-args="rootless=0"; 
sudo reboot

Depois que a reinicialização for concluída, execute:

sudo gem install bundler
Bogdan Ustyak
fonte
2

Se você estiver usando, o rbenvexecutar rbenv rehashpode resolver isso após a instalação bundlere ainda está tendo o problema.

Eebbesen
fonte
1

Para qualquer pessoa que tenha esse problema com o Capistrano: capistrano não consegue localizar o bundler. A razão pode ser que você instalou o bundler em algum outro lugar gemsetonde o Capistrano nem está olhando.

  1. Liste seus conjuntos de joias.

lista de conjuntos de gems de rvm

  1. Use um conjunto de joias específico.

rvm usar 'my_get_set'

  1. Instale o bundler nesse conjunto de gemas.

pacote de instalação de gem

Em seguida, tente novamente com a tarefa de implantação.

Nervo
fonte
0

No meu caso, acredito que tinha um Ruby antigo remanescente no sistema, não registrado no rvm, e mesmo que as variáveis ​​de caminho e a lista de gem estivessem ok, ele ainda usaria o Ruby antigo durante as implantações com Capistrano

E então percebi que o Ruby que instalei com o rvm não estava configurado para o padrão. Corrida

rvm alias create default <rvm_registered_ruby>

Corrigido.

Cyril Duchon-Doris
fonte
0

Por precaução, tive um erro semelhante com o bundler 2.1.2 e resolvi com:

sudo gem install bundler -v 1.17.3

Se você tiver várias versões do bundler instaladas, poderá executar uma versão específica do bundle desta forma: bundle _1.17.3_ exec rspec

Embora pareça que as versões posteriores do bundler apresentam muitos bugs (tiveram problemas em 3 projetos diferentes em 2 sistemas operacionais), ter um bundler antigo pode funcionar melhor, pelo menos é o que tenho no meu Ubuntu e MacOS

Daniel Garmoshka
fonte