Como configurar o gpg2 como implementação padrão do gpg no debian?

20

Minha instalação debian veio com o gpg 1.4.12, enquanto eu gostaria de estar rodando 2.0.19. O primeiro vem no pacote gnupg e o último gnupg2 . Eles podem coexistir pacificamente até onde eu saiba, mas eu realmente gostaria de usar gpg2 como o provedor padrão de gpg . Eu sei que o debian tem update-alternatives , que é usado para definir padrões, mas não consigo encontrar nenhuma menção a gpg ou gnupg .

Como posso configurar isso?

    
por user329476 04.06.2014 / 23:34

2 respostas

13

Resposta

update-alternatives só funciona se um pacote usar explicitamente o sistema de alternativas. gnupg e gnupg2 não.

Antecedentes

Geralmente, o motivo é que a interface do usuário é muito diferente, de modo que os scripts que usam a única ferramenta não funcionem mais, se de repente as outras ferramentas forem executadas. Um exemplo típico aqui é markdown . Cada implementação de markdown no Debian tem opções de linha de comando bem diferentes, portanto o sistema de alternativas não está em uso lá.

As opções de linha de comando de gpg e gpg2 não parecem diferir muito, mas talvez a saída em certas ações ou códigos de saída diferem significativamente em alguns lugares.

Uma coisa em que eles diferem e que é importante para instalações mínimas e mídia de instalação, são suas dependências. Embora o pacote gnupg seja de prioridade "padrão" (ou seja, instalado em uma instalação padrão) e uma dependência do pacote apt , o pacote gnupg2 extrai algumas outras bibliotecas que atualmente são apenas prioritárias "opcionais" .

Existem dois relatórios de bugs abertos no Debian, um contra cada pacote ( # 561540 contra o gnupg e # 483724 contra gnupg2 ), solicitando o uso do sistema de alternativas para gnupg e gnupg2 .

Atualmente, um desses relatórios de bugs é marcado com wontfix , mas a tag é "por enquanto" e há algumas dicas sobre o que precisa ser cuidado caso o sistema de alternativas seja usado (ou gnupg2 se tornará o padrão) no futuro.

Como, no caso de você realmente querer

Se você realmente quiser que gpg2 seja chamado se você chamar gpg , recomendo adicionar um alias de acordo no seu shell, por exemplo, com alias gpg=gpg2 para shells compatíveis com bourne-shell. Não deve fazer muito mal, mas só funcionará se for chamado a partir da linha de comando.

Se você realmente deseja que /usr/bin/gpg seja gnupg2, pode fazer isso com dpkg-divert , por exemplo, renomeie gpg para gpg1 e, em seguida, gpg2 para gpg . Os arquivos renomeados com dpkg-divert manterão seu novo nome mesmo após as atualizações dos pacotes correspondentes.

Mas esteja avisado: o APT exige e usa gpg e pode não esperar que ele seja gpg2 . Então você pode quebrar partes do seu sistema se você usar dpkg-divert dessa maneira. (Aliases de shell para usuários não-root são bons com relação a isso.)

    
por 15.12.2014 / 22:47
7

Haverá uma nova resposta para essa questão em breve: Use o Debian 9 Stretch (a ser lançado em cerca de 2 anos ou mais ;-) ou mais recente.

Antecedentes: No DebConf15 os Mantenedores de Pacotes Debian GnuPG anunciou que no futuro, o GnuPG 2.x será /usr/bin/gpg no Debian e o comando GnuPG 1.x será renomeado para /usr/bin/gpg1 .

Você ainda não poderá trocar /usr/bin/gpg para outra versão do GnuPG por seus gostos (veja minha outra resposta pelo motivo por trás disso), mas pelo menos o GnuPG 2.x será a implementação padrão em um futuro próximo no Debian Unstable e Debian Testing e muito em breve no Debian Experimental.

    
por 19.08.2015 / 16:28