Назад | Перейти на главную страницу

reppro 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

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

Теперь мои вопросы:

  1. Это ошибка в реппро? Или я что-то не так делаю? На странице руководства указано, что FilterList принимает выходной формат dpkg --get-selections.
  2. Есть ли способ получить dpkg подавить архитектуру?
  3. Почему в некоторых пакетах есть :i386 суффикс, но у большинства нет?
  4. Почему в любом случае архитектура является частью имени пакета? Можно ли использовать один и тот же пакет для разных архитектур в одной системе?

: I386 не является частью имени пакета, но указывает на архитектуру, для которой этот пакет предназначен. Это результат того, что в Debian появилась поддержка установки пакетов с нескольких архитектур («мультиархитектур»).

Видеть https://wiki.debian.org/Multiarch для получения дополнительной информации.

Я не уверен, что определяет, отображается ли архитектура для конкретного пакета. Сначала я думал, что это отображается только тогда, когда пакет был от иностранной архитектуры, но, судя по комментариям nharrer, я явно ошибался. Глядя на список nharrer и размышляя о других контекстах, я видел: <architecture> в, я думаю, он может показывать его для всех пакетов "multi-arch: same"

Я подозреваю, что функциональность списков фильтров в репозитории предшествует многоархивности, не понимает, что означает: i386, и поэтому рассматривает их как часть имени пакета.