Как использовать драгоценные камни с Ubuntu?
-
05-09-2019 - |
Вопрос
Недавно я обновился до Ubuntu 9.04, и у меня возникли проблемы с использованием драгоценных камней.Я установил Ruby, Rubygems и Rails с помощью apt-get.А rails
команда работает.
Затем я установил capistrano и другие драгоценные камни, такие как Heroku.Для этого я использовал команду:
sudo gem install XXX
Когда я хочу использовать cap
команда не работает:
bash: cap: command not found
То же самое и с другими командами драгоценных камней.
Нужно ли мне что-то особенное сделать, чтобы команды драгоценного камня работали?
Решение
Где мои драгоценные камни?
Вы можете узнать, где хранятся ваши драгоценные камни, используя gem environment
команда.Например:
chris@chris-laptop:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.2
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/chris/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
Если вы посмотрите раздел «ПУТИ GEM:», то увидите, что драгоценные камни можно хранить на моем ноутбуке в двух местах: /usr/lib/ruby/gems/1.8
или в .gem
каталог в моем домашнем каталоге.
Вы также можете видеть, что исполняемые файлы хранятся в EXECUTABLE DIRECTORY, который в данном случае /usr/bin
.
Потому что /usr/bin
на моем пути, это позволяет мне бежать cap
, merb
, rails
и т. д.
Обновление вашего PATH
Если по какой-то причине ваш ИСПОЛНЯЕМЫЙ КАТАЛОГ отсутствует на вашем пути (например, если это /var/lib/gems/1.8/bin), вам необходимо обновить переменную PATH.
Предполагая, что вы используете оболочку bash.Вы можете сделать это быстро для текущего сеанса, введя следующее в командной строке:давайте представим, что вы хотите добавить /var/lib/gems/1.8/bin
на путь:
export PATH=$PATH:/var/lib/gems/1.8/bin
и нажмите возврат.Это добавит новый каталог в конец текущего пути.Обратите внимание на двоеточие между $PATH
и /var/lib/gems/1.8/bin
Чтобы установить значение для всех сеансов, вам нужно будет отредактировать либо свой .profile
или .bashrc
файл и добавьте ту же строку в конец файла.Я обычно редактирую свой .bashrc
файл без какой-либо другой причины, кроме того, что я всегда делал.По завершении сохраните файл, а затем обновите среду, набрав:
bash
в приглашении оболочки.Это вызовет .bashrc
чтобы перечитать.
В любой момент вы можете проверить текущее значение $PATH
набрав
echo $PATH
в приглашении оболочки.
Вот пример с одного из моих серверов, где мое имя пользователя — «chris», а имя машины — «chris-laptop»:
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
Мой драгоценный камень не загружается!
"Рубиновые драгоценные камни не загружаются, даже если они установлены." подчеркивает общую проблему при использовании нескольких разных версий Ruby;Иногда среда Gem и путь Gem не синхронизируются:
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
Любой процесс Ruby ищет свои драгоценные камни только в одном месте.
:~/$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
- EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
- /home/mark/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Посмотрите внимательно на вывод среды драгоценного камня:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
Это не тот путь, который возвращает Gem.path:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
Трудно сказать, что именно стало причиной lib/ruby
измениться на lib/ruby1.9
но, скорее всего, разработчик работал с несколькими версиями Ruby.Быстрый mv
или ln
решит проблему.
Если вам нужно работать с несколькими версиями Ruby, вам действительно следует использовать РВМ.
Другие советы
Как отметил @Chris, вам нужно добавить среду драгоценных камней на свой путь.Вы можете сделать это следующим образом:
echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc
Папка, в которой лежат драгоценные камни хранится должен быть в вашем PATH, например, у меня:
/home/victor/.gem/ruby/1.8/bin
Проверьте свой путь, набрав
echo $PATH
Он видит, что при установке RubyGems, теперь в Ubuntu 9.04, у меня возникла эта проблема.Я заметил, что в «среде драгоценных камней» исполняемый каталог — «/var/lib/gems/1.8/bin» вместо «/usr/bin»…Это проблема с RubyGems или с Ubuntu 9.04??
Решение, с которым я столкнулся, состоит в том, чтобы добавить «/var/lib/gems/1.8/bin» в мой $PATH, выполнив следующее:Путь экспорта = $ path: /var/lib/gems/1.8/bin, но он не сохранен ...как мне сохранить свой путь?
Спасибо...
Резолви:coloquei или экспортировать PATH=$PATH:/var/lib/gems/1.8/bin без ~/.bashrc!"="
mkmf является частью пакета Ruby1.9.1-dev.Этот пакет содержит файлы заголовков, необходимые для библиотек расширений для Ruby 1.9.1.Вам необходимо установить пакет Ruby1.9.1-dev, выполнив:
sudo apt-get установить Ruby1.9.1-dev