Tag Archives: rvm

geminaboxでローカルにgemをホストする

geminaboxを使ってローカルにgemをホストしてみる。

(とりあえずでやってみただけなので、手順等にミスがあるかも)

まずはサーバを立てる

rvmとpowが入っている前提で。 ~/var/geminabox 以下を使うとする。

$ rvm use 1.8.7@geminabox --create
$ gem install geminabox
$ mkdir -p ~/var/geminabox/data
$ echo "rvm use 1.8.7@geminabox" > ~/var/geminabox/.rvmrc
$ echo 'require "rubygems"
require "geminabox"

Geminabox.data = "#{ENV['HOME']}/var/geminabox/data"
run Geminabox
' > ~/var/geminabox/config.ru
$ ln -s $HOME/var/geminabox $HOME/.pow

これで http://geminabox.dev/ にアクセスすればgeminaboxでホストしているgem一覧が表示される。

つぎにgemを追加する

たとえばhello-0.0.1.gemをrubygems.orgから落としてきて追加する。

$ wget http://rubygems.org/downloads/hello-0.0.1.gem
$ gem inabox hello-0.0.1.gem

これをやると http://geminabox.dev/ の一覧に追加される。

使ってみる

$ gem sources -a http://geminabox.dev/

もしくは~/.gemrcのsourcesに手動で追加する。

:sources:
- http://geminabox.dev
- http://rubygems.org

bundlerだったらGemfileに追記する。

source "http://geminabox.dev"
source :rubygems

では実際にインストールしてみる。

$ gem install hello
Successfully installed hello-0.0.1
1 gem installed

できた!

最後に

powとrvmのペアが最強すぎる。サーバをいちいち立ち上げる必要もないし、geminaboxの依存するgemと開発用のgemとが混在することもない。

あとはrubygems.orgから一度落としたやつをgeminaboxにコピーすることができたら完璧だ。 gemコマンドのフックってできないのかな?


homebrewとrvmをセットアップするスクリプト

Macbook ProとMacbook Airでちまちまと同じ環境を用意するのが面倒になったので、最初の処理をまとめたスクリプトを書いてDropboxで共有するようにした。

個々のgemに関してはbundlerを使ってGemfile(.lock)やプロジェクトごとのvendor/bundleに入れておくことで手軽に共有できるので、とっかかりとしてはこれで十分かなと。

これ以外にも.zshrcや.irbrc、.vimrcもDropboxで共有している。Dropboxは凄く便利なので本当にオススメです。1個でも違う環境が入ったときが面倒かもなぁ

参考資料


rvmふたたび

ruby 1.9.2が出たのでrvmを入れ直して整理した。

$ gem install --user-install rvm
$ PATH=$HOME/.gem/bin:$PATH
$ rvm-install
$ vi ~/.zshrc # ~/.gem/binをパスに追加、rvmの初期化コードを追加
$ exit

1.9.2と1.8.7をインストールする。 ただしMacPortsで入れたreadlineを使うために今回はオプションを付ける。

$ rvm install 1.8.7 -C "--enable-shared=true,--with-opt-dir=/opt/local"
$ rvm install 1.9.2 -C "--enable-shared=true,--with-opt-dir=/opt/local"

とりあえず1.8.7にRails2.3のgemsetを作り、1.9.2にRails3 RCのgemsetを作る。 そして前者をデフォルト(シェルを立ち上げたときに最初に読み込む)のgemsetとする。

$ rvm use 1.8.7@rails23 --create --default
$ gem install rails -v 2.3.8
$ rvm use 1.9.2@rails3rc --create
$ gem install rails --pre

rails2.3で作ったプロジェクトでは1.8.7@rails23を使いたいので、RAILS_ROOTで次のように.rvmrcを作る。rails3rcのほうも同様。

$ echo "rvm use 1.8.7@rails23" > .rvmrc

rvm

基本はasakusa.rbによる記事を見ればok。

デフォルトのバージョンを指定する

useサブコマンドに–defaultオプションを付ける。

rvm use 1.8.7 --default

gemsetを使う


rvm use 1.8.7
rvm gemset create rails222
rvm use 1.8.7%rails222
gem install rails -v 2.2.2
gem list

help

rvm help