Как установить скачанный Ruby gem файл? - PullRequest
40 голосов
/ 05 марта 2010

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

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

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

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

[root@localhost 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

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

Ответы [ 3 ]

48 голосов
/ 05 декабря 2010

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

24 голосов
/ 12 июня 2012

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

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

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

12 голосов
/ 28 марта 2010

Проблема в том, что 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 install ожидает найти гемы для установки.Таким образом, решением вашей проблемы было бы скопировать драгоценный камень из его текущего местоположения в ожидаемый каталог, т.е.

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

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

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

  1. требуется 'rubygems'
  2. требуется 'rubygems / gem_runner'
  3. Gem.manage_gems

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...