reprepro FilterList 忽略包含 :i386 的包

reprepro FilterList 忽略包含 :i386 的包

我正在用來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

FilterListmirror.packages指向包含目前安裝的所有軟體包的檔案。我使用以下命令建立此文件dpkg

dpkg --get-selections > conf/mirror.packages

到目前為止,一切都很好。效果很好。但後來我注意到我的本地儲存庫中缺少一些套件。的輸出dpkg --get-selections包含一些套件名稱以 結尾的行:i386。例子:

libxxf86dga1:i386                               install
libxxf86vm1:i386                                install
lighttpd                                        install

正是那些i386-packages 遺失了。我透過刪除後綴解決了這個問題:

dpkg --get-selections | sed 's/:i386//g' > conf/mirror.packages

現在我的問題是:

  1. 這是 reprepro 中的錯誤嗎?還是我做錯了什麼?手冊頁指出FilterList採用dpkg --get-selections.
  2. 有什麼方法可以dpkg抑制架構嗎?
  3. 為什麼有些包有:i386後綴,但大多數沒有?
  4. 為什麼架構部分是套件名稱的一部份?是否可以在同一系統上使用不同架構的相同套件?

答案1

:i386 不是套件名稱的一部分,而是指示該套件所適用的體系結構。這是 debian 引入從多個架構(“multiarch”)安裝軟體包的支援的結果。

https://wiki.debian.org/Multiarch了解更多。

我不確定是什麼決定了是否為特定套件顯示架構。最初我以為只有當套件來自外國架構時才會顯示,但從 nharrer 的評論來看我顯然錯了。看看 nharrer 的列表並考慮其他上下文,我在中看到了 :<architecture> 我認為它可能會為所有“multi-arch:same”包顯示它

我懷疑 reprepro 中的過濾器列表功能早於多體系結構,不理解 :i386 的含義,因此將其視為套件名稱的一部分。

相關內容