web-dev-qa-db-ja.com

ダウンロードしたRuby gemファイルをインストールする方法は?

「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

それのどこが悪いんだい ?

40
JCLL

たぶん私は質問を完全に理解していません。ただし、ローカルマシンにgemをインストールするだけの場合、コンソールから行う必要があるのは、gemとgem install --local your.gem

48
Oscar

この例のfoo-barで独自のgemファイルをビルド/インストールする必要がある場合に備えて、もう少し明確にします。

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

私はこれを行う方法を研究していましたが、この投稿は最初の結果でした:)

24
Haris Krajina

問題は、gem installがデフォルトディレクトリにインストールするgemを探していることです。次のコマンドを実行すると、それがどこにあるかがわかります。

$ 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がインストールするgemを見つけることを期待している場所です。したがって、あなたの問題の解決策は、現在の場所から予想されるディレクトリにgemをコピーすることです。

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

次にgem installを実行すると、gemが選択されてインストールされます。必ずコピーコマンドをスーパーユーザーとして実行してください(私のようなUbuntuを実行している場合は、Sudo)。

PS$ gem environmentを実行すると、Gem:Moduleに対して「undefined method 'manage_gems'(NoMethodError )」エラーが発生したら、/ usr/bin/gemを編集し、ファイルの最初の3行が次のようになっていることを確認します。

  1. 「rubygems」が必要
  2. 「rubygems/gem_runner」が必要
  3. Gem.manage_gems

12
RedFred