apt-ftparchive を使って debパッケージの aptリポジトリを作る

debian を使う最大の利点は apt によるパッケージ管理です。既存の debパッケージが無かったり自分でパッチを当てたりしてソースコードからビルドする場合でも、debパッケージにまとめて apt で管理すると削除や更新がとてもらくちんになります。さて、その作った debパッケージはどこに置いておきましょう?

このページでは debian squeeze で apt-ftparchive を使って debパッケージの aptリポジトリを作る方法をメモしておきます。

apt-ftparchive を使う為にまずは apt-utilsパッケージをインストールします。

$ sudo apt-get install apt-utils

そして aptリポジトリを作りたいディレクトリに移動して、debパッケージ作成時に出来たファイルをそこへ放り込み、

$ apt-ftparchive sources . > Sources                                # Sourcesファイルを作る
$ apt-ftparchive packages . > Packages                              # Pakagesファイルを作る
$ apt-ftparchive contents . > Contents-$(dpkg --print-architecture) # Contentsファイルを作る
$ apt-ftparchive release . > Release                                # Releaseファイルを作る
$ gzip -c9 Sources > Sources.gz                                     # Sourcesファイルを gzに圧縮する
$ gzip -c9 Packages > Packages.gz                                   # Pakagesファイルを gzに圧縮する
$ gzip -c9 Contents-$(dpkg --print-architecture) > Contents-$(dpkg --print-architecture).gz # Contentsファイルを gzに圧縮する
$ gpg --sign -b -a -o Release.gpg Release                           # Releaseファイルに GPG署名を作る

debian の通常の環境なら gnupgパッケージは既にインストールされていると思います。gpg で署名する為には、GnuPG を使って暗号化したり署名したりするを参考にしてあらかじめ自分用にGPGの秘密鍵と公開鍵を作っておきましょう。ちなみにあんまり関係ありませんけどもぽちの公開鍵の Key ID は、ぽち*ぷ〜ちの各記事の一番下に書いてありますので pgp.nic.ad.jp などの公開鍵サーバから公開鍵を取って来れます。

aptリポジトリを置きたい場所が /var/www/debian/ だと仮定して例を挙げると、ローカルで利用するだけの場合は

deb file:///var/www/debian/ ./

Webサーバで公開する場合には

deb http://host/debian/ ./

を /etc/apt/sources.list に追記しましょう。

新しく作った aptリポジトリを追記して sudo apt-get update すると署名エラーが出ると思います。ローカルで利用するだけなら無視しても問題無いのですが、折角 Release.gpg も作ったので、apt の鍵束に自分の公開鍵をインポートして使いましょう。

$ sudo apt-key add [自分の公開鍵ファイル]

動作確認環境 : Debian GNU/Linux 7.0 wheezy

戻る


Last updated : 2013/08/21
Author : 犬山ぽち丸 / INUYAMA Pochimaru / Pochimaru Inuyama
E-mail : pochi@hoshinoumi.net
Key ID : 4A1B5E85
Key fingerprint : 4605 4D40 6154 20C1 5592 3E54 5A37 FEE9 4A1B 5E85

正当な XHTML 1.1 です 正当な CSS です