Я создал APT-репозиторий, используя deb-scanpackages, и, похоже, все прошло хорошо.
Когда я сделал apt-get update
на другом сервере, файл Packages.gz был извлечен, и все выглядело хорошо - пока я не пошел искать пакеты, содержащиеся в этом хранилище (все пакеты создаются локально).
Предложено несколько рекомендаций reprepro
; Я попробовал это. Тот же результат - за исключением того, что мне пришлось перестраивать пакеты со строками Priority и Section в контрольном файле (это нигде не сказано). Утилита prespro также генерирует сложную структуру каталогов, которая требует переписывания записи репозитория на запрашивающем сервере.
Затем я обнаружил, что каталог arch ссылается на i386, а не на amd64 (который был запрошен запрашивающим сервером).
Возможно ли, что система AMD64 не видит пакеты, скомпилированные для i386? Поиск в файлах * Packages в / var / lib / apt / lists показывает, что единственные пакеты для i386 - это те, которые я добавил (остальные файлы для сервера - Ubuntu 10.04.2 LTS).
Сервер, на котором были собраны пакеты, - это Ubuntu 10.04.2 LTS i686; запрашивающий сервер - x86_64.
Я нашел некоторые обсуждения в Debian AMD64FAQ , но он утверждает, что устарел. В нем упоминается расширенный синтаксис для списков репозитория для APT и команда dpkg-subarchitecture - ни одна из которых не работает на локальном сервере AMD64.
Нужно ли создавать два разных набора пакетов?
Да, вам нужно собрать 2 набора пакетов - вы не можете установить пакеты i386 в систему amd64 без принудительной установки, что обычно не следует делать.