Во-первых, вопрос заголовка: если каталог debian уже существует, перейдите в исходный каталог (каталог, содержащий каталог debian) и вызовите dpkg-buildpackage. Мне нравится запускать его со следующими параметрами:
dpkg-buildpackage -us -uc -nc
что означает не подписывать результат и не чистить.
Как я могу проверить, правильно ли я указал все зависимости?
Получение зависимостей - черное искусство. «Официальный» способ проверки зависимости сборки - это сборка пакета с использованием только базовой системы, «необходимых для сборки» пакетов и указанных вами зависимостей сборки. Не знаю общего ответа для обычных зависимостей, просто войдите :)
Как я могу запретить системе обновлений устанавливать старую версию в репо при обновлении? Как я могу предотвратить установку системой более новой версии (когда она отсутствует), перезаписывающей мой пользовательский пакет?
Мои знания об этом могут быть устаревшими, но для решения обоих вопросов: используйте dpkg --set-selections. Предполагая, что nullidentd был тем пакетом, который вы хотели оставить, запустите от имени root
echo 'nullidentd hold' | dpkg --set-selections
В качестве альтернативы, поскольку вы строите из исходного кода, вы можете использовать эпоху, чтобы установить номер версии искусственно высоким и никогда больше не беспокоиться. Чтобы использовать эпоху, добавьте новую запись в файл debian / changelog и поставьте 99: перед номером версии. Учитывая мой пример с nullidentd, первая строка вашего обновленного журнала изменений будет гласить:
nullidentd (99:1.0-4) unstable; urgency=low
Ссылка Бернарда хороша, особенно если вам нужно создать каталог debian самостоятельно - также полезны ссылка для разработчиков и общая страница ресурсов . Ссылка Адама тоже выглядит неплохо, но я с ней не знаком.