rpkgはやまだあきら氏のURI パッケージと、うえのかつひろ氏のzlib パッケージを必要とします。 まずこれらをインストールしてください。
rpkgを展開したディレクトリ上で、次のコマンドを実行して下さい。
インストール方法に応じて、 最後の段階でrootになる必要があるかもしれません。 |
もしパッケージベースを自分だけが(ホームディレクトリのみで) 利用するなら、次のコマンドが設定ファイルの作成に役立つでしょう。
rpkgはまだ開発中のソフトウェアなので、この方法をとることをお 勧めします。
また、自分用のlibディレクトリやbinディレクトリを、Rubyと 現在利用しているシェルそれぞれが見つけられるようにする必要があるで しょう。例えばBashを使っている場合は次の行を~/.bashrc に追加することで実現できます。
ここでは実行ファイルを~/binに、 ライブラリを~/lib/rubyに入れると仮定 します. |
このチュートリアルでは、インストールの章で書かれたように 自分用にパッケージベースが作られていることを前提とします。
オンラインになって、次のコマンドを実行して下さい:
これでパッケージのリストがパッケージの説明や他の情報 とともにダウンロードされます。
データベースに問い合わせるには、"search" コマンドを使います。例えば、16進数(hex numbers)と関係のある パッケージを探すには、次のように書きます:
出力結果には次の内容が含まれるでしょう:
ここではこの"xbuiltins"パッケージを この先のチュートリアルで例として用います。
このパッケージについてさらに情報を引き出すためには、 次のようにして下さい:
結果は以下のようになるはずです:
Package: xbuiltins Version: 0.0.1 Section: misc Priority: optional Architecture: all Depends: Conflicts: Replaces: Maintainer: Massimiliano Mirra mmirra@libero.it Source: Description: Additions to builtin classes Filename: pool/main/x/xbuiltins_0_0_1_all.rpk This package contains useful addition to built-in classes. Some examples: . String#csv_split String#hexdump Array#random Array#approx Array#rows2cols |
下から4行目に、"hex"が参照された項目が 確認できます。
このパッケージをインストールするためには(オンラインで)、 次のコマンドを実行します:
もし対象パッケージがすでにインストールされていても、 "write"コマンドは安全に実行できます。 もしデータベースが更新されて新しいバージョンを入手可能なら、 そちらがダウンロードされて古いものが置き換えられるでしょう。 新しいものがでていないならなにも行われません。
パッケージを削除するには以下のようにします:
あるモジュールをパッケージ化する手順は、各部分をある階層に 従って配置し、説明文やバージョン情報といったメタデータを含むファ イルを記述し、最後にrpkgを実行してそれらをパッケージに仕上げると いったものになります。現時点ではpure Rubyなモジュールのみのサポ ートとなります。
このチュートリアルの進行にあたり、あなた自身が書いたモジュ ールを選んでパッケージングすることができます。また、tutorial ディレクトリにあるサンプルの参照も可能です。ここからの手順で この文書では"foo"という名前のパッケージを構築するこ とを想定します。
作業ディレクトリとしてfooworkdir を作成する
まずfooworkdir/bin、 fooworkdir/lib、 fooworkdir/doc、 fooworkdir/testディレクトリを 作成して下さい。これらはパッケージの中身を含むことになります。
次にfooworkdir/doc/fooと fooworkdir/test/fooディレクトリを 作ります。
ドキュメント(README、ChangeLog、HTMLなど)を fooworkdir/doc/fooに移動します。
ユニットテストスクリプトを fooworkdir/test/fooに移動します。
実行ファイルがもしあれば fooworkdir/binに移動します。
ライブラリをfooworkdir/lib に入れます。 これをfooworkdir/lib/foo/* のようにすると、Rubyから以下のような形で使うことになります:
パッケージのメタデータを入れるための、 fooworkdir/RPKGを作成します。
テキストで fooworkdir/RPKG/controlを記述します。 これは以下のようなファイルになります:
Package: foo Version: 0.0.1 Section: net Priority: optional Architecture: all Depends: Conflicts: foopkg-beta Replaces: foopkg-beta Maintainer: Mr. Maintainer foo@bar.com Source: Description: A foo package Everything here is the long description. Every line must be indented by one space. . Blank lines are not allowed, use a point as in the line above. |
いくつか補足事項:
現時点では、"Package"、 "Version"、"Architecture"、 "Descriptiong"、そしてDescriptionフィールド だけが使われています。 とはいえ将来的にはどのフィールド も使われるようになるので、埋めておいて下さい。
次のコマンドを実行します:
すると、foo_0_0_1_all.rpk というパッケージがカレントディレクトリに存在するはずです。
このファイルを使っていくつかのことができます:
パッケージへ情報を問い合わせるのにrpkg --info package.rpkとし(メタデータの表示)と rpkg --contents package.rpk (中身を表示)が使えます。
中身を取り出すのにrpkg --control package.rpk(メタデータの抽出)と rpkg --extract package.rpk (中身の抽出)が使えます。
パッケージをパッケージベースにコマンドrpkg --install package.rpkを実行してインストールし、 その後、rpkg --remove package_nameで削除 しましょう(注意:後者はパッケージ名だけを引数に要求します - もしパッケージファイル名がfoo_0_0_1_all.rpk なら"foo"、のように)。