それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

オレ専用のrubygems配布サイトが欲しいですね。

オレオレ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