Я пытаюсь создать Каир с debuild.
Я добираюсь в конец и это сообщение:
gpg: skipped "Robert Ancell <robert.ancell@canonical.com>": secret key not available
Так как я не Robert Ancell, это имеет смысл - как я заставляю его использовать мой собственный ключ?
gpg --list-key outputs:
$ gpg --list-key /home/stu/.gnupg/pubring.gpg
----------------------------
pub 1024R/2ADA7053 2009-05-04 uid Launchpad PPA for Aleksander Morgado
pub 2048R/17F35B46 2015-01-28 uid Stuart Axon
<stu.axon@gmail.com> uid Launchpad PPA for Stuart
Axon <stuaxo2@yahoo.com> sub 2048R/B8E8ED59 2015-01-28
и у меня есть огибающий var:
DEBSIGN_KEYID=17F35B46
debuild просит ключ пользователя, кто продержался, отредактировал журнал изменений. Если Вы загружаете на PPA затем, Ваш пакет должен в настоящее время отличаться от своего эквивалента в репозиториях и таким образом, необходимо было отредактировать журнал изменений.
Использование dch
для обновления версии и журнала изменений затем восстановите. debuild попросит Ваш ключ. (Если Вы не уверены, какие номера версий использовать смотрят на документы справки Панели запуска. )
Используйте -k
опция сказать debuild
который ключ использовать, например,
debuild -kB57F5641
Примечание, что нет никакого пространства, предоставленного между -k
и ключевой идентификатор.
Во-первых, с каждым пересмотром пакета, необходимо отредактировать журнал изменений. Это - требование при внесении изменений в пакет; можно добавить такие журналы изменений с dch
, как Seth предполагает.
Однако, если Вы просто пытаетесь произвести пакет, который не имеет никаких дополнительных изменений , таким образом, можно просто установить пакет, затем Вы не должны редактировать журнал изменений, просто необходимо решить вопрос ключа подписи.
<час>я не полагаю, что любой из ответов здесь на 100% завершен. Поэтому я украду немного от обоих, но добавлю свое собственное предложение и решение здесь, поскольку я делаю это с
nginx
слияния пакета довольно часто.
, Чтобы заключить Seth в кавычки, debuild
определит ключ на основе того, каков последний редактор журнала изменений был. Это автоматически, и необходимо будет обновить журнал изменений для использования учетных данных в них в конце последней записи журнала изменений.
, Как был указан Florian, тем не менее, можно также использовать -kKEYIDNUM
, опция к debuild
говорит его который ключ подписаться с и осуществить использование того ключа.
И теперь, мое решение обеих проблем, чтобы заставить вещи автоматически подписаться с ключом я хочу подписаться с...
В течение самого долгого времени я столкнулся с этой проблемой каждый раз, когда мои старые жесткие диски перестали работать в моей предыдущей системе. Я не хотел редактировать changelog
каждый раз, действительно, и при этом я действительно не хотел вручную передавать -k
опция каждый раз к debuild
.
Наконец, MOTUs помог мне решить проблему путем явного определения того, какой ключ подписать с, путем представления меня .devscripts
, которые debuild
и другие призывают переменные среды с вещами, определенными в них; это разрешило мне добавлять опции, которые dpkg-buildpackage
, который debuild
вызовы, будут всегда добавлять.
Так, для создания -k
опция работает автоматически на каждый debuild
, Вы работаете, можно добавить это к Вам ~/.devscripts
файл и автоматически добавить -k
опция, как так:
DEBUILD_DPKG_BUILDPACKAGE_OPTS="-kABCD1234"
Это сделает, это постоянно добавляло к эти debuild
опции; это - также способ осуществить тот Ваш ключ, будет всегда использоваться для подписания.
Это помогает мне для обеих загрузок Ubuntu, но также и для загрузок PPA.
Я в настоящее время использую XUbuntu 16.04 "Гостеприимный Xerus" и испытывал ту же проблему: оба debuild
и debsign
возвращали этот секретный ключ не доступная ошибка, хотя я действительно создавал локальный ключ и по тому, как я загрузил его на Keyserver Ubuntu, также.
Я уже попытался вручную установить свой ключ при помощи -k
опция. Я также установил свой ключ как мой ключ по умолчанию, и я также отредактировал debian/changelog
файл, среди БОЛЬШОГО КОЛИЧЕСТВА других вещей, но ничто не работало: Я все еще получал ту же ошибку.
... затем я понял, что создал свой ключ с gpg2 вместо gpg. Угадайте то, что я сделал?
Во-первых, я открыл окно терминала оболочки и переименовал gpg двоичный файл:
sudo mv /usr/bin/gpg /usr/bin/gpg.bak
Затем я создал a gpg
символьная ссылка, указывающая gpg2
двоичный файл:
sudo ln -s /usr/bin/gpg2 /usr/bin/gpg
После того, как я сделал это, команды как debuild -S -sa
, debsign some-file_source.changes
и так далее наконец работавший.
Я не знаю то, что точно является неправильным с debuild
, debsign
, dpkg-buildpackage
и так далее, но у меня создается впечатление, что они отправляют параметры в gpg
хотя только gpg2
может проанализировать ("понимают") такие параметры. Следовательно, создание символьной ссылки (для создания фальшивки gpg двоичный файл, который на самом деле выполняет gpg2 двоичный файл) решает проблему.
Существуют более изящные пути, хотя вызвать debsign
использовать gpg2
:
-pgpg2
опция debsign
.DEBSIGN_PROGRAM=gpg2
в /etc/devscripts.conf
или ~/.devscripts
.