Por que o apt-cache mostra instalado (nenhum) para o seu pacote VPN
Instalado (nenhum) significa que o pacote VPN não está instalado, não que ele esteja faltando. Leia as linhas de candidato, fixação e arquitetura antes de editar as fontes.
Um pacote VPN que informa Installed: (none) não está faltando; ele simplesmente não está instalado. A linha que decide se você pode instalá-lo é Candidate, que o APT deriva dos índices, do nome da suíte, da arquitetura e de qualquer regra de fixação em vigor. A maioria dos relatos de um pacote VPN desaparecido acaba sendo um problema de candidato e não um problema de empacotamento. Leia as duas linhas antes de tocar em uma única entrada de fontes.
Verifico o candidato primeiro porque custa um único comando e descarta metade das suposições habituais.
O que a saída do apt-cache policy lhe diz
apt-cache policy lê o cache local de pacotes, não a rede. Ele imprime a versão instalada, a versão candidata e uma tabela de cada índice que oferece o pacote, com a prioridade associada.
apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpnO candidato é a versão que o APT escolheria agora. madison lista o que cada fonte oferece com sua prioridade, e é assim que você detecta um pacote que existe em um índice mas perde a competição de fixação. O manual do apt-cache documenta ambos como leituras de cache, portanto nenhum dos dois prova que o espelho está acessível neste momento.
Se a linha do candidato estiver vazia ou mostrar (none), nada nas fontes configuradas é elegível para este sistema como está configurado.
Quatro motivos pelos quais um candidato desaparece
Na prática, a causa é quase sempre uma de quatro coisas, e cada uma tem uma correção diferente.
O nome da suíte nas suas fontes precisa corresponder à distribuição para a qual o pacote foi compilado. Um sistema Debian bookworm apontando para um espelho trixie, ou uma versão do Ubuntu renomeada em um arquivo sources.list.d durante uma atualização, não resolve nada para pacotes que só existem na outra suíte. Compare lsb_release -cs com o campo suíte de cada entrada.
O APT só vê pacotes compilados para as arquiteturas que o dpkg conhece. Um contêiner de 32 bits, uma imagem arm64 ou uma instalação em Raspberry Pi que pede um pacote fornecido apenas para amd64 recebem um candidato vazio em vez de uma mensagem de erro. dpkg --print-architecture e dpkg --print-foreign-architectures informam em qual conjunto você realmente está.
Os componentes também importam. Um pacote em contrib ou non-free fica invisível quando apenas main está habilitado, e o universe do Ubuntu se comporta da mesma forma. O índice existe e o pacote está nele; sua lista de componentes habilitados simplesmente não o inclui.
A fixação é a silenciosa. Um arquivo em /etc/apt/preferences.d pode limitar um pacote abaixo do limite de instalação, e então um candidato perfeitamente bom desaparece da saída enquanto o índice ainda o lista. Como o policy imprime as prioridades ao lado de cada fonte, um pacote em que cada fonte carrega um número de fixação baixo é a pista.
Índices desatualizados parecem pacotes faltando
O cache é uma fotografia. Se o último apt update falhou em um índice, as consultas continuam respondendo a partir da cópia mais antiga, e o pacote que você espera pode não estar nessa cópia.
apt update imprime erros por índice, então leia-os em vez de rolar direto até a última linha.
Uma atualização que falha por um erro de assinatura, um arquivo release vencido ou um espelho inacessível deixa o índice anterior no lugar. É um projeto sensato, porque mantém um cache funcional quando um espelho cai por pouco tempo. O efeito colateral é que uma busca pode ter sucesso enquanto o repositório está offline. Isso também significa que a ausência de um pacote não prova nada até você saber quando o índice foi obtido pela última vez. Verifique as datas dos arquivos em /var/lib/apt/lists antes de culpar o nome do pacote.
Nomeie o pacote de que você realmente precisa
OpenVPN é um daemon, e as peças que as pessoas costumam querer são pacotes separados.
O mecanismo, o plugin do NetworkManager e o editor de desktop são três pacotes com três nomes, e o plugin tem uma variante GTK cujo nome difere entre distribuições. apt-cache search --names-only openvpn combina nomes e nomes fornecidos em vez de descrições, e é isso que você quer quando sabe aproximadamente como a coisa se chama.
Se o nome for realmente desconhecido, pesquise uma vez nas descrições e depois volte aos nomes exatos. Não acrescente um sufixo -gui emprestado de outra distribuição e conclua que o pacote não existe mais.
Altere as fontes por último e depois verifique a transação
Adicionar um repositório muda quem fornece suas atualizações, então isso pertence ao fim da investigação, não ao começo.
Antes disso, confirme versão, arquitetura, componente e estado de fixação. Anote quais dos quatro você verificou, para que a próxima pessoa não repita a varredura. Se os quatro estiverem corretos e o candidato ainda faltar, a conclusão honesta é que esta versão não distribui esse pacote. As opções restantes são um backport, um pacote de fornecedor ou outra versão suportada, e cada uma é uma escolha deliberada, não um palpite.
Quando o candidato aparecer, simule antes de confirmar: apt-get install --simulate com o nome do pacote mostra o que seria puxado e o que seria removido. A disponibilidade do pacote, a instalação e um túnel funcional continuam sendo três etapas separadas, e o túnel ainda precisa do seu perfil, credenciais, rotas e DNS antes de transportar tráfego.