Tři různé závady nesou stejnou chybovou zprávu casku a každá má vlastní cestu k nápravě. Odinstalátor od dodavatele může v nainstalované verzi chybět, pomocný proces může stále běžet a držet své soubory, nebo se potvrzení o balíčku může rozcházet s tím, co je na disku. Starý trik z fóra, který zachránil jeden z těchto případů, vám neřekne nic o tom, který máte vy. Zjistíte to čtením vlastního záznamu casku.

Tři závady, které vypadají stejně

Chybějící odinstalátor se projeví jako cesta, která neexistuje, když ji cask zkusí spustit. Živý pomocný proces se projeví jako odstraňování, které začne a pak se zasekne, nebo jako aplikace, která se po ukončení znovu objeví. Zastaralé potvrzení se projeví, když se vlastní záznam casku a databáze instalátoru neshodnou v tom, zda je produkt vůbec nainstalovaný.

Než cokoli zopakujete, uložte první text chyby. Druhý pokus přepíše stav, který zprávu vytvořil, a původní řádek je to, co správce nebo dodavatel potřebuje, aby tyto případy rozlišil. Zkopírujte ho někam, kde přežije nový pokus.

Pokud tato VPN nese připojení, které používáte k práci, připravte si nejprve jinou cestu pro správu. Odstranění klienta, který vám dává přístup, je rozhodnutí o servisním okně, ne o Homebrew. Právě toto pořadí dělá z neúspěšné odinstalace obnovitelný stav místo konečného.

Přečtěte si, co cask skutečně nainstaloval

Vlastní pohled Homebrew je nejlevnější dostupný důkaz a nic nemění:

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

První příkaz vypíše metadata casku a artefakty, které spravuje; druhý vypíše, co je zaznamenáno jako nainstalované. Ani jeden neprokazuje, že každý pomocný proces na stroji odpovídá aktuálnímu receptu, a právě proto může starší instalace selhat způsobem, který aktuální zdroj casku nepopisuje. Berte oba výstupy jako tvrzení k ověření, ne jako poslední slovo o tom, co existuje.

Než zvolíte cestu, porovnejte zaznamenanou verzi s vlastní verzí aplikace. Neshoda vysvětluje chybějící odinstalátor bez hlubší závady a odpovědí je aktualizace na verzi, kterou cask očekává, ne ruční čištění.

Co přidává zap a co stojí

Sekce pro odinstalaci v casku se stará o artefakty, které recept deklaruje: ukončení aplikace, vyložení úloh při přihlášení, odstranění přihlašovací položky, zapomenutí potvrzení o balíčcích a smazání balíku aplikace. To je běžná cesta a je to ta, která by měla fungovat.

--zap je jiný požadavek. Žádá Homebrew, aby odstranil i uživatelská nastavení a sdílené prostředky, a dokumentace varuje, že to může ovlivnit jiný software. V casku OpenVPN Connect sekce zap smaže openvpn.keychain-db a vyčistí uživatelská data na podporu aplikací, což znamená, že uložené přihlašovací údaje a profily připojení zmizí spolu s ním. Pokud profil pochází od organizace, ověřte, že se můžete znovu zaregistrovat, než tuto cestu zvolíte.

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

Cesty, které vypadají rozhodně, ale nejsou

Napsat falešný remove.sh, který skončí s nulovým návratovým kódem, je nejhorší možnost v seznamu. Odinstalace ohlásí úspěch, zatímco úlohy při přihlášení, potvrzení a data aplikace zůstanou na místě, takže další instalace zdědí napůl odstraněný produkt a záznam, který tvrdí opak.

Ruční smazání adresáře Caskroom nebo balíku aplikace vytvoří podobný stav z druhé strany. Soubory zmizí, potvrzení zůstane. Každý další příkaz pak musíte posuzovat vůči stroji, který už neodpovídá své vlastní databázi.

brew update-reset pro celé úložiště je větší zásah, než jeden neúspěšný cask ospravedlňuje. Mění stav vašich tapů, aby opravil problém, který nikdy nebyl o stavu tapů, a může vás nechat ladit jiný Homebrew, než se kterým jste začali.

Rozhodování popořadě

Postupujte popořadě: přečtěte zaznamenané artefakty casku, porovnejte verze, ukončete každou běžící součást, zopakujte běžnou odinstalaci a teprve potom zvažte zap. Pokud běžná cesta stále selhává, chybu si uložte a vezměte ji správcům casku nebo dodavateli s čísly verzí.

Cask Cookbook výslovně uvádí, že instalátory balíčků potřebují techniky odinstalace specifické pro produkt a že zap je dobrovolný a může odstranit sdílené prostředky. Toto vymezení je rozhodovací pravidlo: nejprve běžná odinstalace, zap, když přijmete cenu za přihlašovací údaje, ruční mazání nikdy.

Související články