Homebrew nie odinstalowuje OpenVPN Connect: która ścieżka pasuje?
Nieudane odinstalowanie cask to jedna z trzech usterek. Przeczytaj artefakty cask, porównaj wersje, a potem wybierz między ponowną próbą, aktualizacją lub zap.
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-connectPierwsze 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ę.
| Condition | Path that fits | Path to avoid |
|---|---|---|
| Uninstaller path missing after an OS upgrade | Upgrade the cask to the version matching the app | Hand-writing a replacement script |
| Helper still running during removal | Quit the app and its menu agent, then retry | Deleting the bundle while the helper runs |
| Receipt exists but files are gone | Forget the receipt with the cask's own tooling | Recursive deletion of the Caskroom entry |
| You need the machine clean and can re-enroll | Zap, after reading the stanza | Zap 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.