
reprepro
部分的なローカル Debian ミラーを作成するために使用しています。conf/updates
ファイルは次のようになります。
Name: update-wheezy
Method: http://ftp.tu-graz.ac.at/mirror/debian
Suite: wheezy
Components: main contrib non-free
Architectures: i386
FilterList: purge mirror.packages
FilterList
mirror.packages
現在インストールされているすべてのパッケージを含むファイルを指します。このファイルは次のように作成しますdpkg
:
dpkg --get-selections > conf/mirror.packages
ここまでは順調です。うまく動作しています。しかし、ローカル リポジトリにいくつかのパッケージが不足していることに気付きました。 の出力には、dpkg --get-selections
パッケージ名が で終わる行がいくつか含まれています:i386
。例:
libxxf86dga1:i386 install
libxxf86vm1:i386 install
lighttpd install
まさにそれらのi386
パッケージが欠落しています。私はサフィックスを削除することでこれを回避しました:
dpkg --get-selections | sed 's/:i386//g' > conf/mirror.packages
さて、私の質問は次のとおりです。
- これは reprepro のバグでしょうか? それとも私が何か間違っているのでしょうか? man ページには、
FilterList
が の出力形式を取ると記載されていますdpkg --get-selections
。 dpkg
アーキテクチャを抑制する方法はありますか?:i386
一部のパッケージにはサフィックスが付いているのに、ほとんどのパッケージには付いていないのはなぜですか?- そもそも、パッケージ名にアーキテクチャが含まれているのはなぜですか? 同じシステム上で異なるアーキテクチャの同じパッケージを使用することは可能ですか?
答え1
:i386 はパッケージ名の一部ではなく、パッケージが対象とするアーキテクチャを示しています。これは、Debian が複数のアーキテクチャ (「マルチアーキテクチャ」) からのパッケージのインストールのサポートを導入した結果です。
見るhttps://wiki.debian.org/マルチアーチ詳細については。
特定のパッケージのアーキテクチャが表示されるかどうかを決定する要因については確信が持てません。最初はパッケージが外部のアーキテクチャの場合にのみ表示されると思っていましたが、nharrer のコメントから明らかに間違っていました。nharrer のリストを見て、私が見た他のコンテキストについて考えると、:<architecture> はすべての "multi-arch:same" パッケージで表示されるのではないかと思います。
reprepro のフィルターリスト機能は multiarch より前のものであり、:i386 の意味を理解していないため、パッケージ名の一部として扱っているのではないかと思います。