Я побежал dpkg-buildpackage
после получения apt-get source nginx
версии nginx для бэкпорта и внесения изменений debian/rules
в модуль uwsgi. Последние результаты команды были:
dpkg-deb: building package `nginx' in `../nginx_0.7.67-3~bpo50+1_i386.deb'.
dpkg-deb: building package `nginx-dbg' in `../nginx-dbg_0.7.67-3~bpo50+1_i386.deb'.
signfile nginx_0.7.67-3~bpo50+1.dsc
gpg: keyring `/home/shogun/.gnupg/secring.gpg' created
gpg: skipped "Faidon Liambotis <paravoid@debian.org>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available
dpkg-genchanges >../nginx_0.7.67-3~bpo50+1_i386.changes
dpkg-genchanges: warning: the current version (0.7.67-3~bpo50+1) is smaller than the previous one (0.7.67-3)
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT included)
dpkg-buildpackage: warning: Failed to sign .dsc and .changes file
Он жалуется, что, поскольку я не являюсь первоначальным сопровождающим пакета, мой ключ не соответствует.
Действительно ли это необходимо, и если да, то как я могу заставить его использовать мои ключи для сопоставления gpg?
ls -al
. Не удалось их создать из-за неудачной проверки gpg, верно? То есть с вашей новой командой они должны их создавать? Или я ошибаюсь?Когда вы создаете другую версию пакета (как вы сделали, так как вы изменили правила сборки), вы действительно должны добавить запись в журнал изменений. Таким образом, ваш пакет будет иметь другой номер версии (так что вы сразу поймете, что это не стандартный пакет из дистрибутива), и вы увидите, что вы изменили.
Отредактируйте
debian/changelog
и добавьте запись, имитирующую формат существующих записей. Дата с сегодняшнего дня, и выберите номер версииlike 0.7.67-3~bpo50+meder1
(вы хотите что-то, чтоdpkg --compare-versions
говорит о том, что ваша версия более свежая). Введите свой адрес электронной почты в качестве сопровождающего; Таким образом, у вас есть четкое указание на то, что это пакет, который вы изменили, иdpkg-buildpackage
будет запрашивать вашу парольную фразу GPG.Если вы пользователь Emacs, установите
dpkg-dev-el
пакет, а также использоватьC-c C-a
иC-c C-c
команды для добавления и завершить свой журнал изменений записи.источник
Хотя подписывать пакет не нужно, и
-uc -us
параметры можно использовать, чтобы избежать этого шага, также может быть полезно подписать пакет, особенно если его будут использовать другие, или вы будете отправлять его по незащищенным каналам связи. И это совсем не сложно.Чтобы создать хорошую подпись, см. Справочную страницу для dpkg-buildpackage . По умолчанию он подписывает пакеты с помощью gpg. Судя по сообщениям об ошибках, которые вы напечатали, вы просто еще не сгенерировали ключ gpg. Смотрите, например, GnuPrivacyGuardHowto - Документация сообщества Ubuntu для получения некоторых инструкций и справочной информации.
Как отмечает @Gilles, вы также должны изменить номер версии пакета через файл журнала изменений и указать адрес электронной почты для ключа gpg, который вы будете использовать. Самый простой способ сделать это - просто запустить
dch --local foo
команду, где «foo» является ключевым словом для изменения. Если вы действительно не хотите этого делать и вам нужно указать другое имя / адрес сопровождающего или загрузчика или конкретный ключ, который будет использоваться при подписании, вы также можете использовать опцию-m
,-e
или,-k
при сборке.Смотрите Howto для перекомпоновки пакетов Debian для получения дополнительных советов.
Сложная ситуация возникает, когда кто-то пытается решить, подписан ли данный пакет кем-то, кому он доверяет. Проверьте сеть доверия PGP для решения тонких проблем.
источник