Drie verschillende fouten dragen dezelfde cask-foutmelding, en elk heeft zijn eigen herstelpad. Het de-installatieprogramma van de leverancier kan ontbreken in de geïnstalleerde versie, een hulpproces kan nog draaien en zijn bestanden vasthouden, of de pakketbon kan niet overeenkomen met wat er op de schijf staat. De oude forumtruc die een van die gevallen redde, vertelt je niets over welke je hebt. Het eigen register van de cask lezen is de manier om erachter te komen.

Drie fouten die op elkaar lijken

Een ontbrekend de-installatieprogramma verschijnt als een pad dat niet bestaat wanneer de cask het probeert uit te voeren. Een levend hulpproces verschijnt als een verwijdering die begint en dan vastloopt, of als een toepassing die terugkeert nadat je hem hebt afgesloten. Een verouderde bon verschijnt wanneer het eigen register van de cask en de database van het installatieprogramma het er niet over eens zijn of het product überhaupt is geïnstalleerd.

Bewaar de eerste fouttekst voordat je iets opnieuw probeert. Een tweede poging overschrijft de toestand die de melding produceerde, en de oorspronkelijke regel is wat een beheerder of leverancier nodig heeft om deze gevallen te onderscheiden. Kopieer hem naar een plek die de nieuwe poging overleeft.

Als deze VPN de verbinding draagt die je gebruikt om te werken, regel dan eerst een ander beheerpad. De client verwijderen die je toegang geeft is een beslissing over het onderhoudsvenster, niet over Homebrew. Die volgorde is ook wat een mislukte de-installatie herstelbaar maakt in plaats van definitief.

Lees wat de cask werkelijk heeft geïnstalleerd

De eigen weergave van Homebrew is het goedkoopste beschikbare bewijs, en het verandert niets:

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

Het eerste commando drukt de cask-metadata af en de artefacten die het beheert; het tweede somt op wat als geïnstalleerd is geregistreerd. Geen van beide bewijst dat elk hulpproces op de machine overeenkomt met het huidige recept, en precies daarom kan een oudere installatie mislukken op een manier die de huidige cask-bron niet beschrijft. Behandel de twee uitvoer als een bewering die gecontroleerd moet worden, niet als het laatste woord over wat bestaat.

Vergelijk de geregistreerde versie met de eigen versie van de toepassing voordat je een pad kiest. Een afwijking verklaart een ontbrekend de-installatieprogramma zonder diepere fout, en het antwoord is een upgrade naar de versie die de cask verwacht, niet een handmatige opschoning.

Wat zap toevoegt, en wat het kost

De de-installatiestrofe van een cask behandelt de artefacten die het recept verklaart: de app afsluiten, starttaken lossen, een login-item verwijderen, pakketbonnen vergeten en de applicatiebundel verwijderen. Dat is het normale pad, en dat is degene die zou moeten werken.

--zap is een ander verzoek. Het vraagt Homebrew ook gebruikersvoorkeuren en gedeelde bronnen te verwijderen, en de documentatie waarschuwt dat dit andere software kan beïnvloeden. In de cask OpenVPN Connect verwijdert de zap-strofe openvpn.keychain-db en wist de applicatie-ondersteuningsgegevens van de gebruiker, wat betekent dat opgeslagen inloggegevens en verbindingsprofielen mee verdwijnen. Als het profiel van een organisatie komt, bevestig dan dat je je opnieuw kunt aanmelden voordat je dit pad kiest.

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

Paden die beslissend lijken en het niet zijn

Een nep-remove.sh schrijven die eindigt met nul als exitcode is de slechtste optie op de lijst. Het laat de de-installatie succes melden terwijl starttaken, bonnen en app-gegevens blijven staan, zodat de volgende installatie een half verwijderd product erft en een register dat het tegendeel zegt.

De Caskroom-map of de applicatiebundel met de hand verwijderen levert een vergelijkbare toestand op vanuit de andere richting. Bestanden verdwijnen terwijl de bon blijft. Elk later commando moet dan worden beredeneerd tegen een machine die niet meer overeenkomt met zijn eigen database.

Een brew update-reset voor de hele repository is een grotere ingreep dan één mislukte cask rechtvaardigt. Het verandert je tap-status om een probleem op te lossen dat nooit over tap-status ging, en het kan je een andere Homebrew laten debuggen dan degene waarmee je begon.

Beslissen in volgorde

Werk de volgorde af: lees de geregistreerde artefacten van de cask, vergelijk versies, sluit elk draaiend onderdeel, probeer de gewone de-installatie opnieuw en overweeg pas daarna zap. Als het gewone pad nog steeds mislukt, bewaar dan de fout en breng hem naar de beheerders van de cask of de leverancier met de versienummers.

De Cask Cookbook zegt expliciet dat pakketinstallatieprogramma's productspecifieke de-installatietechnieken nodig hebben en dat zap optioneel is en gedeelde bronnen kan verwijderen. Dat kader is de beslissingsregel: gewone de-installatie eerst, zap wanneer je de kosten van de inloggegevens accepteert, handmatig verwijderen nooit.

Gerelateerde artikelen