Deiroでcairoをビルドしようとしています。
最後にこのメッセージが表示されます。
gpg: skipped "Robert Ancell <[email protected]>": secret key not available
私はロバート・アンセルではないので、これは理にかなっています-自分のキーを使用するにはどうすればよいですか?
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
<[email protected]> uid Launchpad PPA for Stuart
Axon <[email protected]> sub 2048R/B8E8ED59 2015-01-28
そして、私はenv varを持っています:
DEBSIGN_KEYID=17F35B46
debuildは、変更ログを最後に編集したユーザーのキーを要求します。 PPAにアップロードする場合、パッケージは現在リポジトリにある同等のものと異なる必要があるため、変更ログを編集する必要があります。
dch
を使用してバージョンと変更ログを更新し、再構築します。 debuildはキーを要求します。 (使用するバージョン番号がわからない場合は、ご覧ください Launchpadヘルプドキュメントで )
私は現在XUbuntu 16.04 "Xenial Xerus"を使用していますが、同じ問題が発生していました。debuild
とdebsign
の両方がこのsecret key not availableエラーを返していました。 buntu Keyserver にもアップロードした方法。
-k
オプションを使用して、キーを手動で設定しようとしました。キーをデフォルトキーとして設定し、debian/changelog
ファイルも編集しましたが、他にもたくさんありましたが、何も機能しませんでした。同じエラーが引き続き発生していました。
...その後、gpgではなくgpg2でキーを作成したことに気付きました。私が何をしたと思いますか?
まず、シェルターミナルウィンドウを開き、gpgバイナリの名前を変更しました。
Sudo mv /usr/bin/gpg /usr/bin/gpg.bak
次に、gpg2
バイナリを指すgpg
シンボリックリンクを作成しました。
Sudo ln -s /usr/bin/gpg2 /usr/bin/gpg
これを行った後、debuild -S -sa
、debsign some-file_source.changes
などのコマンドが最終的に機能しました。
debuild
、debsign
、dpkg-buildpackage
などの正確な問題点はわかりませんが、_gpg2
のみが解析(「理解」)できるにもかかわらず、gpg
にパラメーターを送信しているという印象を受けています。 )そのようなパラメーター。したがって、(実際にgpg2バイナリを実行する偽のgpgバイナリを作成するために)シンボリックリンクを作成すると、問題が解決します。
ただし、debsign
にgpg2
を使用させるよりエレガントな方法があります。
debsign
の-pgpg2
オプションを設定します。DEBSIGN_PROGRAM=gpg2
または/etc/devscripts.conf
で~/.devscripts
を設定します。-k
オプションを使用して、使用するキーをdebuild
に伝えます。
debuild -kB57F5641
-k
とキーIDの間にはスペースを入れないでください。
まず、パッケージのリビジョンごとに、変更ログを編集する必要があります。これは、パッケージに変更を加える場合の要件です。 Sethが提案するように、dch
を使用してこのような変更ログを追加できます。
ただし、単に追加の変更はありませんのパッケージを作成しようとしている場合、パッケージをインストールするだけで、変更ログを編集する必要はなく、単に署名を解決するだけです重要な問題。
ここでの答えのいずれかが100%完全であるとは思わない。したがって、私は両方から少し盗みますが、
nginx
パッケージが非常に頻繁にマージされるため、ここに独自の提案と解決策を追加します。
Sethを引用するには、debuild
は、最後の変更ログエディターが何であったかに基づいてキーを決定します。これは自動的に行われ、最新の変更ログエントリの最後に変更ログで資格情報を使用するように変更ログを更新する必要があります。
ただし、Florianが述べたように、-kKEYIDNUM
オプションを使用してdebuild
に署名するキーを指示し、そのキーの使用を強制することもできます。
そして今、両方の問題に対する私の解決策は、私が署名したいキーで自動的に署名することです...
私の以前のシステムで古いハードドライブが死んだときはいつでも、この問題に長い間遭遇しました。 changelog
を毎回編集したくはありませんでしたし、毎回debuild
に手動で-k
オプションを渡したくもありませんでした。
最後に、MOTUは、署名するキーを明示的に指定し、.devscripts
を紹介することで問題を解決するのに役立ちました。debuild
などは、環境変数で定義されたものを呼び出します。これにより、debuild
が呼び出すdpkg-buildpackage
が常に追加するオプションを追加できました。
したがって、実行するすべてのdebuild
に対して-k
オプションを自動的に機能させるには、これを~/.devscripts
ファイルに追加し、-k
オプションを自動的に追加します。 :
DEBUILD_DPKG_BUILDPACKAGE_OPTS="-kABCD1234"
これにより、debuild
オプションに永続的に追加されます。これは、キーが常に署名に使用されることを強制する方法でもあります。
これは、Ubuntuの両方のアップロードに役立ちますが、PPAのアップロードにも役立ちます。