[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002769] Re: 電脳製 品のパッケージング



堀之内です。

> 神代です.
> 
> 先日の電脳davis/rubyワークショップでは, パッケージングの話を私がする予
> 定でしたが, 時間切れになってしまったので, ここで補足します.

有難うございます。毎度ながら、最後は押してしまいすみませんでした。

> ----------------------------------------------------------------------
> 1. プラットホーム毎の(バイナリ)パッケージ
> 
> 現状では, 以下のようにプラットホーム毎のパッケージが用意されています.
> apt等も使えるようにしてあるのがミソで, インストールが楽にできます.
> 作成者の皆様, いつもありがとうございます.
> 
> ・deb <apt> [i386] ... 小高さんはじめ北大の方々
> ・RPM -- Vine <apt> [i386], Fedora <yum> [i386, x86_64] ... 神代, 西澤さん
> ・FreeBSD ports ... 村上さん
> ・MacOSX Fink [PowerPC, Intel] ... 岩前さん
> ・Windows (MSWin32) 全部入りパッケージ ... 乙部さん
> ・Cygwin <setup.exe> ... 神代
> 
> これらは, 今後も継続していけたらと思います. (お願いします)

現状とりまとめ有難うございます。

> 64bit PC もだんだん普及してきたので, Linux ではそれに対応したパッケー
> ジも用意できるといいですね(今はFedoraだけ).
> RPMは CentOS あたりも用意できるといいかなーと妄想はしています.

そうですね。皆さんに無理がかからない範囲で広げていけたらと思い
ます。実際に使ってる人がボランティアしてくれるのがベストで
すね。(上のリストも多くはそうなってますね。)

> 2. プラットホームに依存しないインストーラ
> 
> これら以外の環境のために, 一括インストーラ numru-install.rb なるものを
> 用意していました.
> これはRubyスクリプトで, Rubyさえあれば動き, DCLやnetCDFも含めて電脳製
> 品を一括インストールでき, 依存関係も考えてくれるように作ったものです.
> が, 自前でインストーラの枠組みを作るのはなかなか難しく, 設計があまりよ
> くなかったのもあって(これは私が悪いんですが), 現状ではほとんどメンテで
> きていません.
> 
> そこで, こいつはやめて, RubyGems のパッケージを作るのがいいんじゃない
> かと最近考えています.
> 
> 今回, Ruby on Rails をインストールするときにこれを使った方も多いと思い
> ますが, Rails 人気のおかげで, Rubyライブラリパッケージ管理システムのデ
> ファクトスタンダードになりつつあります.
> # 今後, Ruby本体に取り込む予定もあるようです([ruby-dev:30560])

唯一気になるのが、require でライブラリーをロードできず、
require_gem (最近では単に gem)を使わないとならないことです。
何でインストールしようが require で済んでほしいと思うのですが、
gem 対応の require もあるのでしょうか。require を再定義
すればいいだけなので、数行でかけるものではありますが...。
さすがに本体に取り込まれた暁には require で済むように
なるんでしょうね...?

# しかし 1.8.6 が出たとたん、rails がこけるという話が出てますね。
   rails のコーディングはトリッキーなんだから、誰かリリース前に
   テストしたほうがいいと思うんだけど...。

> 具体的な作りかたはだいたいリサーチしたのですが, 実際に作成するのはまだ
> これからです. 問題点があればまた報告したいと思います.
> NArrayなどの外部製品のgemも, ないようなので作るつもりです.
> 
> これができれば, Gfdnaviのインストールが
> 
> ・DCL, netCDFあたりは, 手動でビルド, インストールする
> ・Rubyはもちろん必要
> ・gem をインストール
> ・電脳製品を gem install
> ・Rails を gem install
> ・Gfdnavi を手動で取得, 展開, rails gfdnavi
> 
> というような手順でできるようになります.
> ----------------------------------------------------------------------
> 
> 以下は, 堀之内さんが流してくださったメモに対する反応です.
> パッケージング関連のところだけ.
> 
> At Mon, 12 Mar 2007 13:06:40 +0900,
> Takeshi Horinouchi wrote:
> > 
> >     * 配布版パッケージング再構成
> >       * 現在は DLして展開したものをそのまま編集して使わせてるが、
> >         DL and (展開 or インストール)後、運用用の場所に改めて
> >         展開させる(各userのディレクトリーとか /var とか)。
> >         * パッケージには運用用の場所に展開するための setup コマンド
> >           を含めるか、それ自体を setup.exe にする。
> >         * gfdnavi の配布版パッケージングと、各自の運用用コピーの分離
> >           * gfdnaviがバージョンアップしてもやり直ししないで済むように
> >           * 配布版からはじめても cvs 版も使えるのが良い。
> 
> これは, Rails みたいな感じをイメージしたらよいでしょうか?
> つまり,
> ・インストール時には, Gfdnavi はコマンド+ライブラリ(コピー元資源)のか
>   たちになっていて, この時点では運用用の資源は展開されていない.

はい。

> ・自分が運用したい場所で gfdnavi_setup みたいなコマンドを実行すると,
>   そこに資源がコピーされ, rails コマンドも実行される

DL&展開して出来るコマンドを実行すると運用場所を聞くというのが
いいと思ってます。windows の setup コマンドの多くがそうである
ように。セットアップコマンドを /usr 以下等にインストール
させるようにはしなくていいのではないかと思ってます。
ただの setup コマンドなので、個別linux ディストリビューション用
のパッケージングはしないで済むようにしたい。

# すでに西澤さんが install.rb という名前で作り始めてます。
   今の置き方だと切り分けが難しくないかちょっと気になります。
   (gfdnavi/ ディレクトリーと併置がいいのでは?
   gfdnavi-0.2.tar.gz を展開すると、setup.exe と gfdnavi/ ディレク
   トリができると言う風に。gfdnavi/ ディレクトリーは tar.gz で
   固めてあってもいいです。)

> というような.
> Gfdnavi をパッケージングするなら, そのように変えないといけないだろうな
> と私も考えていました.
> 
> >       * ユーザディレクトリ や /var にインストール後に、make setup
> >         に続けられるようにするとよいだろう(後で setup するオプション
> >         も残す。)
> 
> すみません, これはちょっとよくわからなかったです.

イメージはこんな感じ。

   % tar xvzf gfdnavi-0.2.tar.gz     # --> gfdnavi-0.2 が展開される
   % cd gfdnavi-0.2
   % ./setup.exe
   Gfdnavi setup.
   Which directory do you want to copy and run Gfdnavi? [e.g., 
   /var/cache/gfdnavi or a users directory] :  ~koshiro/GFDNAVI (RET)
   copying gfdnavi...
   
   Would you like to proceed to Gfdnavi configuration
   (such as data directory registering and user account creation)?
   Or you can do it later as follows:
     % cd ~koshiro/GFDNAVI/gfdnavi/
     % rake setup
   [Yn];  y (RET)
   Starting gfdnavi configuration...

ちなみに、常時運用用にインストールする場合、linux なら
/var の下のどこかがいいのではないかと思いますが、お勧めは
どういうパスでしょう?

--
堀之内 武  <horinout@xxxxxxxxxxxxxxxxxx>
611-0011 宇治市五ヶ庄  京都大学生存圏研究所