Подтвердить что ты не робот

Как установить загруженный файл Ruby gem?

Как работает "gem install"? Это не интуитивно...

Мой драгоценный камень действительно здесь:

[[email protected] Téléchargement]# ll *.gem
-rw-rw-r-- 1 jean jean 16353818 mar  5 11:39 ruby-processing-1.0.9.gem

Но идиоматическая "установка gem" не видит его...

[[email protected] Téléchargement]# gem install  ruby-processing-1.0.9.gem 
ERROR:  could not find gem ruby-processing-1.0.9.gem locally or in a repository

Что не так с этим?

4b9b3361

Ответ 1

Возможно, я не полностью понял вопрос. Но если вы просто хотите установить драгоценный камень, который у вас есть на вашем локальном компьютере, все, что вам нужно сделать с консоли, - войти в каталог, содержащий ваш драгоценный камень, и gem install --local your.gem.

Ответ 2

Еще несколько разъяснений, если вам нужно создать/установить собственный файл gem в этом примере foo-bar.

gem build foo-bar.gemspec
gem install --local foo-bar-0.1.0.gem

Я изучал, как это сделать, и этот пост был первым результатом:)

Ответ 3

Проблема в том, что gem install ищет драгоценные камни для установки в своем каталоге по умолчанию. Вы можете узнать, где это работает:

$ gem environment

Это даст вам что-то вроде:

> RubyGems Environment:
>   - RUBYGEMS VERSION: 1.3.6
>   - RUBY VERSION: 1.8.6 (2007-09-24 patchlevel 111) [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/adminuser/.gem/ruby/1.8

Местоположение GEM PATHS - это место, где установка gem ожидает найти драгоценные камни для установки. Таким образом, решением вашей проблемы будет копирование драгоценного камня из его текущего местоположения в ожидаемый каталог, т.е.

$ cp my.gem /home/adminuser/.gem/ruby/1.8/

Если вы запустите gem install, он заберет ваш драгоценный камень и установит его. Убедитесь, что вы запустили команду копирования в качестве суперпользователя (sudo, если вы используете Ubuntu, как я)

PS Если при запуске среды $gem вы получаете "undefined метод" manage_gems для ошибки Gem: Module (NoMethodError) ", затем отредактируйте /usr/bin/gem и убедитесь, что что первые три строки файла выглядят следующим образом:

  • требуется "rubygems"
  • require 'rubygems/gem_runner'
  • Gem.manage_gems