I'm trying to create a .DEB package which will install a number of certificates and keys onto a system.
To do this, i've gone through the standard package creation process, and thrown two files, debsigning.gpg and webupd8.gpg into /opt/keys. (This is specified by the
The package drops the files, and executes a script which invokes
apt-key install on each installed keyfile to load it into the keyring. However, I'm finding that, despite the apt-key command reporting success, the keys are not being installed properly.
If, post install, I execute the exact same
apt-key command manually, the keys then work.
Here's what the session looks like:
$ apt-get install company-keyring Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: add-apt-key The following NEW packages will be installed: add-apt-key company-keyring 0 upgraded, 2 newly installed, 0 to remove and 40 not upgraded. Need to get 10.2 kB of archives. After this operation, 129 kB of additional disk space will be used. Do you want to continue [Y/n]? y WARNING: The following packages cannot be authenticated! company-keyring Install these packages without verification [y/N]? y -snip download lines- Setting up company-keyring (1.0) ... Installing Keys... Webupd8 Key (Java): OK DEB Signing Key: OK Company CA key: Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d.... Adding debian:company-ca.pem.pem done. done. Done.
Everything appears to be in order. I should be able to now run an
apt-get update without any errors..
$ apt-get update W: GPG error: http://updateserver precise InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 37AF244665CC67C4
Darn. Okay, but if I go and manually run the script command..
$ apt-key add /opt/keys/debkey.gpg OK $ apt-key add /opt/keys/webupd8.gpg OK
Then try to update..
$ apt-get update Fetched 2,180 B in 0s (15.6 kB/s) Reading package lists... Done
All is well.
I'm stumped, here. This is exactly what my .deb
postinst script was supposed to do:
echo "Installing keys.." echo "Webupd8 Key (Java): `apt-key add /opt/keys/webupd8.gpg`" echo "DEB Signing Key: `apt-key add /opt/keys/debkey.gpg`" echo "Company CA key: `echo 'company-ca.pem' >> /etc/ca-certificates.conf && update-ca-certificates`" echo "Done."
And the "OK" output would seem to indicate success. What am I missing?