文書の過去の版を表示しています。
目次
RubyGems
RubyGemsは、Rubyのパッケージ管理ツール。PerlのCPAN、PHPのPearみたいなの。
インストール
WindowsのActiveScriptRubyは、最初からgemsがインストールされている。
MacOSX 10.6では最初からインストールされているが、Appleの都合でいつ変えられるか分からないのでMacPortsでRubyと一緒に入れるのが良い。
port install ruby port install rb-rubygems
サブコマンド
hogeをインストール
$ gem install hoge
バージョン指定インストール
$ gem -v '= 2.0.0' # v2.0.0を入れる $ gem -v '>= 2.0.0' # v2.0.0以降のリリース最新版入れる $ gem -v '~> 2.0.0' # 2.0.xの最新版を入れる(2.1は入らない、たとえば2.0.9が入る) $ gem -v '~> 2.0' # 2.xの最新版を入れる(3.0は入らない、たとえば2.9が入る) <code> パッケージfugaをアップデート $ gem update fuga パッケージfugaの古いバージョンを削除 $ gem cleanup fuga gems自身をアップデート(現在、このコマンドが無効になっている) $ gem update --system ヘルプ(これ覚えておけばこのページ見る必要ないよ) $ gem --help $ gem -h コマンド一覧を表示 $ gem help commands ===== パッケージ検索 ===== searchは部分一致、listは前方一致、完全一致させたければqueryサブコマンドと正規表現で $ gem query -n ^rails$ rオプションでremoteから探す、aオプションでバージョンを列挙。 $ gem search rails -r -a ===== mysqlライブラリを入れる方法 ===== Cベースのmysqlコネクタを入れる。mysqlの場所が見つからなくてエラーになる場合の対処法、MacOSXにMySQL公式のバイナリインストーラでMySQL5をインストールしている場合 $ sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config ===== rubygems-update ===== Rubygems自体のアップデートを管理するパッケージ。 今は gem update --system を使わない。 最新版にする。 $ sudo gem rubygems-update $ sudo update_rubygems バージョンを指定する。 $ sudo gem rubygems-update -v=1.3.6 $ sudo update_rubygems --version=1.3.6 gem rubygems-update でインストール、update_rubygems で切り替え ===== Windowsでgem update --systemして動かなくなる ===== for ActiveScriptRuby 1.8.6 ActiveScriptRubyでgem update --systemすると作成される''C:\Program Files\ruby-1.8\bin\gem.bat''が間違っているので修正する <code> @ECHO OFF IF NOT "%~f0" == "~f0" GOTO :WinNT @"ruby.exe"" "C:/Program Files/Ruby-1.8/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9 GOTO :EOF :WinNT @"ruby.exe"" "%~dpn0" %*
2カ所あるruby.exeの後ろにダブルクオートが2つ付いているので取る。
Ubuntu 8.04 でgem update --systemして動かなくなる
for Ruby 1.8.6 and Ubuntu 8.04
aptitudeでrb-rubygemsを入れた後に、gem update –systemするとgemがエラーを吐くようになる。gem1.8というコマンドが作られているのでそちらを使う。
$ gem1.8
オリジナルのgemは要らんが、aptitudeでremoveしようとするとirb等が消されて不便なので残しておいてもいいかも。
Ubuntuでインストールしたコマンドが見つからない
Ruby 1.8 on Ubuntu 9.04
例えばgemでrailsをインストールしてもrailsコマンドが見つからないが、単純にパスが通っていないだけ。
$ sudo gem install rails $ rails -v プログラム 'rails' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt-get install rails $ export PATH=$PATH:/var/lib/gems/1.8/bin $ rails -v Rails 2.3.4
gemパッケージの作成
gemパッケージを自分で作る方法、newgemというライブラリを使うと簡単に作成できる。
インストール
$ gem install newgem
するとnewgemというコマンドが作られる。
$ newgem
Rubyのライブラリを作る場所で
$ newgem hoge -T spec
hogeディレクトリが作成され、その中にライブラリ、rakeタスク等が作成される。-Tオプションでテストライブラリを指定、デフォルトTest::Unit、-T rspecでRSpecを指定。
rakeでテストを実行
$ rake test $ rake spec
rakeでgemパッケージをビルド
$ rake package
既存のものに適用
既に開発中のものにnewgemを適用することもできる。hogeというライブラリを作成しているなら、
hoge/lib/hoge.rb hoge/spec/hoge_spec.rb
のようなディレクトリ構成にしておき hoge ディレクトリの上で
$ newgem hoge -T rspec
とする。ヘルパやrakeタスクなどが作られる。hoge.rbやhoge_spec.rbを上書きしようとするので、一度退避させて後でマージするのが吉