Homebrew ne désinstalle pas OpenVPN Connect : quelle voie choisir ?
Une désinstallation cask ratée est l’une de trois pannes. Lisez les artefacts du cask, comparez les versions, puis choisissez entre réessayer, mettre à jour ou zapper.
Trois pannes différentes portent le même message d’erreur du cask, et chacune a sa propre voie de récupération. Le désinstalleur de l’éditeur peut manquer dans la version installée, un assistant peut encore tourner et retenir ses fichiers, ou le reçu du paquet peut ne pas correspondre à ce qui est sur le disque. Le vieux contournement du forum qui a sauvé l’un de ces cas ne vous dit rien sur celui que vous avez. Lire le registre propre au cask est la façon de le découvrir.
Trois pannes qui se ressemblent
Un désinstalleur manquant se manifeste par un chemin qui n’existe pas quand le cask essaie de l’exécuter. Un assistant actif se manifeste par une suppression qui démarre puis se bloque, ou par une application qui réapparaît après que vous l’avez quittée. Un reçu périmé se manifeste quand le registre du cask et la base de données de l’installateur ne s’accordent pas sur le fait que le produit soit installé ou non.
Conservez le premier texte d’erreur avant de réessayer quoi que ce soit. Une seconde tentative écrase l’état qui a produit le message, et la ligne d’origine est ce dont un mainteneur ou un éditeur a besoin pour distinguer ces cas. Copiez-la quelque part qui survive à la nouvelle tentative.
Si ce VPN transporte la connexion avec laquelle vous travaillez, préparez d’abord une autre voie d’administration. Retirer le client qui fournit votre accès est une décision sur la fenêtre de maintenance, pas sur Homebrew. Cet ordre est aussi ce qui rend une désinstallation ratée récupérable au lieu de définitive.
Lisez ce que le cask a réellement installé
La vue propre de Homebrew est la preuve la moins coûteuse disponible, et elle ne modifie rien :
brew info --cask openvpn-connect
brew list --cask openvpn-connectLa première commande imprime les métadonnées du cask et les artefacts qu’il gère ; la seconde liste ce qui est enregistré comme installé. Ni l’une ni l’autre ne prouve que chaque assistant de la machine corresponde à la recette actuelle, et c’est exactement pourquoi une installation plus ancienne peut échouer d’une manière que la source actuelle du cask ne décrit pas. Traitez les deux sorties comme une affirmation à vérifier, pas comme le dernier mot sur ce qui existe.
Comparez la version enregistrée à la version propre de l’application avant de choisir une voie. Un écart explique un désinstalleur manquant sans aucune panne plus profonde, et la réponse est une mise à jour vers la version attendue par le cask, pas un nettoyage manuel.
Ce que zap ajoute, et ce qu’il coûte
La strophe de désinstallation d’un cask traite les artefacts que la recette déclare : quitter l’application, décharger les tâches de démarrage, retirer un élément d’ouverture de session, oublier les reçus de paquet et supprimer le bundle de l’application. C’est la voie normale, et c’est celle qui devrait fonctionner.
--zap est une demande différente. Il demande à Homebrew de supprimer aussi les préférences utilisateur et les ressources partagées, et la documentation avertit que cela peut affecter d’autres logiciels. Dans le cask OpenVPN Connect, la strophe zap supprime openvpn.keychain-db et vide les données de support d’applications de l’utilisateur, ce qui signifie que les identifiants enregistrés et les profils de connexion partent avec. Si le profil vient d’une organisation, confirmez que vous pouvez vous réinscrire avant de choisir cette voie.
| 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 |
Des voies qui semblent décisives et ne le sont pas
Écrire un faux remove.sh qui se termine par un code de sortie nul est la pire option de la liste. Cela fait rapporter un succès à la désinstallation alors que les tâches de démarrage, les reçus et les données d’application restent en place, si bien que l’installation suivante hérite d’un produit à moitié retiré et d’un registre qui dit le contraire.
Supprimer à la main le répertoire Caskroom ou le bundle de l’application produit un état semblable depuis l’autre côté. Les fichiers disparaissent pendant que le reçu reste. Chaque commande ultérieure doit alors être raisonnée contre une machine qui ne correspond plus à sa propre base de données.
Un brew update-reset sur tout le dépôt est une intervention plus lourde qu’un seul cask raté ne le justifie. Il change l’état de vos taps pour corriger un problème qui n’a jamais porté sur l’état des taps, et il peut vous laisser déboguer un Homebrew différent de celui avec lequel vous avez commencé.
Décider dans l’ordre
Suivez l’ordre : lisez les artefacts enregistrés du cask, comparez les versions, quittez chaque composant en cours, réessayez la désinstallation ordinaire, et seulement ensuite envisagez zap. Si la voie ordinaire échoue encore, conservez l’erreur et portez-la aux mainteneurs du cask ou à l’éditeur avec les numéros de version.
Le Cask Cookbook dit explicitement que les installateurs de paquets ont besoin de techniques de désinstallation propres au produit et que zap est facultatif et peut supprimer des ressources partagées. Ce cadre est la règle de décision : désinstallation ordinaire d’abord, zap quand vous acceptez le coût des identifiants, suppression manuelle jamais.