Kolme eri vikaa kantaa samaa caskin virheilmoitusta, ja jokaisella on oma palautumispolkunsa. Toimittajan poisto-ohjelma voi puuttua asennetusta versiosta, apuprosessi voi yhä olla käynnissä ja pitää tiedostonsa, tai paketin kuitti voi olla ristiriidassa sen kanssa, mitä levyllä on. Vanha foorumikikka, joka pelasti yhden näistä tapauksista, ei kerro sinulle mitään siitä, mikä niistä sinulla on. Caskin oman merkinnän lukeminen on tapa saada se selville.

Kolme vialta näyttävää vikaa

Puuttuva poisto-ohjelma näkyy polkuna, jota ei ole, kun cask yrittää suorittaa sen. Käynnissä oleva apuprosessi näkyy poistona, joka alkaa ja sitten pysähtyy, tai sovelluksena, joka ilmestyy uudelleen, kun olet sulkenut sen. Vanhentunut kuitti näkyy, kun caskin oma merkintä ja asentajan tietokanta ovat eri mieltä siitä, onko tuote ylipäätään asennettu.

Tallenna ensimmäinen virheteksti ennen kuin yrität mitään uudelleen. Toinen yritys kirjoittaa sen tilan yli, joka tuotti viestin, ja alkuperäinen rivi on se, mitä ylläpitäjä tai toimittaja tarvitsee näiden erottamiseen. Kopioi se paikkaan, joka kestää uudelleenyrityksen.

Jos tämä VPN kuljettaa yhteyttä, jota käytät työhön, järjestä ensin toinen hallintareitti. Sen asiakasohjelman poistaminen, joka antaa sinulle pääsyn, on päätös huoltoikkunasta, ei Homebrew'sta. Juuri tämä järjestys tekee epäonnistuneesta poistosta palautettavan eikä lopullisen.

Lue, mitä cask todella asensi

Homebrew'n oma näkymä on halvin saatavilla oleva todiste, eikä se muuta mitään:

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

Ensimmäinen komento tulostaa caskin metatiedot ja artefaktit, joita se hallitsee; toinen luettelee sen, mikä on merkitty asennetuksi. Kumpikaan ei todista, että jokainen koneen apuprosessi vastaa nykyistä reseptiä, ja juuri siksi vanhempi asennus voi epäonnistua tavalla, jota nykyinen caskin lähde ei kuvaa. Käsittele kahta tulostetta tarkistettavana väitteenä, älä viimeisenä sanana siitä, mitä on olemassa.

Vertaa merkittyä versiota sovelluksen omaan versioon ennen polun valitsemista. Ero selittää puuttuvan poisto-ohjelman ilman syvempää vikaa, ja vastaus on päivitys versioon, jota cask odottaa, ei manuaalinen siivous.

Mitä zap lisää ja mitä se maksaa

Caskin poisto-osio hoitaa artefaktit, jotka resepti ilmoittaa: sovelluksen sulkeminen, käynnistystehtävien purkaminen, kirjautumiskohteen poistaminen, pakettikuittien unohtaminen ja sovelluspaketin poistaminen. Se on normaali polku, ja sen pitäisi toimia.

--zap on eri pyyntö. Se pyytää Homebrew'ta poistamaan myös käyttäjän asetukset ja jaetut resurssit, ja dokumentaatio varoittaa, että tämä voi vaikuttaa muihin ohjelmiin. OpenVPN Connectin caskissa zap-osio poistaa openvpn.keychain-db-tiedoston ja tyhjentää käyttäjän sovellustukitiedot, mikä tarkoittaa, että tallennetut tunnistetiedot ja yhteysprofiilit lähtevät sen mukana. Jos profiili tulee organisaatiolta, varmista ennen tämän polun valitsemista, että voit rekisteröityä uudelleen.

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

Polut, jotka näyttävät ratkaisevilta mutta eivät ole

Nollaan päättyvän väärän remove.sh-tiedoston kirjoittaminen on listan huonoin vaihtoehto. Se saa poiston raportoimaan onnistumisesta, samalla kun käynnistystehtävät, kuitit ja sovellustiedot jäävät paikoilleen, joten seuraava asennus perii puoliksi poistetun tuotteen ja merkinnän, joka väittää päinvastaista.

Caskroom-kansion tai sovelluspaketin poistaminen käsin tuottaa samankaltaisen tilan toisesta suunnasta. Tiedostot katoavat, mutta kuitti jää. Silloin jokainen myöhempi komento on arvioitava konetta vasten, joka ei enää vastaa omaa tietokantaansa.

Koko tietovaraston brew update-reset on suurempi toimenpide kuin yksi epäonnistunut cask oikeuttaa. Se muuttaa tap-tilaasi korjatakseen ongelman, joka ei koskaan ollut tap-tilasta, ja se voi jättää sinut selvittämään eri Homebrew'ta kuin se, jolla aloitit.

Päätöksenteko järjestyksessä

Etene järjestyksessä: lue caskin merkityt artefaktit, vertaa versioita, sulje jokainen käynnissä oleva osa, yritä tavallinen poisto uudelleen ja vasta sitten harkitse zapia. Jos tavallinen polku epäonnistuu edelleen, tallenna virhe ja vie se caskin ylläpitäjille tai toimittajalle versioiden numeroiden kanssa.

Cask Cookbook sanoo selvästi, että pakettiasentajat tarvitsevat tuotekohtaisia poistotekniikoita ja että zap on vapaaehtoinen ja voi poistaa jaettuja resursseja. Tämä kehys on päätössääntö: ensin tavallinen poisto, zap kun hyväksyt tunnistetietojen hinnan, käsin poistaminen ei koskaan.

Aiheeseen liittyvät artikkelit