読者です 読者をやめる 読者になる 読者になる

よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

rubygemsのgemコマンドオプションのいろいろ

rubygemsをインストールされている環境でgemパッケージをインストールするときは、お決まりのコマンドを実行されているかと思います。

$ gem install [gemパッケージ名]

これだと、デフォルトのhttp://gems.rubyforge.org/のみしか検索対象にならず、rubyforgeに登録されていないgemパッケージはローカルにダウンロードしてきてインストールするなどしなければなりません。

そんなときは、サブコマンドでsourcesを指定することで検索対象URLを追加することができます。
利用方法は下記の通りです。

$ gem help sources

gem help sources
Usage: gem sources [options]
Options:
-a, --add SOURCE_URI Add source
-l, --list List sources
-r, --remove SOURCE_URI Remove source
-c, --clear-all Remove all sources (clear the cache)
-u, --update Update source cache
Common Options:
-h, --help Get help on this command
-V, --[no-]verbose Set the verbose level of output
-q, --quiet Silence commands
--config-file FILE Use this config file instead of default
--backtrace Show stack backtrace on errors
--debug Turn on Ruby debugging
Summary:
Manage the sources and cache file RubyGems uses to search for gems
Defaults:
--list

デフォルトの検索対象URLを確認してみます。

$ gem sources -l

CURRENT SOURCES ***

http://gems.rubyforge.org/

確かにrubyforgeのみです。
これにgithubなどを追加する場合は、以下のコマンドを発行します。

$ gem sources -a http://gems.github.com/

念のために追加されたかどうかを確認してみます。

$ gem sources -l


コマンドで検索対象パスを追加するのが時間がかかり面倒だ!という方は、
gem installやgem sourcesコマンドを実施する作業ユーザの
ホームディレクトリ以下の.gemrcファイルに直接追記しちゃいましょう。

$ vi ~/.gemrc

    • -
verbose
true
sources
update_sources
true
backtrace
false
bulk_threshold
1000
benchmark
false

これで検索対象URLの追加は完了です。


この他にもrubygemsの各種設定を確認するためのコマンドも用意されているようです。
サブコマンドとしてenvironmentを指定してみましょう。

$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.2.0
- RUBY VERSION: 1.8.7 (2008-08-08 patchlevel 71) [i686-linux]
- INSTALLATION DIRECTORY: /usr/local/ruby/1.8.7/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/local/ruby/1.8.7/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/ruby/1.8.7/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/local/ruby/1.8.7/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org/", "http://gems.github.com/"]
- REMOTE SOURCES:
- http://gems.rubyforge.org/
- http://gems.github.com/


#GEM CONFIGURATIONのbenchmarkとbacktraceが気になる。。。あとで調べてみようっと。