Drei verschiedene Fehler tragen dieselbe cask-Fehlermeldung, und jeder hat seinen eigenen Weg zurück. Der Deinstaller des Herstellers kann in der installierten Version fehlen, ein Hilfsprozess kann noch laufen und seine Dateien festhalten, oder der Paketbeleg kann nicht zu dem passen, was auf der Platte liegt. Der alte Foren-Workaround, der einen dieser Fälle gerettet hat, sagt Ihnen nichts darüber, welchen Sie haben. Die eigene Aufzeichnung des casks zu lesen ist der Weg, das herauszufinden.

Drei Fehler, die gleich aussehen

Ein fehlender Deinstaller zeigt sich als ein Pfad, den es nicht gibt, wenn der cask ihn ausführen will. Ein laufender Hilfsprozess zeigt sich als eine Entfernung, die beginnt und dann hängen bleibt, oder als eine Anwendung, die nach dem Beenden wieder auftaucht. Ein veralteter Beleg zeigt sich, wenn die eigene Aufzeichnung des casks und die Datenbank des Installers darin nicht übereinstimmen, ob das Produkt überhaupt installiert ist.

Bewahren Sie den ersten Fehlertext auf, bevor Sie irgendetwas wiederholen. Ein zweiter Versuch überschreibt den Zustand, der die Meldung erzeugt hat, und die ursprüngliche Zeile ist es, die ein Maintainer oder Hersteller braucht, um diese Fälle zu unterscheiden. Kopieren Sie sie an einen Ort, der die Wiederholung überlebt.

Wenn dieses VPN die Verbindung trägt, mit der Sie arbeiten, richten Sie zuerst einen anderen Verwaltungsweg ein. Den Client zu entfernen, der Ihnen den Zugang gibt, ist eine Entscheidung über das Wartungsfenster, nicht über Homebrew. Diese Reihenfolge ist es auch, die eine fehlgeschlagene Deinstallation wiederherstellbar statt endgültig macht.

Lesen Sie, was der cask tatsächlich installiert hat

Homebrews eigene Sicht ist der billigste verfügbare Beleg, und sie ändert nichts:

brew info --cask openvpn-connect
brew list --cask openvpn-connect

Der erste Befehl gibt die cask-Metadaten und die Artefakte aus, die sie verwaltet; der zweite listet auf, was als installiert verzeichnet ist. Keiner von beiden beweist, dass jeder Hilfsprozess auf dem Rechner zum aktuellen Rezept passt, und genau deshalb kann eine ältere Installation auf eine Weise scheitern, die der aktuelle cask-Quelltext nicht beschreibt. Behandeln Sie die beiden Ausgaben als eine zu prüfende Behauptung, nicht als das letzte Wort darüber, was existiert.

Vergleichen Sie die verzeichnete Version mit der eigenen Version der Anwendung, bevor Sie einen Weg wählen. Eine Abweichung erklärt einen fehlenden Deinstaller ohne tieferen Fehler, und die Antwort ist ein Upgrade auf die Version, die der cask erwartet, nicht eine manuelle Bereinigung.

Was zap hinzufügt und was es kostet

Die Deinstallations-Stanza eines casks behandelt die Artefakte, die das Rezept erklärt: die App beenden, Startdienste entladen, ein Anmeldeobjekt entfernen, Paketbelege vergessen und das App-Bundle löschen. Das ist der normale Weg, und er ist der, der funktionieren sollte.

--zap ist eine andere Anfrage. Es bittet Homebrew, auch Benutzereinstellungen und gemeinsam genutzte Ressourcen zu entfernen, und die Dokumentation warnt, dass dies andere Software beeinflussen kann. Im cask OpenVPN Connect löscht die zap-Stanza openvpn.keychain-db und räumt die Anwendungsunterstützungsdaten des Benutzers auf, was bedeutet, dass gespeicherte Anmeldedaten und Verbindungsprofile mitgehen. Wenn das Profil von einer Organisation stammt, bestätigen Sie, dass Sie sich erneut registrieren können, bevor Sie diesen Weg wählen.

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

Wege, die entscheidend aussehen und es nicht sind

Ein gefälschtes remove.sh zu schreiben, das mit dem Exit-Code null endet, ist die schlechteste Option auf der Liste. Es lässt die Deinstallation Erfolg melden, während Startdienste, Belege und Anwendungsdaten an Ort und Stelle bleiben, sodass die nächste Installation ein halb entferntes Produkt und eine Aufzeichnung erbt, die das Gegenteil behauptet.

Das Caskroom-Verzeichnis oder das App-Bundle von Hand zu löschen erzeugt einen ähnlichen Zustand aus der anderen Richtung. Dateien verschwinden, während der Beleg bleibt. Jeder spätere Befehl muss dann gegen einen Rechner abgewogen werden, der nicht mehr zu seiner eigenen Datenbank passt.

Ein brew update-reset für das gesamte Repository ist ein größerer Eingriff, als ein einziger fehlgeschlagener cask rechtfertigt. Er ändert Ihren Tap-Zustand, um ein Problem zu beheben, das nie den Tap-Zustand betraf, und er kann Sie ein anderes Homebrew debuggen lassen als das, mit dem Sie begonnen haben.

Der Reihe nach entscheiden

Arbeiten Sie die Reihenfolge ab: die verzeichneten Artefakte des casks lesen, Versionen vergleichen, jede laufende Komponente beenden, die gewöhnliche Deinstallation wiederholen und erst dann zap erwägen. Wenn der gewöhnliche Weg weiter scheitert, behalten Sie den Fehler und tragen Sie ihn mit den Versionsnummern zu den cask-Maintainern oder zum Hersteller.

Das Cask Cookbook sagt ausdrücklich, dass Paketinstallationsprogramme produktspezifische Deinstallationstechniken brauchen und dass zap optional ist und gemeinsam genutzte Ressourcen entfernen kann. Dieser Rahmen ist die Entscheidungsregel: zuerst die gewöhnliche Deinstallation, zap wenn Sie die Kosten für die Anmeldedaten akzeptieren, manuelles Löschen nie.

Ähnliche Artikel