rubygems
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| rubygems [2011/08/02 02:52] – [コマンド] nullpon | rubygems [2020/07/12 10:16] (現在) – [ローカルからインストール] nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== RubyGems ====== | ====== RubyGems ====== | ||
| - | RubyGemsは、Rubyのパッケージ管理ツール。PerlのCPAN、PHPのPearみたいなの。 | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| + | ===== シェルスクリプトで使える技 ===== | ||
| + | gemでインストールしたコマンドのパスを取得する。 | ||
| - | ===== インストール ===== | + | GEM_EXEC_PATH=$(ruby -e "puts Gem:: |
| - | WindowsのActiveScriptRubyは、最初からgemsがインストールされている。 | + | |
| + | bundlerが入っていなければinstallする。 | ||
| - | MacOSX 10.6では最初からインストールされているが、Appleの都合でいつ変えられるか分からないのでMacPortsでRubyと一緒に入れるのが良い。 | ||
| < | < | ||
| - | port install ruby | + | if ! gem which bundler >/ |
| - | port install | + | |
| + | fi | ||
| </ | </ | ||
| ===== サブコマンド ===== | ===== サブコマンド ===== | ||
| + | |||
| hogeをインストール | hogeをインストール | ||
| 行 26: | 行 27: | ||
| $ gem -v '~> 2.0.0' | $ gem -v '~> 2.0.0' | ||
| $ gem -v '~> 2.0' | $ gem -v '~> 2.0' | ||
| - | < | + | </code> |
| パッケージfugaをアップデート | パッケージfugaをアップデート | ||
| 行 65: | 行 66: | ||
| ===== rubygems-update ===== | ===== rubygems-update ===== | ||
| Rubygems自体のアップデートを管理するパッケージ。 | Rubygems自体のアップデートを管理するパッケージ。 | ||
| - | |||
| - | 今は gem update --system を使わない。 | ||
| 最新版にする。 | 最新版にする。 | ||
| 行 79: | 行 78: | ||
| | | ||
| gem rubygems-update でインストール、update_rubygems で切り替え | gem rubygems-update でインストール、update_rubygems で切り替え | ||
| + | |||
| + | ==== ubuntuでインストール済みgemが消えてしまう対策 ==== | ||
| + | |||
| + | ubuntuの一部のバージョンではupdate_rubygemsするとgemライブラリ置き場が変わってしまうので、今まで使っていたライブラリがロードできなくなる | ||
| + | |||
| + | $ export GEM_HOME=/ | ||
| + | |||
| + | GEM_HOMEを指定するか | ||
| + | |||
| + | $ sudo ln -s / | ||
| + | | ||
| + | 標準のgemディレクトリの場所に、Ubuntuのgemディレクトリのシンボリックリンクを作成するとよい。 | ||
| ===== Windowsでgem update --systemして動かなくなる ===== | ===== Windowsでgem update --systemして動かなくなる ===== | ||
| for ActiveScriptRuby 1.8.6 | for ActiveScriptRuby 1.8.6 | ||
| 行 118: | 行 129: | ||
| </ | </ | ||
| - | ===== gemパッケージの作成 | + | ===== 既存のgemファイルを弄る |
| - | gemパッケージを自分で作る方法、newgemというライブラリを使うと簡単に作成できる。 | + | |
| - | インストール | + | 既存のgemの取得・展開して修正する |
| - | $ gem install newgem | + | < |
| + | $ gem fetch hogehoge | ||
| + | $ gem unpack hogehoge-x.y.z | ||
| + | </ | ||
| - | するとnewgemというコマンドが作られる。 | + | 修正が終わったら再度パッケージする。 |
| - | $ newgem | + | |
| - | Rubyのライブラリを作る場所で | + | ファイル構成が変わった場合はgemspecを作り直す |
| - | $ newgem hoge -T spec | + | < |
| + | $ gem spec hogehoge > hogehoge.gemspec | ||
| + | </ | ||
| - | hogeディレクトリが作成され、その中にライブラリ、rakeタスク等が作成される。-Tオプションでテストライブラリを指定、デフォルトTest:: | + | gemパッケージ作成 |
| + | < | ||
| + | $ gem build hogehoge.gemspec | ||
| + | </ | ||
| - | rakeでテストを実行 | + | ===== ローカルからインストール ===== |
| - | $ rake test | + | |
| - | $ rake spec | + | |
| - | rakeでgemパッケージをビルド | + | 自作gemをローカルからインストールする場合など |
| - | $ rake package | + | |
| - | ==== 既存のものに適用 ==== | + | < |
| - | 既に開発中のものにnewgemを適用することもできる。hogeというライブラリを作成しているなら、 | + | # 適当なgemソースを取得 |
| - | hoge/lib/hoge.rb | + | $ git clone https://github.com/paulownia/http-server.git |
| - | hoge/spec/hoge_spec.rb | + | |
| - | + | ||
| - | のようなディレクトリ構成にしておき hoge ディレクトリの上で | + | |
| - | $ newgem hoge -T rspec | + | |
| - | + | ||
| - | とする。ヘルパやrakeタスクなどが作られる。hoge.rbやhoge_spec.rbを上書きしようとするので、一度退避させて後でマージするのが吉 | + | |
| + | # ビルド | ||
| + | $ gem build http-server.gemspec | ||
| + | # インストール | ||
| + | $ gem install http-server-0.1.3.gem | ||
| + | </ | ||
rubygems.1312253560.txt.gz · 最終更新: by nullpon