Empacotador: comando não encontrado


141

Estou hospedando em um vps, ubuntu 10.04, rails 3, ruby ​​e mysql instalados corretamente, seguindo alguns tutoriais. Se eu executar bundle checkou bundle installreceber o erro '-bash: bundle: command not found'. Pelo gem list --localque vejo, o 'bundler (1.0.2, 1.0.0)' está instalado.

Eu não sei o que está errado ...

gem environment retorna:

 RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.8.7 (2010-04-19 patchlevel 253) [i686-linux]
  - INSTALLATION DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby
  - EXECUTABLE DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
     - /root/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

e echo $PATHretorna:

/opt/myruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/gem:/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/:/root/.gem/ruby/1.8

e which gemretorna:

/usr/bin/gem

locate bundle retorna:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/

7
você instalou o bundler?
shingara 12/10/10

Respostas:


87

Você precisa adicionar o diretório executável do ruby ​​gem ao seu caminho

export PATH=$PATH:/opt/ruby-enterprise-1.8.7-2010.02/bin

14
No uBuntu 11.04, o caminho do comando mais recente agora é exportar PATH = $ PATH: /var/lib/gems/1.8/bin #
Antony

Atualização: no ubuntu 11.04, parece que o caminho é irrelevante, porque enquanto queremos usar o RubyGem mais recente, precisamos instalar o RVM e instalar a versão desejada do Ruby.
Antony

Antônio que trabalhou para mim e enviei uma atualização para a resposta principal.
Michael Durrant

5
For Arch Linux, use export PATH = $ PATH: ~ / .gem / ruby / 2.0.0 / bin (ajustar para a sua versão do Ruby)
Kostas Maragos

Para uso em rvm export /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHou ENV PATH /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHcom o Docker.
crizCraig

199

Meu problema foi que eu fiz:

sudo gem install bundler

Então eu tinha instalado como root e não como eu. Desinstalei como root e instalei como eu:

sudo gem uninstall bundler
gem install bundler
rbenv rehash

(último comando para se você estiver usando rbenv)

E funcionou. O caminho "correcto" foi em .bashrc(ou outro perfil casca), pelo menos de acordo com a

$PATH
=> zsh: /Users/myself/.rbenv/shims:/Users/myself/.rbenv/bin: ... etc

mas esperava que fosse instalado por mim - não pelo root. No meu caso, seu local de instalação legítimo está em~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler


3
O rbenv é uma alternativa ao RVM. Ele gerencia todas as suas diferentes versões de rubi. Quando você instala uma gema, gem installela é instalada juntamente com a versão atualmente usada do ruby, que você pode ver quando instala rbenv versions(ela deve ser marcada com um *). Quando você instala a gema do empacotador, pode bundle installgemas que permitem instalar gemas por projeto. As jóias que você costuma gem installusar são coisas como bundler e zeus. Quando você gem install, você precisa correr rbenv rehashdepois. É assim que é.
Xxjjnn

Eu tive esse problema no Windows. Tocou gem install bundlere está tudo bem agora.
Dan Atkinson

25

... também para Debian GNU / Linux 6.0 :)

export PATH=$PATH:/var/lib/gems/1.8/bin

Não funcionou para mim, alguma sugestão? - GEM PATHS: - /var/lib/gems/1.8 - /kunden/homepages/11/dxxxxxx/htdocs/.gem/ruby/1.8 echo $ PATH ~ / .composer / vendor / bin: / usr / local / bin: / usr / bin: / usr / X11R6 / bin: / bin: / usr / local / ms: /kunden/homepages/11/d3xxxxxx/htdocs/.rvm/bin: /var/lib/gems/1.8/bin: / var / lib / gemas / 1,8 / bin
Juan

15

Eu fiz isso (Ubuntu mais recente em março de 2013 [eu acho :)]):

sudo gem install bundler

O crédito é para Ray Baxter .

Se você precisar de gem, instalei o Ruby dessa maneira (embora isso seja tributar cronicamente):

mkdir /tmp/ruby && cd /tmp/ruby
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz
tar xfvz ruby-1.9.3-p327.tar.gz
cd ruby-1.9.3-p327
./configure
make
sudo make install

3

Estou executando o ubuntu 11.10 e o executável do pacote estava localizado em:

/var/lib/gems/1.8/bin

3

Minha solução foi garantir que eu selecionasse uma versão do Ruby para esse repositório.

Exemplo: chruby 2.2.2ourvm use 2.2.2

λ bundle install
zsh: command not found: bundle

λ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

### Notice the system Ruby version isn't included in chruby

λ chruby
  ruby-1.9.3-p551
  ruby-2.1.2
  ruby-2.2.1

### Select a version via your version manager

λ chruby 1.9.3

### Ensure your version manager properly selects a version (*)

λ chruby
 * ruby-1.9.3-p551
   ruby-2.1.2
   ruby-2.2.1

λ bundle install
Fetching gem metadata from https://rubygems.org/.........

3

Provavelmente, o caminho à prova de distro está adicionando isso ao seu .bashrc ou .zshrc, qualquer que seja o seu shell:

PATH="$(ruby -e 'print Gem.default_dir')/bin:$PATH"

ou se você instalou suas gems em todo o usuário, use:

PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

2

Para usuários rbenv:

$ rbenv versions
2.6.0
$ rbenv global 2.6.0
$ ruby -v
ruby 2.6.0p0
$ gem install bundler
$ rbenv rehash
$ bundle
$ rails -v
Command 'rails' not found
$ rbenv rehash
$ rails -v
Rails 4.2.11.1

1

Certifique-se de fazer isso rbenv rehashao instalar rubis diferentes


1

Etapa 1: verifique se você está no caminho da área de trabalho real. Por exemplo, área de trabalho / blog $: Etapa2: digite o comando: gem install bundler. Etapa 3: você deve estar pronto para instalar ou atualizar o pacote até o momento


1

Na minha instalação do Arch Linux, as gemas foram instaladas no ~/.gem/ruby/2.6.0/bindiretório se instaladas como usuário ou /root/.gem/ruby/2.6.0/bininstaladas via sudo. Basta anexar o apropriado à sua $PATHvariável de ambiente:

export PATH=$PATH:/home/your_username/.gem/ruby/2.6.0/bin

0

Acho executável pacote está em:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin e não está no seu $ PATH


0

Você também pode criar um link simbólico:

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundle

ln -s /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin/bundle /usr/bin/bundledeve ser isso com um extra que bundlevocê deseja criar um link sym para agrupar ao invés de todo o diretório bin?
Ashish Singh

0

Eu tive exatamente o mesmo problema e consegui resolvê-lo executando

rbenv rehash

Depois disso bundlefuncionou como esperado. Ao dar uma olhada na entrada wiki do rbenv, ele menciona que o rehash deve ser executado quando uma gema instalada fornecer comandos.

Instala shims para todos os executáveis ​​do Ruby conhecidos por rbenv (ou seja, ~ / .rbenv / version / / bin / ). Execute este comando após instalar uma nova versão do Ruby ou instalar uma gema que fornece comandos.

Aparentemente, isso é tão irritante que algumas pessoas escreveram uma gema para garantir que você nunca mais precise correr rehashnovamente. rbenv-gem-rehash


0

Eu recebi esse erro rbenv: bundle: command not founddepois de clonar um projeto antigo de trilhos que eu havia construído alguns meses atrás. Aqui está como eu fiz isso: Para instalar uma versão específica do empacotador ou apenas execute o seguinte comando para instalar o empacotador disponível mais recente:

corre gem install bundler

instalei a versão exata do empacotador que eu queria com este comando:

$ gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1)"

[consulte este artigo para obter mais detalhes] ( https://www.aloucaslabs.com/miniposts/rbenv-bundle-command-not-found#:~:text=When%20you%20get%20get%20rbenv,to%20install% 20the% 20Bundler% 20gem, consulte este artigo para obter mais detalhes

faça com que o listen funcione emitindo este comando

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.