Homebrew не може да деинсталира OpenVPN Connect: која путања одговара?
Неуспешно деинсталирање cask-а једна је од три грешке. Прочитајте артефакте cask-а, упоредите верзије, па изаберите између поновног покушаја, надоградње или zap.
Три различите грешке носе исту поруку о грешци cask-а, и свака има свој пут опоравка. Деинсталатер добављача може недостајати у инсталираној верзији, помоћни процес може још радити и држати своје датотеке, или се потврда пакета може разилазити с оним што је на диску. Старо форумско решење које је спасило један од тих случајева не говори вам ништа о томе који је ваш. Читање сопственог записа cask-а је начин да то сазнате.
Три грешке које изгледају исто
Деинсталатер који недостаје појављује се као путања која не постоји када cask покуша да га покрене. Живи помоћни процес појављује се као уклањање које почне и затим се заглави, или као апликација која се поново појави након што је затворите. Застарела потврда појављује се када се сопствени запис cask-а и база инсталатера не слажу око тога да ли је производ уопште инсталиран.
Сачувајте први текст грешке пре него што било шта поновите. Други покушај преписује стање које је произвело поруку, а изворни ред је оно што је потребно одржаваоцу или добављачу да разликује ове случајеве. Копирајте га негде где ће преживети поновни покушај.
Ако овај VPN носи везу коју користите за рад, прво обезбедите други пут за администрацију. Уклањање клијента који вам даје приступ одлука је о прозору за одржавање, а не о Homebrew-у. Тај редослед је и оно што неуспешно деинсталирање чини обновљивим уместо коначним.
Прочитајте шта је cask заиста инсталирао
Сопствени поглед Homebrew-а најјефтинији је доступни доказ и ништа не мења:
brew info --cask openvpn-connect
brew list --cask openvpn-connectПрва наредба исписује метаподатке cask-а и артефакте којима управља; друга наводи оно што је забележено као инсталирано. Ниједна не доказује да сваки помоћни процес на машини одговара тренутном рецепту, и управо зато старија инсталација може пасти на начин који тренутни извор cask-а не описује. Третирајте оба излаза као тврдњу коју треба проверити, а не као последњу реч о томе шта постоји.
Упоредите забележену верзију са сопственом верзијом апликације пре него што изаберете пут. Несклад објашњава деинсталатер који недостаје без дубље грешке, а одговор је надоградња на верзију коју cask очекује, а не ручно чишћење.
Шта zap додаје и колико кошта
Одељак за уклањање у cask-у обрађује артефакте које рецепт декларише: затварање апликације, истовар задатака покретања, уклањање ставке за пријаву, заборављање потврда пакета и брисање пакета апликације. То је уобичајени пут и то је онај који би требало да ради.
--zap је други захтев. Тражи од Homebrew-а да уклони и корисничка подешавања и дељене ресурсе, а документација упозорава да то може утицати на други софтвер. У cask-у OpenVPN Connect zap одељак брише openvpn.keychain-db и чисти корисничке податке о подршци апликацијама, што значи да сачувани акредитиви и профили везе одлазе с њим. Ако профил долази из организације, потврдите да можете поново да се региструјете пре него што изаберете овај пут.
| 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 |
Путање које изгледају одлучно, а нису
Писање лажног remove.sh који се завршава са нултим излазним кодом најгора је опција на списку. Чини да уклањање пријави успех док задаци покретања, потврде и подаци апликације остају на месту, па следећа инсталација наслеђује напола уклоњен производ и запис који тврди супротно.
Ручно брисање директоријума Caskroom или пакета апликације ствара слично стање са друге стране. Датотеке нестају, а потврда остаје. Тада се о свакој каснијој наредби мора размишљати према машини која више не одговара својој бази.
brew update-reset за цело складиште већи је захват него што један неуспели cask оправдава. Мења стање ваших tap-ова да би решио проблем који никада није био о стању tap-ова, и може вас оставити да отклањате грешке у другом Homebrew-у од оног с којим сте почели.
Одлучивање по реду
Радите по реду: прочитајте забележене артефакте cask-а, упоредите верзије, затворите сваку компоненту која ради, поновите уобичајено уклањање и тек онда размотрите zap. Ако уобичајени пут и даље пада, сачувајте грешку и однесите је одржаваоцима cask-а или добављачу с бројевима верзија.
Cask Cookbook изричито каже да инсталатери пакета требају технике уклањања специфичне за производ и да је zap добровољан и може уклонити дељене ресурсе. Тај оквир је правило одлуке: прво уобичајено уклањање, zap када прихватите цену акредитива, ручно брисање никада.