Пути установки Ruby/gem разбросаны повсюду, причина?

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

Сначала я объясню, как выглядит моя установка:

/ USR / бен / рубин
/usr/bin/ruby1.8
/usr/bin/ruby1.9.1

Первая - это мягкая ссылка на ruby1.9.1, потому что команда "ruby" не работала в терминале. Я сделал то же самое с "драгоценным камнем". Я установил rubygems, скачав, распаковав и запустив setup.rb здесь: (я создал папку "ruby")

/home/pc/ruby/rubygems-1.7.2/setup.rb

/ USR / бен / камень
/usr/bin/gem1.8
/usr/bin/gem1.9.1

Я установил несколько драгоценных камней с помощью "sudo gem install"

> gem list

 *** LOCAL GEMS ***

 compass (0.10.6)
 haml (3.0.25)
 mustache (0.99.3)
 rake (0.8.7)

Все идет нормально? Ну, не совсем, как оказалось, команда "версия компаса", похоже, не существует. Моя путаница растет с каждой папкой, в которую я смотрю. Следующий путь не имеет никакого смысла для меня, например. Почему это будет скрыто? Почему усы - единственный драгоценный камень внутри этой папки?

/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem

Прежде всего, это "окружение гемов", которое имеет еще меньше смысла, потому что я определенно установил rubygems-1.7.2, как я говорил вам в первом абзаце, но здесь он показывает древнюю версию 1.3.7. Зачем? Я установил Ubuntu позавчера.

  RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
  - EXECUTABLE DIRECTORY: /var/lib/gems/1.9.1/bin
      - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/1.9.1
     - /home/pc/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

ruby --version возвращает "ruby 1.8.7"............ Кроме того, как оказалось, все драгоценные камни установлены в эту папку (усы тоже!, даже если она уже находится в другой папке) так же, как утверждает "ruby environment":

/var/lib/gems/1.9.1/gems

Но ни один из этих драгоценных камней не работает. Я не могу назвать ни одного из них, кроме граблей. Так вот, где я, вероятно, допустил ошибку, я думаю, что использовал "apt-get install rake" в дополнение к "gem install rake", потому что команда "rake" не была распознана, и командная строка предложила это. Возможно, я сделал это и с rubygems... Я новичок в Linux, и я подумал, что командная строка знает, как правильно установить этот материал.

,

Не может быть нормальным, что мне приходится создавать системные ссылки, верно? В Windows я не столкнулся с этой проблемой.

2 ответа

Решение

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

Я думаю, ваша проблема заключается в установке RubyGems вручную, а не с помощью apt-get. Вы возможно сделали то же самое с ruby или вам не хватает метапакета, который содержит символическую ссылку, созданную вами вручную.

Это также та же самая причина, почему /var/lib/gems/1.9.1/binкаталог, в котором находятся все двоичные файлы, отсутствует в вашем $PATH. Таким образом, вы не можете найти исполняемые файлы для этих драгоценных камней.


Когда вы обновляете Ruby 1.8 до Ruby 1.9.3, гемы, установленные с Ruby 1.8, все равно будут находиться в папке Ruby 1.8. Возможно, у вас установлен RubyGems с другой версией Ruby.


Следующий путь не имеет никакого смысла для меня, например. Почему это будет скрыто? Почему усы - единственный драгоценный камень внутри этой папки?

/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem

Вы, очевидно, установили усы (без sudo) с

gem install mustache

Это устанавливает его для пользователя, а каталог установки пользователя $HOME/.gem/, Папка скрыта, поэтому вы не можете случайно удалить ее. Возможно, вам придется добавить это в ваш $PATH (или установить с --no-user-install)


решение:

Не просто скачивайте и устанавливайте RubyGems (и ruby) вручную. Используйте свой менеджер пакетов (aptitude)

После этого вы можете решить, хотите ли вы установить гем с aptitude или же gem install: /questions/861773/ustanovit-paketyi-cherez-apt-get-ili-gem.

Другие вопросы по тегам