Вопрос

Недавно я обновился до 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top