このエントリーをはてなブックマークに追加

ruby/rails for REE のオフライン環境を整える

ruby/railsでオフライン環境を整える – p0t にある方法を REE(Ruby Enterprise Edition)  20090610 版で試してみた。

前提として、REE は /opt/local/ruby-enterprise-1.8.6-20090610/ にインストールされていて、/opt/ruby にシンボリックリンクをはっている。通常のユーザのパスは /opt/local/bin/ruby が最優先になっている。

まずは Ruby。基本的に p0ts さんの方法でよいが念のためというか、そのままオンラインになることも多いので localhost からのみ接続を許可するようにした。

<VirtualHost * *:443>
ServerName ruby
DocumentRoot “/Users/naoya/w/help/ruby-man-html”

ErrorLog “logs/ruby-error_log”
CustomLog “logs/ruby-access_log” combined

<Location />
Order Deny,Allow
Allow from 127.0.0.1
Deny from All
</Location>
</VirtualHost>

次に gem server は、p0t さんの方法と同じだけど、mislav-hanna は github の rubygems にあるので、次のコマンドでインストールする。

$  sudo gem install mislav-hanna –source http://gems.github.com

ただし、rdoc 2.4 でなく、2.3 を必要するので、rdoc を本家からダウンロードしてインストールする。

$ wget http://rubyforge.org/frs/download.php/50957/rdoc-2.3.0.gem

$  sudo gem install -f rdoc-2.3.0.gem

$ /opt/ruby/bin/rdoc –version

rdoc 2.3.0

そして、hanna テンプレートの設定は root ユーザの .gemrc を変更した。理由は、ローカルに rubygems リポジトリのミラーが作ってあるから。

$ sudo vi ~root/.gemrc

rdoc: –inline-source –line-numbers –format=html –template=hanna
gem: –backtrace –source http://rubygems/

rdoc を再生成する。

$  sudo gem rdoc –all –no-ri

Installing RDoc documentation for merb-slices-1.0.11…
Installing RDoc documentation for actionmailer-2.0.2…
Installing RDoc documentation for memcached-0.14…
error while writing to #<File:classes/Rlibmemcached/MemcachedSt.html>
ERROR:  While executing gem … (NoMethodError)
private method `sub’ called for nil:NilClass

ちょっとエラーが出ているが気にしない方向で。。。

gems もローカルからのみ接続許可する。インクリメンタル検索がかなりよさげ。

<VirtualHost * *:443>
ServerName gems
DocumentRoot “/Users/naoya/prj/htdocs/sinatra-rubygems/public”

<Directory /Users/naoya/prj/htdocs/sinatra-rubygems/public*>
Allow from All
</Directory>

ErrorLog “logs/gems-error_log”
CustomLog “logs/gems-access_log” combined

<Location />
Order Deny,Allow
Allow from 127.0.0.1
Deny from All
</Location>
</VirtualHost>

最後に gem ミラーを作る。まず、builder が必要なのでインストールする。

$ sudo /opt/ruby/bin/gem install builder

そして、設定ファイルを記述する。gem のミラーには時間がかかる。

$ sudo vi ~root/.gemmirrorrc


– from: http://gems.rubyforge.org
to: /opt/rubygems/rubyforge/

$ sudo mkdir /opt/rubygems

$  sudo /opt/ruby/bin/gem mirror && sudo gem generate_index -d /opt/rubygems

github の rubygems もミラーしようとしたがエラーが出てしまいうまくいかなかった。

$  sudo vi ~root/.gemmirrorrc


#- from: http://gems.github.com/
#  to: /opt/rubygems/github/
– from: http://gems.rubyforge.org
to: /opt/rubygems/rubyforge/

$ sudo /opt/ruby/bin/gem mirror

fetching: http://gems.github.com//Marshal.4.8.Z
ERROR:  While executing gem … (ArgumentError)
comparison of String with 3 failed

よし、これで環境が整ったはずなので、いつでもオフライン環境になれる。

2 Comments

  • komagata

    Tuesday, 7/7/2009

    gemのミラーって素敵ですね!

  • admin

    Saturday, 7/11/2009

    さっそくのコメント、あざす!

Comments are closed.