Пакет: Команда не знайдена


141

Я розміщую на vps, ubuntu 10.04, рейках 3, ruby ​​та mysql, встановлених правильно, дотримуючись деяких навчальних посібників. Якщо я запускаю bundle checkабо bundle installотримую помилку '-bash: bundle: команда не знайдена'. З 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

Відповіді:


87

Вам потрібно додати виконавчий каталог rubin gem у свій шлях

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

14
Під uBuntu 11.04 останній командний шлях зараз експортує PATH = $ PATH: /var/lib/gems/1.8/bin
Антоній

Оновлення: в ubuntu 11.04, здається, шлях не має значення, оскільки, поки ми хочемо використовувати останню RubyGem, нам просто потрібно встановити RVM та встановити потрібну версію Ruby.
Антоній

Антоній, який працював на мене, і я подав оновлення до основної відповіді.
Майкл Дюррант

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

199

Моєю проблемою було те, що я зробив:

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яких ви схильні, є такі речі, як пачка та зевс. Коли вам gem install, то потрібно бігти rbenv rehashзгодом. Просто так воно і є.
xxjjnn

У мене ця проблема була в Windows. Подзвонив gem install bundlerі зараз все добре.
Ден Аткінсон

25

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

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

Не працювали для мене, якісь пропозиції? - 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 / gems / 1,8 / bin
Juan

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


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/.........

3

Можливо, захищений від недорогих шляхів додає це до вашого .bashrc або .zshrc, незалежно від оболонки:

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

або якщо ви встановили дорогоцінні камені у всьому світі, використовуйте:

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

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ви хочете створити символьне посилання на пакет, а не на весь дирижабль?
Ashish Singh

0

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

rbenv rehash

Після цього bundleпрацювали як очікувалося. Подивившись на запис вікі rbenv, він згадує, що повторне копіювання слід запускати, коли встановлений дорогоцінний камінь надає команди.

Встановлює прокладки для всіх виконуваних файлів Ruby, відомих rbenv (тобто ~ / .rbenv / версії / / 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.