rpkg

Ruby Package Management System


Table of Contents
インストール
チュートリアル
パッケージを参照、インストール、更新、削除する
パッケージを構築する
Ruby Package Management System

インストール

rpkgはやまだあきら氏のURI パッケージと、うえのかつひろ氏のzlib パッケージを必要とします。 まずこれらをインストールしてください。

rpkgを展開したディレクトリ上で、次のコマンドを実行して下さい。

Note

インストール方法に応じて、 最後の段階でrootになる必要があるかもしれません。

	$ ruby install.rb config
	$ ruby install.rb setup
	# ruby install.rb install
      

もしパッケージベースを自分だけが(ホームディレクトリのみで) 利用するなら、次のコマンドが設定ファイルの作成に役立つでしょう。

	$ rpkg-util setup-local
      

rpkgはまだ開発中のソフトウェアなので、この方法をとることをお 勧めします。

また、自分用のlibディレクトリやbinディレクトリを、Rubyと 現在利用しているシェルそれぞれが見つけられるようにする必要があるで しょう。例えばBashを使っている場合は次の行を~/.bashrc に追加することで実現できます。

Note

ここでは実行ファイルを~/binに、 ライブラリを~/lib/rubyに入れると仮定 します.

	PATH="~/bin:${PATH}"
	export RUBYLIB="~/lib/ruby"
      


チュートリアル


パッケージを参照、インストール、更新、削除する

このチュートリアルでは、インストールの章で書かれたように 自分用にパッケージベースが作られていることを前提とします。

  1. オンラインになって、次のコマンドを実行して下さい:

    	      $ rapt update
    	    

    これでパッケージのリストがパッケージの説明や他の情報 とともにダウンロードされます。

  2. データベースに問い合わせるには、"search" コマンドを使います。例えば、16進数(hex numbers)と関係のある パッケージを探すには、次のように書きます:

    	      $ rapt search hex
    	    

    出力結果には次の内容が含まれるでしょう:

    	      xbuiltins - Additions to builtin classes	      
    	    

    ここではこの"xbuiltins"パッケージを この先のチュートリアルで例として用います。

  3. このパッケージについてさらに情報を引き出すためには、 次のようにして下さい:

    	      $ rapt show 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"が参照された項目が 確認できます。

  4. このパッケージをインストールするためには(オンラインで)、 次のコマンドを実行します:

    	      $ rapt install xbuiltins
    	    

    もし対象パッケージがすでにインストールされていても、 "write"コマンドは安全に実行できます。 もしデータベースが更新されて新しいバージョンを入手可能なら、 そちらがダウンロードされて古いものが置き換えられるでしょう。 新しいものがでていないならなにも行われません。

  5. パッケージを削除するには以下のようにします:

    	      $ rapt remove xbuiltins
    	    


パッケージを構築する

あるモジュールをパッケージ化する手順は、各部分をある階層に 従って配置し、説明文やバージョン情報といったメタデータを含むファ イルを記述し、最後にrpkgを実行してそれらをパッケージに仕上げると いったものになります。現時点ではpure Rubyなモジュールのみのサポ ートとなります。

このチュートリアルの進行にあたり、あなた自身が書いたモジュ ールを選んでパッケージングすることができます。また、tutorial ディレクトリにあるサンプルの参照も可能です。ここからの手順で この文書では"foo"という名前のパッケージを構築するこ とを想定します。

  1. 作業ディレクトリとしてfooworkdir を作成する

  2. まずfooworkdir/binfooworkdir/libfooworkdir/docfooworkdir/testディレクトリを 作成して下さい。これらはパッケージの中身を含むことになります。

  3. 次にfooworkdir/doc/foofooworkdir/test/fooディレクトリを 作ります。

  4. ドキュメント(README、ChangeLog、HTMLなど)を fooworkdir/doc/fooに移動します。

  5. ユニットテストスクリプトを fooworkdir/test/fooに移動します。

  6. 実行ファイルがもしあれば fooworkdir/binに移動します。

  7. ライブラリをfooworkdir/lib に入れます。 これをfooworkdir/lib/foo/* のようにすると、Rubyから以下のような形で使うことになります:

    	      require 'foo/foomod'
    	    

  8. パッケージのメタデータを入れるための、 fooworkdir/RPKGを作成します。

  9. テキストで 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フィールド だけが使われています。 とはいえ将来的にはどのフィールド も使われるようになるので、埋めておいて下さい。

  10. 次のコマンドを実行します:

    	      $ rpkg --build foopkgdir
    	    

    すると、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"、のように)。