Bundler: команда не найдена


142

Я размещаю на vps, ubuntu 10.04, rails 3, ruby ​​и mysql, правильно установленных, следуя некоторым руководствам. Если я запускаю bundle checkили bundle installполучаю сообщение об ошибке «-bash: bundle: command not found». Как gem list --localя вижу, установлен пакет "bundler (1.0.2, 1.0.0)".

Я не знаю, что не так ...

gem environment возвращает:

 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/

и echo $PATHвозвращает:

/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

и which gemвозвращает:

/usr/bin/gem

locate bundle возвращает:

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

7
вы установили бандлер?
shingara

Ответы:


88

Вам нужно добавить исполняемый каталог ruby ​​gem к своему пути

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

15
В uBuntu 11.04 последний путь к команде теперь экспортируется PATH = $ PATH: /var/lib/gems/1.8/bin
Энтони

Обновление: в ubuntu 11.04 путь кажется несущественным, потому что, пока мы хотим использовать последнюю версию RubyGem, нам просто нужно установить RVM и установить желаемую версию Ruby.
Antony

Антоний, который работал у меня, и я отправил обновление основного ответа.
Майкл Даррант,

5
Для Arch Linux используйте экспорт PATH = $ PATH: ~ / .gem / ruby ​​/ 2.0.0 / bin (настройте для вашей версии Ruby)
Костас Марагос,

Для использования с rvm export /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHили ENV PATH /usr/local/rvm/gems/ruby-1.9.3-p448/bin:$PATHс Docker.
crizCraig 06

202

Моя проблема заключалась в том, что я сделал:

sudo gem install bundler

Поэтому я установил как root, а не как я. Итак, я удалил как root, а затем установил как себя:

sudo gem uninstall bundler
gem install bundler
rbenv rehash

(последняя команда, если вы используете rbenv)

И это сработало. "Правильный" путь был в .bashrc(или другом профиле оболочки), по крайней мере, согласно

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

но он ожидал, что он будет установлен для меня, а не для root. В моем случае его законное место установки находится в~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/bundler


3
rbenv - альтернатива RVM. Он управляет всеми вашими различными рубиновыми версиями. Когда вы устанавливаете гем, gem installон устанавливает его вместе с используемой в данный момент версией ruby, которую вы можете видеть, когда делаете это rbenv versions(она должна быть отмечена знаком *). Когда вы устанавливаете гем-сборщик, вы можете получить bundle installгемы, которые позволят вам устанавливать драгоценные камни для каждого проекта. Самоцветы, к которым вы склонны, gem install- это такие вещи, как bundler и zeus. Когда ты gem install, тебе нужно rbenv rehashпотом бежать . Просто так оно и есть.
xxjjnn 01

У меня была эта проблема в Windows. Позвонил, gem install bundlerи теперь все в порядке.
Дэн Аткинсон

25

... также для Debian GNU / Linux 6.0 :)

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

У меня не сработало, есть предложения? - ПУТИ GEM: - /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 / gems / 1.8 / bin
Хуан,

15

Я сделал это (последняя версия Ubuntu по состоянию на март 2013 года [я думаю :)]):

sudo gem install bundler

Кредит принадлежит Рэю Бакстеру .

Если вам нужен гем, я установил Ruby следующим образом (хотя это хронически обременительно):

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

4

Вероятно, защищенный от дистрибутива путь добавляет это в ваш .bashrc или .zshrc, независимо от вашей оболочки:

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

или если вы установили свои драгоценные камни для всего пользователя, используйте:

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


3

Мое решение заключалось в том, чтобы убедиться, что я выбрал версию Ruby для этого репо.

Пример: chruby 2.2.2илиrvm 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/.........

2

Для пользователей 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

Убедитесь, что вы делаете это rbenv rehashпри установке разных рубинов


1

Шаг 1: Убедитесь, что вы находитесь на пути к фактическому рабочему пространству. Например, рабочее пространство / блог $: Шаг 2: Введите команду: gem install bundler. Шаг 3. К настоящему моменту вы должны быть готовы к пакетной установке или пакетному обновлению


1

В моей установке Arch Linux драгоценные камни были установлены в ~/.gem/ruby/2.6.0/binкаталог, если они были установлены как пользователь или /root/.gem/ruby/2.6.0/binесли были установлены через sudo. Просто добавьте соответствующую $PATHпеременную в свою переменную среды:

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

0

Я думаю, что исполняемый файл пакета включен:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/bin и это не в вашем $ PATH


0

Вы также можете создать символическую ссылку:

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/bundleэто должно быть с дополнительным, bundleвы хотите создать символьную ссылку на пакет, а не на весь каталог bin?
Ашиш Сингх

0

У меня была такая же проблема, и я смог ее решить, запустив

rbenv rehash

После этого bundleзаработало как положено. При просмотре вики-записи rbenv в ней упоминается, что повторное хеширование следует запускать, когда установленный гем предоставляет команды.

Устанавливает оболочки для всех исполняемых файлов Ruby, известных rbenv (например, ~ / .rbenv / versions / / bin / ). Выполните эту команду после установки новой версии Ruby или гема, который предоставляет команды.

По-видимому, это настолько раздражает, что некоторые люди написали драгоценный камень, чтобы никогда не запускать его rehashснова. rbenv-gem-rehash


0

Я получил эту ошибку rbenv: bundle: command not foundпосле клонирования старого проекта рельсов, который я построил пару месяцев назад. Вот как я это сделал: чтобы установить определенную версию сборщика или просто выполните следующую команду, чтобы установить последний доступный сборщик:

бегать gem install bundler

затем я установил точную версию сборщика, которую хотел, с помощью этой команды:

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

[подробнее см. в этой статье] ( https://www.aloucaslabs.com/miniposts/rbenv-bundle-command-not-found#:~:text=When%20you%20get%20the%20rbenv,to%20install% 20the% 20Bundler% 20gem подробнее см. В этой статье

заставить прослушивание работать, введя эту команду

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.