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 — калі вы прымаеце кошт уліковых даных, ручное выдаленне — ніколі.