apt で debian パッケージを管理する設定の手引

この文書について

この文書は, 自作した debian パッケージを apt によって取得や管理 できるように設定する方法を示した手引きである.

なお, cc-env/debian-dennou ディレクトリでは, <URL:Makefile.apt> によってこれらの作業の多くを自動化している. Makefile.apt の使い方に関しては実ファイルを参照されたい.

ディレクトリ構成

ディレクトリ構成は flat style を用いている. すなわち, 作成されたパッケージは全て /GFD_Dennou_Club/ftp/arch/cc-env/debian-dennou/CODENAME 以下に置く. CODENAME は etch, lenny, sid などであり, stable/testing/unstable は使わない.

作業時の注意

cc-env グループに属する他のメンバーが編集することを考え, ファイルやディレクトリの 作成・編集を行なう前に必ず以下のようにしてから作業を行なうこと.

$ sg cc-env
$ umask 002

リポジトリの作成

まず conf ファイルを作成する. conf ファイルの例は:

// -------------------------------------------------------------
// Release ファイルに付加する情報の設定
//
// 2007/06/23 佐々木洋平 作成開始
//
//-------------------------------------------------------------
// アーカイブの提供者の情報とラベル
APT::FTPArchive:Release::Origin "GFD Dennou Club";
APT::FTPArchive::Release::Label "GFD Dennou Club";
// 提供する Debian のバージョン
APT::FTPArchive::Release::Suite "stable";
APT::FTPArchive::Release::Version "5.0";
APT::FTPArchive::Release::Codename "lenny";
// 提供するアーキテクチャ.
// APT::FTPArchive::Release::Architectures "i386" "amd64";
// 提供するセクション名. 今の main のみ.
APT::FTPArchive::Release::Components "main";
// アーカイブの説明.
APT::FTPArchive::Release
{ 
  Description {"Resouces provided by GFD Dennou Club's member. see http://www.gfd-dennou.org";}
}

である.

リポジトリの更新は cc-env グループもしくはユーザになったのちに apt-ftparchive コマンドによって行なう. 例えば Packages の更新は /GFD_Dennou_Club/ftp/arch/cc-env/debian-dennou ディレクトリにおいて

$ apt-ftparchive -c AptConf_for_lenny.txt \
   packages lenny/ > lenny/Packages
$ gzip -c9 < lenny/Packges > lenny/Packages.gz
$ bzip2 -c9 < lenny/Packges > lenny/Packages.bz2

とする. Sources, Contents についても同様に実行する.

最後に Release ファイルを更新し, Release ファイルに GPG 署名を行なう.

$ apt-ftparchive -c AptConf_for_lenny.txt release lenny/ > lenny/Release
$ gpg --sign --default-key AEE995F4 -o lenny/Release.gpg lenny/Release

リポジトリの更新

Makefile.apt には apt-ftparchive を用いて apt リポジトリを更新するため の rule がある. 更新時には

$ sudo -u cc-env
$ make scan

で良い. 詳細は実ファイルを参照されたい.

リポジトリへのパッケージの更新 or 新しいパッケージの追加

新たなパッケージが new-queue に入った場合

を審査すること. lintian, pbuilder, piupart については man を参照されたい.