Tatlong magkaibang depekto ang may dalang parehong mensahe ng error ng cask, at bawat isa ay may sariling landas ng pagbangon. Maaaring wala ang tagapag-uninstall ng vendor sa naka-install na bersyon, maaaring tumatakbo pa ang isang helper at hinahawakan ang mga file nito, o maaaring hindi tugma ang resibo ng package sa nasa disk. Ang lumang solusyon sa forum na nagligtas sa isa sa mga kasong iyon ay walang sinasabi tungkol sa kung alin ang mayroon ka. Ang pagbasa ng sariling rekord ng cask ang paraan para malaman.

Tatlong depektong magkamukha

Ang nawawalang tagapag-uninstall ay lumilitaw bilang landas na hindi umiiral kapag sinusubukan itong patakbuhin ng cask. Ang buhay na helper ay lumilitaw bilang pag-alis na nagsisimula at pagkatapos ay natigil, o bilang app na muling lumilitaw pagkatapos mong isara ito. Ang lumang resibo ay lumilitaw kapag hindi sang-ayon ang sariling rekord ng cask at ang database ng installer kung naka-install ba talaga ang produkto.

Itago ang unang teksto ng error bago subukan muli ang anuman. Ang ikalawang pagtatangka ay nagpapatong sa estado na gumawa ng mensahe, at ang orihinal na linya ang kailangan ng tagapangalaga o vendor upang makilala ang mga kasong ito. Kopyahin ito sa lugar na makakaligtas sa muling pagsubok.

Kung ang VPN na ito ang may dalang koneksyon na ginagamit mo sa trabaho, maghanda muna ng ibang landas ng administrasyon. Ang pag-alis sa client na nagbibigay sa iyo ng access ay desisyon tungkol sa window ng maintenance, hindi tungkol sa Homebrew. Ang pagkakasunod-sunod na iyon ang gumagawa sa nabigong pag-uninstall na maibabalik sa halip na panghuli.

Basahin kung ano talaga ang ininstall ng cask

Ang sariling pananaw ng Homebrew ang pinakamurang ebidensyang makukuha, at wala itong binabago:

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

Ang unang utos ay naglilimbag ng metadata ng cask at ng mga artifact na pinamamahalaan nito; ang pangalawa ay naglilista ng naitala bilang naka-install. Wala sa dalawa ang nagpapatunay na ang bawat helper sa makina ay tumutugma sa kasalukuyang recipe, at iyon mismo ang dahilan kung bakit ang mas lumang pag-install ay maaaring mabigo sa paraang hindi inilalarawan ng kasalukuyang source ng cask. Ituring ang dalawang output bilang pahayag na dapat suriin, hindi bilang huling salita tungkol sa kung ano ang umiiral.

Ihambing ang naitalang bersyon sa sariling bersyon ng app bago pumili ng landas. Ang pagkakaiba ay nagpapaliwanag ng nawawalang tagapag-uninstall nang walang mas malalim na depekto, at ang sagot ay pag-upgrade sa bersyon na inaasahan ng cask, hindi manu-manong paglilinis.

Ano ang idinadagdag ng zap, at magkano ito

Ang seksyon ng pag-uninstall ng cask ay humahawak sa mga artifact na idineklara ng recipe: pagsasara ng app, pagbaba ng mga launch job, pag-alis ng login item, paglimot sa mga resibo ng package at pagbura ng bundle ng app. Iyon ang normal na landas, at iyon ang dapat gumana.

--zap ay ibang kahilingan. Hinihiling nito sa Homebrew na alisin din ang mga kagustuhan ng user at mga shared resource, at nagbabala ang dokumentasyon na maaaring makaapekto ito sa ibang software. Sa cask ng OpenVPN Connect, binubura ng seksyon ng zap ang openvpn.keychain-db at nililinis ang data ng app support ng user, na nangangahulugang ang mga naka-save na kredensyal at profile ng koneksyon ay kasamang nawawala. Kung ang profile ay galing sa isang organisasyon, tiyakin na makakapag-rehistro ka muli bago piliin ang landas na ito.

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

Mga landas na mukhang tiyak at hindi

Ang pagsulat ng pekeng remove.sh na nagtatapos sa zero na exit code ang pinakamasamang opsyon sa listahan. Pinapabaya nitong iulat ng pag-uninstall ang tagumpay habang ang mga launch job, resibo at data ng app ay nananatili, kaya ang susunod na pag-install ay nagmamana ng kalahating naalis na produkto at rekord na nagsasabi ng kabaligtaran.

Ang manu-manong pagbura sa direktoryo ng Caskroom o sa bundle ng app ay lumilikha ng katulad na estado mula sa kabilang panig. Nawawala ang mga file habang nananatili ang resibo. Ang bawat susunod na utos ay dapat isipin laban sa makinang hindi na tumutugma sa sarili nitong database.

Ang brew update-reset sa buong repository ay mas malaking interbensyon kaysa sa kayang bigyang-katwiran ng isang nabigong cask. Binabago nito ang estado ng iyong tap upang ayusin ang problemang hindi kailanman tungkol sa estado ng tap, at maaari kang maiwan na nagde-debug ng ibang Homebrew kaysa sa sinimulan mo.

Pagpapasya ayon sa pagkakasunod-sunod

Sundin ang pagkakasunod-sunod: basahin ang mga naitalang artifact ng cask, ihambing ang mga bersyon, isara ang bawat tumatakbong bahagi, subukang muli ang ordinaryong pag-uninstall, at pagkatapos lamang isaalang-alang ang zap. Kung nabibigo pa rin ang ordinaryong landas, itago ang error at dalhin ito sa mga tagapangalaga ng cask o sa vendor kasama ang mga numero ng bersyon.

Cask Cookbook ay malinaw na nagsasabi na ang mga installer ng package ay nangangailangan ng mga teknik sa pag-uninstall na partikular sa produkto at ang zap ay opsyonal at maaaring mag-alis ng mga shared resource. Ang balangkas na iyon ang tuntunin sa pagpapasya: ordinaryong pag-uninstall muna, zap kapag tinatanggap mo ang halaga ng kredensyal, manu-manong pagbura kailanman.

Kaugnay na mga artikulo