Homebrew nu poate dezinstala OpenVPN Connect: care cale se potrivește?
O dezinstalare cask eșuată este una dintre trei defecte. Citiți artefactele cask, comparați versiunile, apoi alegeți între reîncercare, actualizare sau zap.
Trei defecte diferite poartă același mesaj de eroare cask, iar fiecare are propria cale de recuperare. Dezinstalatorul furnizorului poate lipsi din versiunea instalată, un proces ajutător poate încă rula și își poate ține fișierele, sau chitanța pachetului poate să nu corespundă cu ce este pe disc. Vechiul truc de pe forum care a salvat unul dintre aceste cazuri nu vă spune nimic despre care este al dumneavoastră. Citirea înregistrării proprii a cask-ului este modul de a afla.
Trei defecte care arată la fel
Un dezinstalator lipsă apare ca o cale care nu există atunci când cask-ul încearcă să îl ruleze. Un proces ajutător activ apare ca o eliminare care începe și apoi se blochează, sau ca o aplicație care reapare după ce ați închis-o. O chitanță învechită apare atunci când înregistrarea cask-ului și baza de date a instalatorului nu sunt de acord dacă produsul este instalat sau nu.
Păstrați primul text al erorii înainte de a reîncerca ceva. A doua încercare suprascrie starea care a produs mesajul, iar linia originală este ceea ce are nevoie un întreținător sau un furnizor pentru a distinge aceste cazuri. Copiați-o într-un loc care supraviețuiește reîncercării.
Dacă acest VPN transportă conexiunea cu care lucrați, pregătiți mai întâi o altă cale de administrare. Scoaterea clientului care vă oferă accesul este o decizie despre fereastra de mentenanță, nu despre Homebrew. Această ordine este și ceea ce face o dezinstalare eșuată recuperabilă în loc de definitivă.
Citiți ce a instalat de fapt cask-ul
Viziunea proprie a Homebrew este cea mai ieftină dovadă disponibilă și nu modifică nimic:
brew info --cask openvpn-connect
brew list --cask openvpn-connectPrima comandă afișează metadatele cask-ului și artefactele pe care le gestionează; a doua listează ceea ce este înregistrat ca instalat. Niciuna nu dovedește că fiecare proces ajutător de pe mașină corespunde rețetei actuale, și exact de aceea o instalare mai veche poate eșua într-un mod pe care sursa actuală a cask-ului nu îl descrie. Tratați cele două ieșiri ca pe o afirmație de verificat, nu ca pe ultimul cuvânt despre ce există.
Comparați versiunea înregistrată cu versiunea proprie a aplicației înainte de a alege o cale. O nepotrivire explică un dezinstalator lipsă fără niciun defect mai profund, iar răspunsul este o actualizare la versiunea pe care cask-ul o așteaptă, nu o curățare manuală.
Ce adaugă zap și cât costă
Strofa de dezinstalare a unui cask se ocupă de artefactele pe care le declară rețeta: închiderea aplicației, descărcarea sarcinilor de pornire, eliminarea unui element de autentificare, uitarea chitanțelor pachetului și ștergerea pachetului aplicației. Aceasta este calea normală și este cea care ar trebui să funcționeze.
--zap este o cerere diferită. Cere Homebrew să elimine și preferințele utilizatorului și resursele partajate, iar documentația avertizează că acest lucru poate afecta alt software. În cask-ul OpenVPN Connect strofa zap șterge openvpn.keychain-db și golește datele de suport pentru aplicații ale utilizatorului, ceea ce înseamnă că credentialele salvate și profilurile de conexiune pleacă împreună cu el. Dacă profilul provine de la o organizație, confirmați că vă puteți reînregistra înainte de a alege această cale.
| 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 |
Căi care par hotărâtoare și nu sunt
Scrierea unui remove.sh fals care se termină cu cod de ieșire zero este cea mai proastă opțiune din listă. Face dezinstalarea să raporteze succes în timp ce sarcinile de pornire, chitanțele și datele aplicației rămân pe loc, astfel încât instalarea următoare moștenește un produs pe jumătate eliminat și o înregistrare care spune contrariul.
Ștergerea manuală a directorului Caskroom sau a pachetului aplicației produce o stare similară din cealaltă parte. Fișierele dispar în timp ce chitanța rămâne. Fiecare comandă ulterioară trebuie apoi judecată față de o mașină care nu mai corespunde propriei baze de date.
Un brew update-reset pentru întregul depozit este o intervenție mai mare decât justifică un singur cask eșuat. Schimbă starea tap-urilor dumneavoastră pentru a rezolva o problemă care nu a fost niciodată despre starea tap-urilor și vă poate lăsa să depanați un alt Homebrew decât cel cu care ați început.
Decizia în ordine
Urmați ordinea: citiți artefactele înregistrate ale cask-ului, comparați versiunile, închideți fiecare componentă care rulează, reîncercați dezinstalarea obișnuită și abia apoi luați în calcul zap. Dacă calea obișnuită tot eșuează, păstrați eroarea și duceți-o la întreținătorii cask-ului sau la furnizor, împreună cu numerele de versiune.
Cask Cookbook spune explicit că instalatoarele de pachete au nevoie de tehnici de dezinstalare specifice produsului și că zap este opțional și poate elimina resurse partajate. Acest cadru este regula de decizie: mai întâi dezinstalarea obișnuită, zap când acceptați costul credentialelor, ștergerea manuală niciodată.