RubyGemsのミラーの構築
最近RubyForgeがたまに落ちてて仕事にならないことが何度かあったので、ローカルにRubyGemsのミラーサーバーをセットアップしました。
gemの中にgem_mirrorというコマンドがあるんですが、たぶんrsyncの方が効率がいいのでrsyncでミラーしています。
1. 以下のコマンドをCronで定期的に実行するように設定します。サーバーに負荷をかけないよう、4時間毎に実行しています。
rsync -av --delete rsync://rubyforge.rubyuser.de/gems/ /path/to/mirror_root/gems && wget http://gems.rubyforge.org/yaml -O /path/to/mirror_root/yaml
2. Webサーバーに/path/to/mirror_rootをドキュメントルートにしたバーチャルホストを作成します。
設定ファイルの例:
<VirtualHost *:80> ServerName gems.mirror DocumentRoot /path/to/mirror_root <Directory /path/to/mirror_root> Options Indexes Order allow,deny Allow from all </Directory> </VirtualHost>
3. .gemrcを作成します。
$HOME/.gemrcの例
gem: --source http://gems.mirror/
以上で設定完了です。