ユーザ用ツール

サイト用ツール


rubygems

文書の過去の版を表示しています。


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を上書きしようとするので、一度退避させて後でマージするのが吉

rubygems.1312253560.txt.gz · 最終更新: 2011/08/02 02:52 by nullpon