Подтвердить что ты не робот

RVM Bundle Установите Missing Gem Error, даже если установлена ​​gem

Я получаю следующую ошибку, даже несмотря на то, что в настоящее время у меня установлен Bundler gem (появляется, когда я запускаю список $gem).

ERROR: Gem bundler is not installed, run `gem install bundler` first.

Я использую RVM, а мой $PATH выглядит следующим образом:

/Users/cjstingl/.rvm/gems/[email protected]/bin:
/Users/cjstingl/.rvm/gems/[email protected]/bin:
/Users/cjstingl/.rvm/rubies/ruby-1.9.2-p290/bin:
/Users/cjstingl/.rvm/bin:
/Users/cjstingl/.bin:
/usr/local/sbin:
/usr/local/Cellar/php/5.3.6/bin:
/usr/local/share/python:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/X11/bin

Также это мой драгоценный камень env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.2.0]
  - INSTALLATION DIRECTORY: /Users/cjstingl/.rvm/gems/[email protected]
  - RUBY EXECUTABLE: /Users/cjstingl/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/cjstingl/.rvm/gems/[email protected]/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/cjstingl/.rvm/gems/[email protected]
     - /Users/cjstingl/.rvm/gems/[email protected]
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => false
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "-n/usr/local/bin --no-ri --no-rdoc --no-user-install"
  - REMOTE SOURCES:
     - http://rubygems.org/

Также: использование команды bundle -v возвращает ту же ошибку

Я попытался взорвать RVM и переустановить, который, похоже, не работает. Я в тупике, и любая помощь будет оценена.

4b9b3361

Ответ 1

Добавление следующего (взятого из .bash_profile) в .bashrc исправил его для меня:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

Ответ 2

У меня была такая же проблема с чистой установкой RVM 1.10.3. После переустановки я заметил, что пакет установлен, и что каталоги <gemset> /bin добавляются в мой $PATH, но эти каталоги bin фактически не существуют. Я думаю, что это просто ошибка RVM.

В качестве быстрого исправления я вручную скопировал двоичный файл bundle в каталог RVM bin, который существует. Это, похоже, устранило мою проблему:

$ cd ~/.rvm
$ cp gems/ruby-1.9.3-p0/gems/bundler-1.0.21/bin/bundle rubies/ruby-1.9.3-p0/bin/

Варианты Ruby и Bundler в этих путях, вероятно, будут отличаться для вас.


Решение выше работает, но это подталкивало меня, поэтому я поместил его в rvm guys; оказалось, что мой файл ~/.gemrc переопределяет местоположение драгоценного камня этой строкой:

- "gem" => "-n/usr/local/bin"

Удаление этого исправлено для меня. См. Здесь для полной темы: https://github.com/wayneeseguin/rvm/issues/1043#issuecomment-7336267

Ответ 3

У меня была аналогичная проблема, и ответ (по крайней мере для меня) был безумно простым после многих проб и ошибок.

Это определенно проблема пути, и @gamecreature упоминание о порядке пути было ключевым ключом для меня.

Я не уверен, как это произошло, но у меня был $HOME/.rvm/bin как первый элемент в моем экспорте PATH.

Это необязательно, так как этот каталог добавляется в путь в правильном порядке с помощью поиска файла rvm.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Итак, я решил удалить $HOME/.rvm/bin из моего экспорта PATH.

Если у вас несколько файлов инициализации (.bashrc,.bash_profile,.profile), обязательно следуйте советам на странице rvm troubleshooting:

убедитесь, что источник rvm файла встречается последним в вашем файлы профиля (.bash_profile/.bashrc/.zshrc) по существу после любого настройки PATH/функций или псевдонимов.

Но я также рекомендовал бы проверить остальную часть вашего определения PATH, чтобы убедиться, что не было заявленных дубликатов, которые будут иметь приоритет.

Ответ 4

У меня была аналогичная проблема. Оказалось, что у меня не было конкретного файла проекта .rvmrc. Я просто создал его с помощью

rvm --rvmrc --create [email protected]_project_name

В моем проекте dir

Это решило проблему

Ответ 5

Если вы дошли до конца и все еще стучите головой о стену...

Моя проблема заключалась в том, что rvm install 1.8.7 не удалось завершить установку, но, похоже, был успешным (у меня был ruby ​​1.8.7 и я мог создать gemset)

Но похоже, что $GEM_HOME установлен в конце установки script, и поскольку это не было установлено, rvm не искал нужное место для драгоценных камней.

Я запустил rvm reinstall 1.8.7 и внимательно посмотрел на ошибки.

Что меня опрокинула, была эта тема: https://groups.google.com/d/topic/rubyversionmanager/aUBDxbBzZpE/discussion

Вы можете проверить, не является ли это вашей проблемой, запустив

echo $GEM_HOME или gem env или проверьте свой журнал установки rvm (см. ссылку выше)

Вы видите свою рубиновую версию и имя gemset в своем Gem Path? Если нет, возможно, сбой установки rvm.

Ответ 6

Я не знаю, является ли это причиной вашей проблемы. Но у меня была аналогичная проблема. Причина в том, что моя среда RVM была неправильной.

У меня было 2 пользователя, один из которых работал, который этого не делал. Рабочий пользователь использовал следующий пакет script. (выход из: какой пучок)

/home/rvm/.rvm/gems/ruby-1.9.3-p0/bin/bundle

Неправильный пользователь установки rvm:

/home/user/.rvm/bin/bundle

Причиной этого является неправильный порядок $PATH. Путь .rvm/gems/ruby ​​-.../bin должен быть помещен перед пути. /rvm/bin.

В моей ситуации причина была в том, что я установил переменную $PATH в rvm другого пользователя. Я исправил проблему, добавив символическую ссылку на RVM пользователя и изменив свой путь:

/home/rvm/.rvm/bin

к

/home/user/.rvm/bin

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

Ответ 7

Попробуйте следующее: https://rvm.io/integration/gnome-terminal/

он говорит о профилях, запущенных при запуске, я запускаю ubuntu 12.10, и он работает. Единственное, что вам нужно сделать, это установить "Запустить команду в качестве оболочки входа" в настройки профиля терминала (название и команда табуляции).

Надеюсь, что кому-то это поможет.

Ответ 8

Это случилось и со мной, после перехода на новый пустой gemset и запуск gem install bundler. Причина в том, что оболочка "запоминает" последний исполняемый файл bundle, который вы использовали. Чтобы исправить это (по крайней мере, у bash -оценок):

hash -r

Ответ 9

Вы знаете, что это, очевидно, ваша проблема с переменной PATH.

Вы должны убедиться, что which bundle будет как /usr/local/rvm/gems/ruby-1.9.3-p194/bin/bundle вместо того, чтобы что-то вроде /usr/local/rvm/bin/bundle.

подсказка:

Вы просто использовали PATH = некоторый явный список в вашем файле .zshrc?

Затем вы должны изменить это на PATH = $PATH: некоторый список

Ответ 10

Я установил ruby ​​1.9.3 на rvm. После завершения octopress просто отредактируйте $path_of_git/.rvmrc как это "rvm use 1.9.3". И затем введите команду "cd..; cd $path_of_git". После этого он попросит вас доверять погоде .rvmrc или нет. Введите 'y', чтобы файл .rvmrc работал.

Ответ 11

У меня была очень похожая проблема по несколько иной причине. В моем домашнем каталоге был файл .gemrc, оставшийся от старой установки ruby, и я пропустил при удалении старых файлов. Кажется, что gem вводит в заблуждение настройки rvm с настройками в этом файле. Как только я удалил его (и некоторые файлы были установлены в прежнее место), все работало нормально.

Ответ 12

Сегодня я столкнулся с той же проблемой. Подход, который я использовал для решения проблемы, заключался в следующем:

1) Запустите

cap shell

на том же компьютере, который вы обычно запускаете при запуске. Затем выполните

env | sort

Выполняет команду на удаленном сервере. Скопируйте и вставьте вывод в локальный текстовый файл, например. capenv.txt

2) SSH на тот же удаленный сервер и выполните ту же команду, а именно env | Сортировать. Сохраните это локально в виде текстового файла, например. sshenv.txt

3) Разделите два файла и посмотрите, что находится в sshenv.txt, который не находится в файле capenv.txt - это наиболее вероятно, где ваша проблема.

< ++CAP ++
< _=/bin/sh
---
> ++ SSH ++
> __array_start=0
14a15
> PS1=\[\e]2;[email protected]\a\e[0;31m LIVE:\[email protected]\h \w> \e[0m
18d18
< rvm_env_string=ruby-1.9.3-p194
21d20
< rvm_ruby_string=ruby-1.9.3-p194
27c26,28
< USER=tracker
\ No newline at end of file
---
> USER=tracker
> USES_BASHRC=bashrc
> _=/usr/bin/env

4) Я сразу заметил, что интерпретатор оболочки не был установлен на bash. Это можно исправить добавлением

set :shell, '/usr/bin/bash'

в файл deploy.rb. Это решило мою проблему.

Ответ 13

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

Я нашел и переключился на rbenv, что намного упрощено, чем RVM.

И как говорится в README rbenv:

rbenv делает...

  • Позволяет изменить глобальную версию Ruby для каждого пользователя.
  • Обеспечьте поддержку для Ruby версий для каждого проекта.
  • Разрешить переопределять версию Ruby с помощью переменной среды.

В отличие от rvm, rbenv не...

  • Нужно загрузиться в вашу оболочку. Вместо этого подход rbenv shim работает, добавляя каталог в ваш $PATH.
  • Отменить команды оболочки, такие как cd.. Это опасно и подвержено ошибкам.
  • У вас есть файл конфигурации. Не нужно ничего настраивать, кроме той версии Ruby, которую вы хотите использовать.
  • Установить Ruby. Вы можете самостоятельно создавать и устанавливать Ruby или использовать ruby-build для автоматизации процесса.
  • Управление gemset. Bundler - лучший способ управлять зависимостями приложений. Если у вас есть проекты, которые еще не используют Bundler, вы можете установить плагин rbenv-gemset.
  • Требовать внесение изменений в библиотеки Ruby для совместимости. Простота rbenv означает, что если вы в $PATH, ничего больше должен знать об этом.
  • Подсказывать вам предупреждения при переключении на проект. Вместо выполнения произвольного кода rbenv считывает только имя версии из каждого проекта. Там нечего "доверять".

Итак, если вы спросите меня, сбросьте RVM и переключитесь на rbenv.

Ответ 14

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

$ rvm use 1.9.2-p290
Using /Users/myname/.rvm/gems/ruby-1.9.2-p290

Ответ 15

Учтите эту проблему самостоятельно после обновления моего уровня исправления Ruby. Я запустил which gem и обнаружил, что он использует глобальную версию rubygems, в этом случае путь был ~/.rvm/bin/gem. Поэтому я запустил rvm rubygems current, который установил его в ~/.rvm/rubies/ruby-1.8.7-p370/bin/gem. Ran gem install bundler и bundle снова. Проблема решена.

Ответ 16

У меня была такая же проблема, когда у меня был пустой файл .rvmrc в каталоге, на котором я переключился (rvm 1.15.1). Очевидно, что существует множество причин этой ошибки.

Ответ 17

Входите в ту же проблему (где я продолжал устанавливать дистрибутив, а rvm не узнал его) на одном из моих ноутбуков. Я догадался, что я, возможно, установил RVM неправильно, пока я был еще рельсами noob. Я попробовал решение выше, но это не сработало для меня. После беспорядка с ним я сдался и удалил RVM и переустановил его. Я полагал, что это связано с какой-то странной конфигурационной проблемой, глубоко вложенной где-то или. Вот шаги, которые я предпринял:

Удалить RVM:

rvm implode

Установите RVM еще раз:

curl -L https://get.rvm.io | bash -s stable --rails
rvm reload

Поскольку я работаю над старым проектом rails для работы, мне пришлось установить ree-1.8.7-2012.02

rvm install ree-1.8.7-2012.02

Конечно, закон Мерфи по-прежнему применяется. Я столкнулся с другой проблемой, когда мой ноутбук не смог найти компилятор Non-broken C, хотя Xcode установлен вместе с gcc. Мои последние шаги были отправлены в https://github.com/kennethreitz/osx-gcc-installer и установили их пакет и переустановку ree.

Я надеюсь, что это последнее решение поможет кому-то. Удачи!

Ответ 18

Для моей настройки, добавив пользователя, что apache работает, как работает группа rvm

usermod -a -G rvm www-data

Ответ 19

У меня тоже была эта проблема. Я исправил свою проблему, указав gemset.

$ bundle install
ERROR: Gem bundler is not installed, run `gem install bundler` first.

$ rvm gemdir
/usr/local/rvm/gems/ruby-1.9.3-p194

$ rvm gemset list

gemsets for ruby-1.9.3-p194 (found in /usr/local/rvm/gems/ruby-1.9.3-p194)
   global
   rails32

$ rvm gemset use rails32

Using ruby-1.9.3-p194 with gemset rails32

$ rails s

Could not find rake-10.0.4 in any of the sources

Run `bundle install` to install missing gems.

$ bundle install

Fetching gem metadata from https://rubygems.org/.......
{And voila! it worked!}