1

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

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

/ 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":

/var/lib/gems/1.9.1/gems

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

,

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

2 ответа2

1

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

0

Я полагаю, ваша проблема заключается в установке 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:install-packages-through-apt-get-or-gem.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .