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-connect

La 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.

ConditionPath that fitsPath to avoid
Uninstaller path missing after an OS upgradeUpgrade the cask to the version matching the appHand-writing a replacement script
Helper still running during removalQuit the app and its menu agent, then retryDeleting the bundle while the helper runs
Receipt exists but files are goneForget the receipt with the cask's own toolingRecursive deletion of the Caskroom entry
You need the machine clean and can re-enrollZap, after reading the stanzaZap 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.

Articles similaires