Я использую 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
Теперь мои вопросы:
FilterList
берет выходной формат dpkg --get-selections
.dpkg
подавить архитектуру? :i386
суффикс, но большинство не имеет?: i386 не является частью имени пакета, а указывает на архитектуру, для которой этот пакет предназначен. Это результат того, что в Debian появилась поддержка установки пакетов с нескольких архитектур («мультиархитектур»).
См. https://wiki.debian.org/Multiarch для получения дополнительной информации.
Я не уверен, что определяет, будет ли показана архитектура для конкретного пакета. Сначала я думал, что это отображается только тогда, когда пакет был от иностранной архитектуры, но, судя по комментариям nharrer, я явно ошибался. Глядя на список nharrer и размышляя о других контекстах, я видел:
. Я подозреваю, что функциональность списка фильтров в репозитории предшествует multiarch, не Не понимаю, что означает: i386, и поэтому рассматривает его как часть имени пакета.