Se você está tentando obter um pacote de um repositório onde eles empacotaram as chaves e incluí-las no repositório e em nenhum outro lugar, pode ser muito irritante fazer o download e instalar o pacote key / keyring usando o dpkg, e é muito difícil fazê-lo. de uma maneira facilmente programável e repetível.
O script abaixo não é recomendado se você pode instalar as chaves de um servidor de chaves (como recomendado em outra resposta usando apt-key adv
) ou se você pode baixá-las de uma fonte confiável via https e instalar usando apt-key (por exemplo wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -
), mas se não Não tem nenhuma outra maneira, você pode usar isso.
echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | sudo tee /etc/apt/sources.list.d/your-repo-name.list
sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update
## if the 'apt update' above fails it is likely due to previously
## having the GPG key and repository on the system, you can clean
## out the old lists with `sudo rm /var/lib/apt/lists/your.repo.domain*`
apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname
## If you ever run `sudo apt-key del your-repos-keyID`
## you may have to `sudo apt remove --purge repo-keyring-pkgname`
## Update should run without the GPG warnings now that the key is installed
apt-get update
apt-get install somepkg-from-repo
Originalmente, juntei isso porque o i3 no repositório sur5r faz isso, mas descobri que as chaves deles estão na lista keyserver.ubuntu.com, para que eu possa sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6
evitar todos os problemas extras do pacote.
Raspbian stretch
e aproveito a opção queE: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.
eu quero atualizar do python 3.5. t 3.6.