Trys skirtingi gedimai neša tą pačią cask klaidos žinutę, ir kiekvienas turi savo atkūrimo kelią. Gamintojo šalinimo programa gali trūkti įdiegtoje versijoje, pagalbinis procesas gali dar veikti ir laikyti savo failus, arba paketo kvitas gali nesutarti su tuo, kas yra diske. Senas forumo sprendimas, kuris išgelbėjo vieną iš tų atvejų, nieko nepasako apie tai, kuris yra jūsų. cask savo įrašo skaitymas yra būdas tai sužinoti.

Trys gedimai, kurie atrodo vienodai

Trūkstama šalinimo programa pasirodo kaip kelias, kurio nėra, kai cask bando ją paleisti. Veikiantis pagalbinis procesas pasirodo kaip šalinimas, kuris prasideda ir tada sustoja, arba kaip programa, kuri vėl atsiranda ją uždarius. Pasenęs kvitas pasirodo tada, kai cask savo įrašas ir diegėjo duomenų bazė nesutaria, ar produktas apskritai įdiegtas.

Išsaugokite pirmąjį klaidos tekstą prieš ką nors kartodami. Antras bandymas perrašo būseną, kuri sukūrė žinutę, o pradinė eilutė yra tai, ko reikia prižiūrėtojui ar gamintojui šiems atvejams atskirti. Nukopijuokite ją ten, kur ji išliks po pakartojimo.

Jei šis VPN neša ryšį, kurį naudojate darbui, pirmiausia pasirūpinkite kitu administravimo keliu. Kliento, kuris suteikia jums prieigą, šalinimas yra sprendimas apie priežiūros langą, o ne apie Homebrew. Būtent ši tvarka daro nepavykusį šalinimą atkuriamą, o ne galutinį.

Perskaitykite, ką cask iš tikrųjų įdiegė

Homebrew savo vaizdas yra pigiausias prieinamas įrodymas, ir jis nieko nekeičia:

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

Pirmoji komanda išspausdina cask metaduomenis ir artefaktus, kuriuos jis valdo; antroji išvardija tai, kas įrašyta kaip įdiegta. Nė viena neįrodo, kad kiekvienas mašinos pagalbinis procesas atitinka dabartinį receptą, ir būtent todėl senesnis diegimas gali nepavykti taip, kaip dabartinis cask šaltinis neaprašo. Traktuokite abi išvestis kaip teiginį, kurį reikia patikrinti, o ne kaip paskutinį žodį apie tai, kas egzistuoja.

Prieš rinkdamiesi kelią, palyginkite įrašytą versiją su pačios programos versija. Neatitikimas paaiškina trūkstamą šalinimo programą be gilesnio gedimo, o atsakymas yra atnaujinimas į versiją, kurios tikisi cask, o ne rankinis valymas.

Ką zap prideda ir kiek tai kainuoja

cask šalinimo dalis tvarko artefaktus, kuriuos deklaruoja receptas: programos uždarymas, paleidimo užduočių iškėlimas, prisijungimo elemento pašalinimas, paketo kvitų užmiršimas ir programos paketo ištrynimas. Tai įprastas kelias, ir būtent jis turėtų veikti.

--zap yra kitas prašymas. Jis prašo Homebrew pašalinti ir naudotojo nuostatas bei bendrinamus išteklius, o dokumentacija įspėja, kad tai gali paveikti kitą programinę įrangą. OpenVPN Connect cask atveju zap dalis ištrina openvpn.keychain-db ir išvalo naudotojo programų palaikymo duomenis, o tai reiškia, kad išsaugoti prisijungimo duomenys ir ryšio profiliai dingsta kartu. Jei profilis gautas iš organizacijos, prieš rinkdamiesi šį kelią patvirtinkite, kad galite iš naujo užsiregistruoti.

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

Keliai, kurie atrodo ryžtingi, bet tokie nėra

Rašyti netikrą remove.sh, kuris baigiasi nuliniu išėjimo kodu, yra blogiausias sąrašo variantas. Jis priverčia šalinimą pranešti apie sėkmę, o paleidimo užduotys, kvitai ir programos duomenys lieka savo vietose, todėl kitas diegimas paveldi pusiau pašalintą produktą ir įrašą, kuris sako priešingai.

Rankinis Caskroom katalogo ar programos paketo trynimas sukuria panašią būseną iš kitos pusės. Failai dingsta, o kvitas lieka. Tada kiekviena vėlesnė komanda turi būti svarstoma mašinos, kuri nebeatitinka savo pačios duomenų bazės, atžvilgiu.

Visos saugyklos brew update-reset yra didesnė intervencija, nei pateisina vienas nepavykęs cask. Jis pakeičia jūsų tap būseną, kad išspręstų problemą, kuri niekada nebuvo apie tap būseną, ir gali palikti jus derinant kitą Homebrew, nei tą, su kuriuo pradėjote.

Sprendimas eilės tvarka

Eikite iš eilės: perskaitykite įrašytus cask artefaktus, palyginkite versijas, uždarykite kiekvieną veikiantį komponentą, pakartokite įprastą šalinimą ir tik tada apsvarstykite zap. Jei įprastas kelias vis dar nepavyksta, išsaugokite klaidą ir nuneškite ją cask prižiūrėtojams ar gamintojui su versijų numeriais.

Cask Cookbook aiškiai sako, kad paketų diegėjams reikia produktui būdingų šalinimo metodų ir kad zap yra pasirenkamas ir gali pašalinti bendrinamus išteklius. Ta sistema yra sprendimo taisyklė: pirmiausia įprastas šalinimas, zap kai sutinkate su prisijungimo duomenų kaina, rankinis trynimas niekada.

Susiję straipsniai