O que é chave de repositório?

Sou novo usando o Linux, uso o Ubuntu, ao instalar alguns programas eu já tive que adicionar repositórios PPA pelo terminal e instalar aplicativos por lá…
Mas agora ao tentar instalar um programa , no tutorial que estou lendo pede para baixar a chave dos repositórios do tal programa (que no caso é o Wine) oque é ? e pq até então nunca precisei ter baixado antes ? (para outros programas que instalei )
tentei de tudo para instalar , vários tutoriais mas chega sempre em uma etapa que da a seguinte mensagem de erro:O dpkg foi interrompido, para corrigir o problema tem de correr manualmente ‘sudo dpkg --configure -a’

É que o Wine tem repositórios próprios, por isso é preciso adicionar as chaves, pois se não o APT vai rejeitar os arquivos por não poder validar.

Normalmente os PPAs que adicionamos são armazenados no Launchpad, que é da própria Canonical, então eles já vem com a chave de repositório automática.

A chave é uma key criptografada que garante que o repositório é legitimo.
Caso a key não bata com o repositório pode ser que ele ou você foi hackeado.

A pergunta foi sobre a key marque como resolvido.

1 Curtida

Como o @aguamole falou a chave serve para assinar os pacotes do repositório, garantindo a autenticidade do download. Se quiser saber mais sobre o assunto, um bom começo é a

Nota: O PPA do wine costuma quebrar instalações de usuários iniciantes que seguem tutoriais antigos. Recomendo sempre usar o wine padrão da sua distribuição (via apt install ou gerenciador de pacotes). Raramente vc vai precisar da última versão disponível apenas no PPA, e se isso acontecer é porque vc não é mais iniciante!

1 Curtida

@Deleterium é uma questão de recurso de compatibilidade das versão recente.
Os Wine mas recente tem mais recursos de compatibilidade que as versão antigas.
O Wine é uma API e eu gosto de comparar com a JVM por suas semelhanças.
Ao invés do Wine interpretar o bytecode ele interpreta o binário do aplicativo.
Da mesma forma em que você tentar rodar um bytecode que foi desenvolvido usando recursos do JVM 1.15 que não esta disponível na JVM 1.1 o bytecode vai dar problema, assim é o Wine quando tenta rodar um binário que ele não tem as instrução de interpretação.
Usar versão recente do Wine pode conter bug que não estavam presente nas versão antigas quebrando a compatibilidade com aplicativos que antes rodavam em versão antiga.
Bugs são corrigidos em versão futuras se forem descobertos.

Olha a nota de atualização do Wine 6.0 para 6.1.

The Wine development release 6.1 is now available.

[What's new](https://www.winehq.org/announce/6.1) in this release:

* Arabic text shaping.
* More WinRT support in WIDL.
* VKD3D version 1.2 is used for Direct3D 12.
* Support for Rosetta's memory layout on M1 Macs.
* Support for Thumb-2 mode on ARM.
* Various bug fixes.

The source is [available now](https://dl.winehq.org/wine/source/6.x/wine-6.1.tar.xz). Binary packages are in the process of being built, and will appear soon at their respective [download locations](https://www.winehq.org/download).

Esta vendo teve recurso de compatibilidade adicionado.
Igual o Vulkan 1.2 agora é usado no lugar de Direct3D 12 isso vai melhorar para jogos que usa Direct3D 12.
Algumas são para otimização, algumas são para correção, algumas são para recurso novos.

* Support for Rosetta's memory layout on M1 Macs.
* Support for Thumb-2 mode on ARM.

Estas 2 são novos recursos que não estavam presentes em versão antigas só que são para computadores Macs e ARM.

Agora imagina o tanto de recurso que a 6.1 tem em vantagem a primeira versão final do Wine.
A 6.1 tem muito mais poder de compatibilidade que a primeira versão final do Wine.

Sim, entendo perfeitamente as diversas vantagens de usar a versão mais recente. Consigo me colocar no lugar do usuário aficionado pelas novidades e ter a alegria de ver o desempenho do seu jogo com a última versão do wine!

Mas também consigo me colocar no lugar de um usuário iniciante que está testando o sistema e querendo ver como que roda aquele joguinho do windows via wine. Esse cara quer que apenas funcione de uma forma que não estrague o sistema e caia na tela preta durante a próxima inicialização, tendo que pedir ajuda para executar comandos incompreensíveis na esperança de que apenas volte ao que era antes (e ficar um tanto traumatizado por quase ter estragado o computador).

O wine é um software bem complexo e há inclusive jogos que rodam melhor em uma versão mais antiga do que na mais recente! Por conta disso que eu recomendo sempre ficar nos pacotes do repositório da distribuição. O usuário deve primeiro ver como funciona na versão padrão, e, se houver problemas, daí sim tentar a versão mais recente. O pior cenário é alguém quebrar a instalação seguindo um tutorial para usar a última versão, sendo que a versão da distribuição funcionaria. E ainda, o erro indicado pelo autor já mostra que o sistema está quebrado ou próximo disso…

A base de toda discussão aqui é que quando alguém pede ajuda sobre a chave criptográfica, na verdade está tentando fazer algo que sequer precisaria chegar nesse ponto. Por exemplo, se o problema fosse rodar LoL, a gente já falava que ele pode instalar o Lutris que inclusive baixa o wine sem precisar instalar na máquina. Bem poucas pessoas usam o wine do jeito que ele foi pensado, com apenas uma instalação pro usuário e todos os programas .exe compartilhando o mesmo prefix. Possivelmente depois de instalar o wine virá a pergunta: Instalei o wine mas ele não aparece no menu? Concordo plenamente com você com relação ao wine mais atual, mas não estou convencido que nossa intervenção aqui vai conseguir ajudar de forma satisfatória o autor do tópico.

O Wine foi pensado em usar varios prefixos basta dar os comandos de criação de um novo prefixo e instalar o programa dentro do novo prefixo criado.
O Litrus e o PlayOnLinux só faz isso para o usuário através dos script.
Eu demorei muito tempo para sacar como funciona criar prefixo e usar no Wine eu tive que ler um pouco e entender sobra variável.

Explicando como trabalhar com prefix para instalar um programa:
Para criar um novo prefix use:
WINEPREFIX="$HOME/.wine-steam" winecfg
Foi criada uma pasta virtual do Wine em “/$HOME/” chamada “wine-steam”.
Para executar um aplicativo usando esse prefix use:
WINEPREFIX="$HOME/.wine-steam" wine "/programa/a/executar.exe"

Fonte: Steam - Supported software - PlayOnLinux - Run your Windows applications on Linux easily!

1 Curtida

Como ninguém respondeu suas duvidas de fato, lá vai:

Isso basicamente te diz o que você tem que fazer:

sudo dpkg --configure -a

Porque o repositório ou fornecia automaticamente (PPAs) ou o tutorial/repositório foi muito irresponsável

Chave de repositório, é um mecanismo que serve pra verificar a autenticidade dos pacotes, (funciona basicamente como um cadeado e uma chave do mundo real), essa chave é um par de arquivos sendo uma pública e uma privada:

A chave privada fica com e apenas com o responsável por manter o repositório, ele vai usar ela pra assinar algumas coisas sem as quais o repositório teria problemas

A chave pública fica com você (é a que você adiciona) você usa ela pra traduzir a assinatura verificando a autenticidade do repositório e seus pacotes

Uma analogia (não pegue no sentido literal:

Quem faz o repositório criou alguns cadeados com uma chave especial pra gerar o segredo, o APT vai tentar abrir esses cadeados com a sua chave, se ele conseguir, o repositório teoricamente está OK se não ele te impede de baixar atualizações do repositório