O Homebrew não desinstala o OpenVPN Connect: qual caminho serve?
Uma desinstalação de cask falhada é uma de três falhas. Leia os artefactos do cask, compare versões e depois escolha entre tentar de novo, atualizar ou zap.
Três falhas diferentes carregam a mesma mensagem de erro do cask, e cada uma tem o seu próprio caminho de recuperação. O desinstalador do fornecedor pode faltar na versão instalada, um auxiliar pode ainda estar em execução e a segurar os seus ficheiros, ou o recibo do pacote pode não coincidir com o que está no disco. A velha solução do fórum que salvou um desses casos não lhe diz nada sobre qual tem. Ler o registo próprio do cask é a forma de descobrir.
Três falhas que se parecem
Um desinstalador em falta manifesta-se como um caminho que não existe quando o cask tenta executá-lo. Um auxiliar ativo manifesta-se como uma remoção que começa e depois encrava, ou como uma aplicação que reaparece depois de a fechar. Um recibo desatualizado manifesta-se quando o registo do cask e a base de dados do instalador não concordam sobre se o produto está sequer instalado.
Guarde o primeiro texto do erro antes de tentar mais nada. Uma segunda tentativa substitui o estado que produziu a mensagem, e a linha original é o que um mantenedor ou fornecedor precisa para distinguir estes casos. Copie-a para um local que sobreviva à nova tentativa.
Se esta VPN transporta a ligação que usa para trabalhar, prepare primeiro outro caminho de administração. Remover o cliente que lhe dá acesso é uma decisão sobre a janela de manutenção, não sobre o Homebrew. É também esta ordem que torna uma desinstalação falhada recuperável em vez de definitiva.
Leia o que o cask realmente instalou
A visão própria do Homebrew é a prova mais barata disponível, e não modifica nada:
brew info --cask openvpn-connect
brew list --cask openvpn-connectO primeiro comando imprime os metadados do cask e os artefactos que gere; o segundo lista o que está registado como instalado. Nenhum dos dois prova que cada auxiliar da máquina corresponde à receita atual, e é exatamente por isso que uma instalação mais antiga pode falhar de uma forma que o código atual do cask não descreve. Trate as duas saídas como uma afirmação a verificar, não como a última palavra sobre o que existe.
Compare a versão registada com a versão própria da aplicação antes de escolher um caminho. Uma discrepância explica um desinstalador em falta sem qualquer falha mais profunda, e a resposta é atualizar para a versão que o cask espera, não uma limpeza manual.
O que o zap acrescenta e quanto custa
A estrofe de desinstalação de um cask trata dos artefactos que a receita declara: fechar a aplicação, descarregar as tarefas de arranque, remover um item de início de sessão, esquecer os recibos do pacote e apagar o pacote da aplicação. Esse é o caminho normal, e é o que deveria funcionar.
--zap é um pedido diferente. Pede ao Homebrew que remova também as preferências do utilizador e os recursos partilhados, e a documentação avisa que isso pode afetar outro software. No cask do OpenVPN Connect a estrofe zap apaga openvpn.keychain-db e limpa os dados de suporte de aplicações do utilizador, o que significa que as credenciais guardadas e os perfis de ligação vão com ela. Se o perfil vier de uma organização, confirme que consegue voltar a inscrever-se antes de escolher este caminho.
| Condition | Path that fits | Path to avoid |
|---|---|---|
| Uninstaller path missing after an OS upgrade | Upgrade the cask to the version matching the app | Hand-writing a replacement script |
| Helper still running during removal | Quit the app and its menu agent, then retry | Deleting the bundle while the helper runs |
| Receipt exists but files are gone | Forget the receipt with the cask's own tooling | Recursive deletion of the Caskroom entry |
| You need the machine clean and can re-enroll | Zap, after reading the stanza | Zap on a machine whose profiles you cannot rebuild |
Caminhos que parecem decisivos e não são
Escrever um remove.sh falso que termina com código de saída zero é a pior opção da lista. Faz a desinstalação relatar sucesso enquanto as tarefas de arranque, os recibos e os dados da aplicação ficam no lugar, pelo que a instalação seguinte herda um produto meio removido e um registo que diz o contrário.
Apagar à mão o diretório Caskroom ou o pacote da aplicação produz um estado semelhante do outro lado. Os ficheiros desaparecem enquanto o recibo fica. Cada comando posterior tem então de ser pensado contra uma máquina que já não corresponde à sua própria base de dados.
Um brew update-reset em todo o repositório é uma intervenção maior do que justifica um único cask falhado. Muda o estado dos seus taps para corrigir um problema que nunca foi sobre o estado dos taps, e pode deixá-lo a depurar um Homebrew diferente daquele com que começou.
Decidir por ordem
Siga a sequência: leia os artefactos registados do cask, compare versões, feche cada componente em execução, repita a desinstalação normal e só depois considere o zap. Se o caminho normal continuar a falhar, guarde o erro e leve-o aos mantenedores do cask ou ao fornecedor com os números de versão.
O Cask Cookbook diz explicitamente que os instaladores de pacotes precisam de técnicas de desinstalação específicas do produto e que o zap é opcional e pode remover recursos partilhados. Esse enquadramento é a regra de decisão: desinstalação normal primeiro, zap quando aceita o custo das credenciais, eliminação manual nunca.