メモ: るりまのローカル環境へのインストール
Rubyリファレンスマニュアル刷新計画 (通称るりま)、普段はWebからオンラインで参照していますが、地下などのオフライン環境で参照できるように、ローカルのPC上にインストールして閲覧環境を構築してみました。
作業環境
- Ubuntu Linux 9.10
- apache2 (Ubuntuパッケージ)
- Ruby 1.8.7-p249
- Rubyリファレンスマニュアル 2010/2/28スナップショット版 (ruby-refm-1.9.1-dynamic-20100228.tar.bz2 )
まず何も考えずに入れてみる
るりまの配布パッケージは、Webrickベースのサーバ (BitClust) を含んでおり、これを起動することでHTTPサーバとして動作します。
~> sudo mkdir /usr/local/share/doc ~> cd /usr/local/share/doc /usr/local/share/doc> sudo tar jxvf ~/tmp/ruby-refm-1.9.1-dynamic-20100228.tar.bz2 /usr/local/share/doc> sudo mv ruby-refm-1.9.1-dynamic-20100228 ruby-refm /usr/local/share/doc> cd ruby-refm /usr/local/share/doc/ruby-refm> ruby server.rb
この場合、ポート番号10080でサーバプロセスが起動して、ブラウザからは http://localhost:10080/ のようなURLで参照できます。
自動起動の設定
OS起動のたびに手動でBitClustを立ち上げるのは面倒なので、OS起動時に自動的に立ち上げるように設定します。
ここは安直に、/etc/rc.local に以下の1行を追加します。
/usr/local/bin/ruby /usr/local/share/doc/ruby-refm/server.rb &
(おまけ) Apacheとの連携
ポート番号10080というのが多少気持ち悪いので、ローカルホスト上のApacheと同居させて、http://localhost/doc/ruby-refm/ のようなURLでマニュアルを参照できるように設定してみます。
apache2インストール直後の状態では、Apacheをリバースプロキシとして動作させるのに必要なモジュールmod_proxy, mod_proxy_httpがロードされない設定になっているので、シンボリックリンクを貼ってモジュールを有効化します。
% /etc/apache2/mods-enabled/ % sudo ln -s ../mods-available/proxy.load . % sudo ln -s ../mods-available/proxy.conf . % sudo ln -s ../mods-available/proxy_http.load .
さらに、初期状態の proxy.conf では、以下の設定によりリクエスト転送が禁止されているので、該当する部分をコメントアウトします (試してみた限りでは、これを残して新しい
/etc/apache2/mods-available/proxy.conf
<Proxy *> AddDefaultCharset off Order deny,allow Deny from all #Allow from .example.com </Proxy>
RubyリファレンスマニュアルのBitClustサーバ用に、以下のリバースプロキシ設定ファイルを新規作成します。
~> cd /etc/apache2/sites-available/ /etc/apache2/sites-available/> cat ruby-refm <Proxy /doc/ruby-refm/*> Order Deny,Allow Allow from all </Proxy> ProxyPass /doc/ruby-refm http://localhost:10080/doc/ruby-refm ProxyPassReverse /doc/ruby-refm http://localhost:10080/doc/ruby-refm /etc/apache2/sites-available/> cd ../sites-enabled/ /etc/apache2/sites-enabled/> sudo ln -s ../sites-available/ruby-refm 999-ruby-refm
上の設定は、Webブラウザから見えるURLが http://localhost/doc/ruby-refm/ で、BitClust上のURLが http://localhost:10080/doc/ruby-refm であることを前提としています (こうしないと、BitClustにより出力されるHTMLドキュメント中のリンクが存在しないURLになってしまう)。
これに対応して、BitClust側の設定を変更して、ベースURLを /doc/ruby-refm に指定します。
(変更前) /usr/local/share/doc/ruby-refm/server.rb
ARGV.unshift "--baseurl="
(変更後) /usr/local/share/doc/ruby-refm/server.rb
ARGV.unshift "--baseurl=/doc/ruby-refm"
この状態でserver.rbおよびApacheを再起動すると、Webブラウザから http://localhost/doc/ruby-refm/ でRubyリファレンスマニュアルを参照できます。