Пути установки рубинов/драгоценных камней разбросаны повсюду, почему?

Пути установки рубинов/драгоценных камней разбросаны повсюду, почему?

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

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

/usr/bin/ruby
/usr/bin/ruby1.8
/usr/bin/ruby1.9.1

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

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

/usr/bin/gem
/usr/bin/gem1.8
/usr/bin/gem1.9.1

Я установил несколько gem-пакетов с помощью «sudo gem install»

> gem list

 *** LOCAL GEMS ***

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

Пока все хорошо? Ну, не совсем, как оказалось, команда "compass version" не существует. Мое замешательство растет с каждой папкой, в которую я заглядываю. Например, следующий путь не имеет для меня никакого смысла. Почему он должен быть скрыт? Почему mustache — единственная жемчужина внутри этой папки?

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

Во-первых, вот «окружение 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" ........... Кроме того, как оказалось, все гемы установлены в эту папку (и mustache тоже! хотя он уже находится внутри другой папки), как и утверждает "ruby environment":

/var/lib/gems/1.9.1/gems

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

.

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

решение1

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

решение2

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

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


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


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

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

Вы, очевидно, установили mustache (без sudo) с помощью

gem install mustache

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


решение:

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

После этого вы можете решить, хотите ли вы установить драгоценные камни с помощью aptitudeили gem install: установить-пакеты-через-apt-get-or-gem.

Связанный контент