
можете ли вы помочь мне понять структуру моей папки 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.