Eu adicionei o PPA oficial do KeePassXC e o apt conhece a versão mais recente, mas não está instalando:
$ apt list -a keepassxc
Listing... Done
keepassxc/bionic,now 2.6.1-1ppa1~bionic1 amd64
keepassxc/bionic 2.5.3-1ppa1~bionic1 amd64 [installed]
keepassxc/bionic 2.3.1+dfsg.1-1 amd64
Selecionar a versão 2.6.1 manualmente funciona, mas o apt fará o downgrade posteriormente para 2.5.3.
Por que isso acontece e como posso fazê-lo usar a versão mais recente?
O problema pode ser diagnosticado executando
apt-cache policy keepassxc
:O pacote 2.5.3 tem prioridade não padrão 1001, que é maior do que o padrão 500 usado para outros pacotes.
Por que esse é o caso?
2.3.1 vem do repositório do Ubuntu.
2.5.3 é fornecido pelo repositório Pop!_OS.
2.6.1 é o PPA oficial do KeePassXC.
O Pop!_OS é baseado no Ubuntu, mas oferece sua própria versão modificada de alguns pacotes. Isso é conseguido dando ao seu repositório maior prioridade no apt. O Apt primeiro olhará para as prioridades do pacote e se houver mais de um com prioridade mais alta, somente então a versão será levada em consideração. Caso contrário, o pacote com maior prioridade é instalado, independentemente da versão.
keepassxc
O pacote do Pop herda a prioridade 1001 de seu repositório. É mais alto que o padrão500
para pacotes Ubuntu e KeePassXC PPA, então 2.5.3 está instalado apesar de não ser a versão mais recente.Esse problema é corrigido definindo a prioridade PPA do KeePassXC acima de 1001. Crie o arquivo
/etc/apt/preferences.d/keepassxc-official-ppa
como root com o seguinte conteúdo:Então
sudo apt update
esudo apt upgrade keepassxc
. A versão mais recente deve ser instalada eapt-cache policy keepassxc
deve refletir as alterações:(
LP-PPA-phoerious-keepassxc
a string no arquivo de preferências vem daapt-cache policy
saída.)