Subscribed unsubscribe Subscribe Subscribe

k-yamadaのブログ

プログラミングのメモ

geminaboxでprivateなrubygemsサーバを立てる

参考サイト

geminabox(github): https://github.com/cwninja/geminabox/
geminaboxでローカルにgemをホストする: http://aerial.st/archive/2011/06/10/geminabox/

Setup geminabox server

OS: Ubuntu

install gems

$ rvmsudo gem install unicorn
$ rvmsudo gem install geminabox

geminaboxディレクトリの作成

$ mkdir /var/www/geminabox
$ cd /var/www/geminabox
$ mkdir data
$ vim config.ru
require "rubygems"
require "geminabox"

Geminabox.data = "/var/www/geminabox/data"
run Geminabox

unicornでgeminaboxを起動。portは適当に空いてる番号を指定

$ unicorn -p 2000 -D

ブラウザで「http://<サーバのIP>:2000」を開き、geminaboxのTOPページが表示される事を確認する

gemの登録

$ wget http://rubygems.org/downloads/hello-0.0.1.gem
$ gem inabox hello-0.0.1.gem 
Enter the root url for your personal geminabox instance. (E.g. http://gems/)
Host:  http://localhost:2000   # <- 先ほど起動したgeminaboxサーバのURLを指定する。

Pushing hello-0.0.1.gem to http://localhost:2000/...
Gem hello-0.0.1.gem received and indexed.

gemの上書きを許可する。

デフォルトでは、既に登録済みで同じバージョンのgemをアップロードするとエラーになるが、config.ruでGeminabox.allow_replace = trueにすると、gemの上書きが可能になる

config.ru

require "rubygems"
require "geminabox"

Geminabox.allow_replace = true  # <- Add
Geminabox.data = "/var/www/geminabox/data" # ... or wherever
run Geminabox

クライアントでgemをインストール

gem sources -