Homebrew negali pašalinti OpenVPN Connect: kuris kelias tinka?
Nepavykęs cask šalinimas yra viena iš trijų gedimų. Perskaitykite cask artefaktus, palyginkite versijas, tada rinkitės kartojimą, atnaujinimą arba zap.
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-connectPirmoji 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.
| 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 |
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.