backports.debian.org の活用
第 75 回 2011 年 4 月度

岩松 信洋 iwamatsu@debian.org
IRC nick: iwamatsu

2011 年 4 月 16 日

アジェンダ

1
2
3

backports.debian.org とは
backports.debian.org で提供されているパッケージを使う
backports.debian.org にパッケージをアップロードするbackports.debian.org とは
testing や unstable で提供されているパッケージを既にリリースされた stable および old-stable にバックポートしたパッケージを提供するプロジェクト。

backports.debian.org とは
testing や unstable で提供されているパッケージを既にリリースされた stable および old-stable にバックポートしたパッケージを提供するプロジェクト。
バックポートされることによって、 stable で提供されているパッケージより新しいバージョンを使うことができるようになる。

backports.debian.org とは
testing や unstable で提供されているパッケージを既にリリースされた stable および old-stable にバックポートしたパッケージを提供するプロジェクト。
バックポートされることによって、 stable で提供されているパッケージより新しいバージョンを使うことができるようになる。
アップロードされるパッケージには、元のバージョンに bpo{Debian リリース番号 }+{ ビルド番号 } というバージョンが付加される。

backports.debian.org とは
testing や unstable で提供されているパッケージを既にリリースされた stable および old-stable にバックポートしたパッケージを提供するプロジェクト。
バックポートされることによって、 stable で提供されているパッケージより新しいバージョンを使うことができるようになる。
アップロードされるパッケージには、元のバージョンに bpo{Debian リリース番号 }+{ ビルド番号 } というバージョンが付加される。
セキュリティアップデートにも対応している。
DSA（ Debian Security Announce）ではなく BSA（ Backports Security Announce）となります。また、DSA とは連動していない点に注意が必要。

backports.debian.org とは
testing や unstable で提供されているパッケージを既にリリースされた stable および old-stable にバックポートしたパッケージを提供するプロジェクト。
バックポートされることによって、 stable で提供されているパッケージより新しいバージョンを使うことができるようになる。
アップロードされるパッケージには、元のバージョンに bpo{Debian リリース番号 }+{ ビルド番号 } というバージョンが付加される。
セキュリティアップデートにも対応している。
DSA（ Debian Security Announce）ではなく BSA（ Backports Security Announce）となります。また、DSA とは連動していない点に注意が必要。
2010 の 9 月、正式に debian.org インフラの一部になった。

backports.debian.org とはbackports.debian
で提供されているパッケージを使うどのようなパッケージが提供されているのか

現在 backports.debian.org / squeeze-backports で提供されているパッケージは http://backports.debian.org/changes/squeeze-backports.html から参照できる。
既に apt-line に登録している場合には、 aptitude で確認できる$ sudoaptitude search ’?origin(Debian Backports)’ -F ’%1

/etc/apat/sources.list に apt-line を追加する/etc/apat/sources.list に backports.debian.org の apt-line を追加する。
squeeze 向けの場合：
deb http://backports.debian.org/debian-backports \squeeze-backports main

contrib や non-free も提供しているので、有効にしたい場合には apt-line に追加する。

追加したらリポジトリ情報を更新する。
$ sudo apt-get updateまたは$ sudo aptitude updateパッケージをインストールする

backports.debian.org で提供されているパッケージをインストールするには、 apt や aptitude の -t オプションを使ってディストリビューションを指定する。
postgresql-9.0 パッケージをインストールする場合：$ sudo apt-get -t squeeze-backports install postgresql-9.0
または$ sudo aptitude -t squeeze-backports install postgresql-9.0

パッケージを更新する

backports.debian.org で提供されているパッケージに更新があった場合、 apt-get update ; apt-get upgrade を実行しても、パッケージは更新されない。
これは Pin-Priority の値が 100（ 指定すればインストールできるが、アップグレードの対象にはならない）に設定されているため。
更新するには、 apt の preferences を使って、パッケージのプライオリティを設定する必要がある。

パッケージを更新する/etc/apt/preferences に以下のような設定をしておくと、backports.debian.org で提供されているパッケージが更新された場合、 apt-get update ; apt-get upgrade で更新されるようになる。
Package: *Pin: release a=squeeze-backports
Pin-Priority: 200

これは、セキュリティアップデートを apt-get update ;apt-get upgrade で行いたい場合に必要な設定でもある。

Pin-Priority の値
常に backports.debian.org で提供されているパッケージを利用するようには、 Pin-Priority の値を 500 に設定しておくとよい。
Pin-Priority の値と意味（ 一部）:

Pin-Priority
100
101-500

500

意味
現在インストールされているパッケージの 優先値
通常のアーカイブよりも優先度が低いが、指定してインストールしたものはアップグレードの対象になる
ターゲットリリースに指定されていない通常のアーカイブの優先セキュリティアップデート

backports.debian.org で提供されているパッケージのセ
キュリティアップデートは DSA では行われない。
BSA として行われ、 誰かがアップロードを行う。
（ backports チームが監視していると思われる。）
パッケージアップデートのアナウンスは
backports-announce メーリングリスト（ http://lists.debian.org/debian-backports-announce）
で行われる。
backports.debian.org を使っている人はメーリングリストに登録しましょう。

バグレポート

今のところ、 backports.debian.org で提供されているパッ
ケージは Debian BTS（ http://bugs.debian.org） にバグレポートしてはいけないことになっている。
なにか問題があった場合には、 backports メーリングリスト（ http://lists.debian.org/debian-backports）に投稿する。

backports.debian.org は Debian の正式なインフラなので、 Debian BTS に統合される可能性もある。その場合には、 reportbug パッケージからもバグレポートできるようになるかもしれない。

欲しいパッケージがない場合

自分の欲しい機能がまだ stable で提供されているパッケージにない！ しかし、 unstable にあるパッケージにはあるようだ。どうすればいい？
自分でビルドして使う。

欲しいパッケージがない場合

自分の欲しい機能がまだ stable で提供されているパッケージにない！ しかし、 unstable にあるパッケージにはあるようだ。どうすればいい？
自分でビルドして使う。

2ch に書く。

欲しいパッケージがない場合

自分の欲しい機能がまだ stable で提供されているパッケージにない！ しかし、 unstable にあるパッケージにはあるようだ。どうすればいい？
自分でビルドして使う。

2ch に書く。
debian-users@l.d.o.j に相談する。

欲しいパッケージがない場合

自分の欲しい機能がまだ stable で提供されているパッケージにない！ しかし、 unstable にあるパッケージにはあるようだ。どうすればいい？
自分でビルドして使う。

2ch に書く。
debian-users@l.d.o.j に相談する。
パッケージメンテナに相談する。

欲しいパッケージがない場合自分の欲しい機能がまだ stable で提供されているパッケージにない！ しかし、 unstable にあるパッケージにはあるようだ。どうすればいい？
自分でビルドして使う。

2ch に書く。
debian-users@l.d.o.j に相談する。
パッケージメンテナに相談する。
backports.debian.org で提供してもらうように依頼する。
（ http://lists.debian.org/debian-backports/）

backports.debianを 使っ た
パッ ケージの提供方法

backports.debian.org を使ったパッケージの提供
方法
backports.debian.org は誰でも利用可能。
パッケージをアップロードするには、 Debian Developer（ 以下、 DD）である必要がある。
Debian Maintainer もパッケージをアップロードおよび更新はできない。
DD 以外はスポンサーアップロードをしてもらう必要がある。
自分がメンテナンスしているパッケージ以外でもアップロードできる。

backports.debian.org キーリングへの登録

DD でもすぐにアップロードできるわけではない。
Debian Developer キーリングと同じ鍵をbackports.debian.org キーリングへの登録してもらう必要がある。
申請はリクエストトラッカー（ https://rt.debian.org/Ticket/Create.html?Queue=20）を使って行う。
申請すると、数日後にキーリングに追加される。

アップロードするパッケージについて

backports.debian.org にアップロードするパッケージはtesting や unstable にあるパッケージをリビルドしてアップロードするのではなく、パッケージそのものに手を加える必要がある。
注意する点もいくつかある。

ディストリビューションを コードネー
ム-backports に変更する

debian/changelog では、ディストリビューションにstable や unstable を設定しますが、 backports.debian.orgにアップロードするパッケージのディストリビューションには コードネーム-backports を指定する必要がある。例
えば、 squeeze へバックポートしたい場合には、squeeze-backports とする。

Debian バージョンに bpo{Debian リリース番号}+{ ビルド番号 } を付加する
backports.debian.org にアップロードされるパッケージには他のディストリビューションとの違いが分かるようにDebian バージョンに bpo{Debian リリース番号 }+{ ビルド番号 } というバージョンを付加する必要がある。
unstable にある パッケージ foo の 1.2.3-4 をアップロードし squeeze-backports にアップロードしたい場合には、 1.2.3-4 bpo60+1 とする。 60 は squeeze のリリース番号（ 6.0）。
アップロードしたパッケージ問題があり、再アップロードしたい場合には、 1.2.3-4 bpo60+2 とし、ビルド番号をインクリメントする。

1 bluez (4.91-1~bpo60+1) unstable; urgency=low23* Rebuild for squeeze-backports.
45 -- Nobuhiro Iwamatsu <iwamatsu@debian.org> Sat, 16 Apr 20
67 bluez (4.91-1) unstable; urgency=low
89* New upstream release.

backports だけの修正を行わない

特定のバージョンで発生するのはバグなので、 unstable等で修正して、それを backports.debian.org にバックポートする。

squeeze および backports の環境でパッケージがビルドできるか確認する
backports.debian.org では、 buildd と同様に複数のアーキテクチャ向けにパッケージがビルドされる。
stable および backports の環境でパッケージがビルドできない場合、 FTBFS（ Fail To Build From Source）になるため、注意が必要。
ABI の問題があるため、動作確認は慎重に行う必要があります。
pbuilder1 や cowbuilder2 を使って、クリーンルームからのビルドチェックを行う。
バックポートに足りないパッケージがあるようなら、そのパッケージもバックポートする事。
1
2

http://packages.qa.debian.org/p/pbuilder.html
http://packages.qa.debian.org/c/cowdancer.html

インストールとアップデートの確認をする

パッケージができても、インストールとアップデートがうまく動作しない場合がある。
これは、 piuparts3 を使って確認できる。

3

http://packages.qa.debian.org/p/piuparts.html

パッケージのアップロード先

通常、パッケージは ftp.upload.debian.org にアップロードされる。

backports.debian.org の場合には、backports-master.debian.org にアップロードする必要がある。
アップロードする前に、 dput や dupload の設定ファイルに backports.debian.org 向けの設定を加えておく。

dupload の場合$cfg{’bpo’} = {fqdn => ‘‘backports-master.debian.org’’,incoming => ‘‘/pub/UploadQueue/’’,};

dput の場合[bpo]
fqdn = backports-master.debian.org
incoming = /pub/UploadQueue/
method = ftp
login = anonymous
allow_dcut = 1

セキュリティアップロードをする

backports-master.debian.org にセキュリティアップロードを行う場合には BSA 番号を割り振ってもらう必要がある。
この番号は backports チームで管理しているので、team@backports.debian.org に問い合わせる事。
セキュリティアップロードの内容を PGP/GPG でサインして、 backports-announce メーリングリスト（ http://lists.debian.org/debian-backports-announce）にアナウンスする。

backports.debian.org の動作backports.debian.org の動作は buildd network と同じ。アップロード先やパッケージリポジトリが異なるだけで、 builddnetwork を利用したパッケージのビルドを行っている。

まとめ

まとめ
ユーザが backports.debian.org を使う場合、新しいバージョンを使えるというメリットがあるので使ったほうが良い。
BTS 等はうまく連動していないのと、パッケージメンテナではなくてもアップロードできてしまうので、問題があった場合には調整が必要になることがあるかも。
このような場合には debian-backports メーリングリストをうまく活用していく必要がある。
apt の pin の設定を正しくしておかないと、うまくアップデートしなかったりするので、注意が必要。
開発者の場合には、メンテナンスコストが増えるだけであまりメリットがあるようには思えない（ 個人的に）。
しかしユーザからの依頼があった場合には考慮する必要があるので、仕組みだけは知っておくとよいかも。
もう少し使いやすくするには他の Debian インフラとの連携が密になる必要があると思う。