Trzy różne usterki noszą ten sam komunikat błędu cask, a każda ma własną ścieżkę naprawy. Deinstalator dostawcy może brakować w zainstalowanej wersji, proces pomocniczy może wciąż działać i trzymać swoje pliki, albo kwit pakietu może nie zgadzać się z tym, co jest na dysku. Stary trik z forum, który uratował jeden z tych przypadków, nic nie mówi o tym, który masz. Czytanie własnego rejestru cask to sposób, aby się dowiedzieć.

Trzy usterki, które wyglądają podobnie

Brakujący deinstalator objawia się jako ścieżka, która nie istnieje, gdy cask próbuje go uruchomić. Działający proces pomocniczy objawia się jako usuwanie, które zaczyna się i potem zastyga, albo jako aplikacja, która pojawia się ponownie po jej zamknięciu. Nieaktualny kwit objawia się wtedy, gdy własny rejestr cask i baza instalatora nie zgadzają się co do tego, czy produkt jest w ogóle zainstalowany.

Zachowaj pierwszy tekst błędu, zanim cokolwiek powtórzysz. Druga próba nadpisuje stan, który wytworzył komunikat, a pierwotna linia jest tym, czego potrzebuje opiekun lub dostawca, aby te przypadki rozróżnić. Skopiuj ją w miejsce, które przetrwa ponowną próbę.

Jeśli ta VPN przenosi połączenie, z którego korzystasz w pracy, najpierw przygotuj inną ścieżkę administracji. Usunięcie klienta, który daje ci dostęp, jest decyzją o oknie serwisowym, a nie o Homebrew. Właśnie ta kolejność czyni nieudane odinstalowanie odwracalnym, a nie ostatecznym.

Przeczytaj, co cask naprawdę zainstalował

Własny widok Homebrew to najtańszy dostępny dowód i niczego nie zmienia:

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

Pierwsze polecenie wypisuje metadane cask i artefakty, którymi zarządza; drugie wymienia to, co jest zapisane jako zainstalowane. Żadne z nich nie dowodzi, że każdy proces pomocniczy na maszynie odpowiada bieżącej recepturze, i właśnie dlatego starsza instalacja może zawieść w sposób, którego bieżące źródło cask nie opisuje. Traktuj oba wyjścia jako twierdzenie do sprawdzenia, a nie jako ostatnie słowo o tym, co istnieje.

Przed wyborem ścieżki porównaj zapisaną wersję z własną wersją aplikacji. Rozbieżność wyjaśnia brakujący deinstalator bez głębszej usterki, a odpowiedzią jest aktualizacja do wersji, której oczekuje cask, a nie ręczne czyszczenie.

Co dodaje zap i ile to kosztuje

Sekcja odinstalowania cask obsługuje artefakty deklarowane przez recepturę: zamknięcie aplikacji, wyładowanie zadań startowych, usunięcie elementu logowania, zapomnienie kwitów pakietu i usunięcie pakietu aplikacji. To jest normalna ścieżka i to ona powinna działać.

--zap to inne żądanie. Prosi Homebrew o usunięcie także preferencji użytkownika i zasobów współdzielonych, a dokumentacja ostrzega, że może to wpłynąć na inne oprogramowanie. W cask OpenVPN Connect sekcja zap usuwa openvpn.keychain-db i czyści dane pomocnicze aplikacji użytkownika, co oznacza, że zapisane dane uwierzytelniające i profile połączeń znikają razem z nim. Jeśli profil pochodzi od organizacji, potwierdź, że możesz zarejestrować się ponownie, zanim wybierzesz tę ścieżkę.

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

Ścieżki, które wyglądają rozstrzygająco, a nie są

Napisanie fałszywego remove.sh, który kończy się zerowym kodem wyjścia, to najgorsza opcja na liście. Powoduje, że odinstalowanie zgłasza sukces, podczas gdy zadania startowe, kwity i dane aplikacji pozostają na miejscu, więc następna instalacja dziedziczy na wpół usunięty produkt i rejestr, który twierdzi coś przeciwnego.

Ręczne usunięcie katalogu Caskroom lub pakietu aplikacji tworzy podobny stan z drugiej strony. Pliki znikają, a kwit zostaje. Każde późniejsze polecenie trzeba wtedy rozważać wobec maszyny, która nie odpowiada już własnej bazie danych.

Wykonanie brew update-reset dla całego repozytorium to większa ingerencja, niż uzasadnia jeden nieudany cask. Zmienia stan twoich tapów, aby naprawić problem, który nigdy nie dotyczył stanu tapów, i może zostawić cię przy debugowaniu innego Homebrew niż ten, z którym zacząłeś.

Decyzja po kolei

Przejdź kolejność: przeczytaj zapisane artefakty cask, porównaj wersje, zamknij każdy działający składnik, ponów zwykłe odinstalowanie i dopiero potem rozważ zap. Jeśli zwykła ścieżka nadal zawodzi, zachowaj błąd i zanieś go opiekunom cask lub dostawcy wraz z numerami wersji.

Cask Cookbook mówi wprost, że instalatory pakietów potrzebują technik odinstalowania specyficznych dla produktu oraz że zap jest opcjonalny i może usuwać zasoby współdzielone. Ta rama jest regułą decyzji: najpierw zwykłe odinstalowanie, zap gdy akceptujesz koszt danych uwierzytelniających, ręczne usuwanie nigdy.

Powiązane artykuły