ОШИБКА: Gem bundler не установлен, сначала запустите `gem install bundler`
Привет, у меня, вероятно, была попытка установить пакет Ruby gem. Я следую инструкциям gem install bundle
после получения этого сообщения, но он все еще не работает, когда я набираю bundle -v
. Я также набираю
which bundle
и получите
/Users/edmundmai/.rvm/bin/bundle
поэтому он существует!! Так почему это не работает! Что-то не так с таинственным $PATH, которого я не получаю? (Я ноб).
Здесь мой .bash_profile:
PATH=$PATH:~/bin
export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
Здесь мой .bashrc:
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Здесь мой драгоценный камень env:
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.24
- RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-darwin11.3.1]
- INSTALLATION DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected]
- RUBY EXECUTABLE: /Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
- EXECUTABLE DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected]/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/edmundmai/.rvm/gems/[email protected]
- /Users/edmundmai/.rvm/gems/[email protected]
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "install" => "--no-rdoc --no-ri"
- "update" => "--no-rdoc --no-ri"
- REMOTE SOURCES:
- http://rubygems.org/
echo $PATH
/Users/edmundmai/.rvm/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/edmundmai/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/edmundmai/bin:/Users/edmundmai/bin
UPDATE
Поэтому, после повторного изучения учебника RoR, я повторил несколько шагов из предыдущей главы в одном из двух моих окон терминала (позвольте им назвать Terminal # 1 и Terminal # 2). Терминал №2 все еще не работает (командная строка не находится ни в одной директории, а только в каталоге по умолчанию), а терминал №1 (в моем каталоге sample_app) работает. Я думаю, что rvm get head && rvm reload
может быть ключом? Но означает ли это, что я должен запускать это каждый раз, когда я открываю терминал? Проверьте мои команды терминала №1 до и после (я удалил часть вывода, чтобы было более понятно, что у меня были в моих линиях ввода):
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle -v
ERROR: Gem bundler is not installed, run `gem install bundler` first.
Edmunds-MacBook-Pro:sample_app edmundmai$ gem install
ERROR: While executing gem ... (Gem::CommandLineError)
Please specify at least one gem name (e.g. gem build GEMNAME)
Edmunds-MacBook-Pro:sample_app edmundmai$ rvm -v
rvm 1.15.8 (master) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
Edmunds-MacBook-Pro:sample_app edmundmai$ rspec spec/
No DRb server is running. Running in local process instead ...
........
Finished in 0.36709 seconds
8 examples, 0 failures
Randomized with seed 59500
Edmunds-MacBook-Pro:sample_app edmundmai$ subl .
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle install --binstubs=./bundler_stubs
Using rake (0.9.2.2)
...
...
(**list of stuff)
Using uglifier (1.2.3)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle show bundler
/Users/edmundmai/.rvm/gems/[email protected]/gems/bundler-1.2.0
Я не совсем понимаю, что такое $PATH. Если вы, ребята, нуждаетесь в дополнительной информации, не стесняйтесь говорить мне, и я предоставлю ее.
Ответы
Ответ 1
Я думаю, что это проблема: у вас установлен пакет для определенного gemset, поэтому он доступен только тогда, когда вы в вашем каталоге приложения (я предполагаю, что там есть файл .rvmrc
).
У вас есть несколько вариантов:
- Установите
bundler
в глобальный гемсет. rvm gemset use global && gem install bundler
- Если у вас установлен Homebrew, просто
brew install ruby
и вообще избегайте rvm. (Там также rbenv и ry как альтернативы rvm, но я просто использую 1.9.3 во всех моих приложениях, поэтому Homebrew в порядке.)
Для справки $PATH
- это переменная среды оболочки, содержащая список каталогов, в которых хранятся исполняемые файлы (например, echo
, ls
, vim
и т.д.). Это неотъемлемо для оболочек.
Ответ 2
Иногда бывает, что вы не правильно используете rvm, потому что вы не находитесь в оболочке входа (используя экран?).
Тип
source ~/.rvm/scripts/rvm
И используйте любую команду bundle.
Ответ 3
Добавьте следующую строку в ~/.bashrc
файл
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
затем перезагрузите файл:
$ source ~/.bashrc
Ответ 4
Даже у меня была такая же проблема,
В сервере rvm не был выбран как default.So
rvm use 1.9.3 --default
gem install bundler
решил мою проблему
(Проблема возникает только при использовании rvm)
Ответ 5
Если вы используете rvm, создайте отдельный гемсет, который является самодостаточными пучками драгоценных камней.
rvm use [email protected] --create --default
- myApplicationNameHere = изменить это на ваше имя приложения
- create = создает gemset
- default = означает использование этой версии ruby и gemset по умолчанию
Вот ссылка на сайт rvm и соответствующий раздел https://rvm.io/gemsets/basics/