オレオレRubyGems配布サイトを作りたいと思った。
やりかた
Route477さんがやってる。→http://route477.net/d/?date=20100720
インストール
gem install geminabox
サーバの起動
設定ファイル config.ru を書いて「rackup config.ru -p 9292」とかするとgemサーバが起動する。
ruファイル
require "rubygems" require "geminabox" Geminabox.data = "/var/geminabox-data" # …or wherever run Geminabox
配布するgemの追加
geminaboxはWeb UIを持ってるので、ブラウザでlocalhost:9292とかを開くと管理画面が表示される。ここからgemファイルをアップロードすることができる。
WEB-UIの起動
rackup -o 192.168.95.210 -p 8888 config.ru
または、手動で追加
$ gem inabox foo-0.1.2.gem
としてもいい (初回は「Host:」と聞かれるので、「http://localhost:9292/」などと入力する)。
オレオレ配布サーバーからのgemのインストール
自前のgemサーバを追加する(この情報は~/.gemrcに保存されている)。
$ gem sources -a http://localhost:9292/
感想
Sinatraはえらい。
おまけ
rackupコマンドの使い方
takuya@debian00:~$ rackup config.ru -h Usage: rackup [ruby options] [rack options] [rackup config] Ruby options: -e, --eval LINE evaluate a LINE of code -d, --debug set debugging flags (set $DEBUG to true) -w, --warn turn warnings on for your script -I, --include PATH specify $LOAD_PATH (may be used more than once) -r, --require LIBRARY require the library, before executing your script Rack options: -s, --server SERVER serve using SERVER (webrick/mongrel) -o, --host HOST listen on HOST (default: 0.0.0.0) -p, --port PORT use PORT (default: 9292) -O NAME[=VALUE] pass VALUE to the server as option NAME. If no VALUE, sets it to true. Run '/usr/bin/rackup -s SERVER -h' to get a list of options for SERVER --option -E, --env ENVIRONMENT use ENVIRONMENT for defaults (default: development) -D, --daemonize run daemonized in the background -P, --pid FILE file to store PID (default: rack.pid) Common options: -h, -?, --help Show this message --version Show version