Памылка выдалення пакета VPN у prerm: што праверыць у першую чаргу
Збойны скрыпт prerm спыняе выдаленне да таго, як файлы знікнуць. Прачытайце стан пакета і дакладную стадыю, затым выкарыстайце падтрыманы шлях аднаўлення.
Выдаленне можа спыніцца на паўдарозе з памылкай, якая называе скрыпт суправаджэння, пакідаючы VPN напалову выдаленым: файлы канфігурацыі застаюцца, сэрвіс можа ўсё яшчэ працаваць, а менеджар пакетаў адмаўляецца працягваць. Спакуслівае рашэнне са старой тэмы форуму — выдаліць скрыпт і прымусова выканаць выдаленне. Гэта лякуе сімптом і адкідае крок ачысткі, які не ўдаўся. Спачатку прачытайце стадыю і стан пакета.
Які менавіта этап жыццёвага цыкла не ўдаўся
Пакеты Debian запускаюць preinst і postinst пры ўсталяванні, а prerm і postrm пры выдаленні або поўнай ачыстцы, і код выхаду кожнага скрыпта вызначае наступнае дзеянне. Памылка ад prerm азначае, што выдаленне спынілася да выдалення файлаў пакета; памылка ад postrm азначае, што выдаленне ўжо адбылося, а ачыстка не ўдалася. Гэта розныя сітуацыі з рознымі шляхамі аднаўлення. Палітыка дыстрыбутыва таксама патрабуе, каб скрыпты вытрымлівалі паўторны запуск, бо няўдалую стадыю трэба паўтарыць, а не пазбягаць яе.
Запішыце першую памылку даслоўна разам з назвай пакета, версіяй і выпускам дыстрыбутыва. Наступныя памылкі звычайна з’яўляюцца следствам.
Прачытайце стан пакета перад змяненнем
Спытайце менеджар пакетаў, што, на яго думку, адбылося, перш чым выдаваць чарговую каманду.
dpkg -l vpn-package
dpkg --audit
apt-get -s remove vpn-packageСпіс паказвае сцягі стану пакета, аўдыт знаходзіць пакеты, пакінутыя зламанымі або напалову наладжанымі, а сімуляванае выдаленне друкуе тое, што зрабіў бы apt, нічога не чапаючы. Сімуляцыя, якая збоіць на тым жа скрыпце, пацвярджае стадыю, а не сетку. Заўважце скрыпт, названы ў памылцы, і пералічыце інфармацыйныя файлы пакета, калі трэба ўбачыць, якія скрыпты існуюць. Нішто з гэтага яшчэ не апраўдвае рэдагаванне гэтых файлаў.
Абараніце шлях кіравання перад рамонтам
Калі VPN нясе вашу адзіную SSH-сесію да гэтага хоста, яе выдаленне спыніць доступ пасярод рамонту. Спачатку арганізуйце кансоль, пазапаласны інтэрфейс кіравання або другі маршрут і пераканайцеся, што ён працуе, перад пачаткам. Захавайце профіль і любыя інструкцыі па паўторнай рэгістрацыі, якія спатрэбяцца пазней, бо поўная ачыстка можа выдаліць згенераваную канфігурацыю. Трымайце ўліковыя даныя па-за нататкамі, якія вы ўстаўляеце ў заяўку, і трымайце прыватныя ключы цалкам па-за дыягностыкай.
Разглядайце дакументаванае ручное перавызначэнне як апошні сродак пад кіраўніцтвам уладальніка пакета, з улікам прапушчаных крокаў. Ніколі не выдаляйце скрыпты па шаблоне, бо ўласны спіс ачысткі пакета — гэта запіс таго, што яшчэ трэба зрабіць.
Раздзяліце вынікі пакета, сеткі і ўліковых даных
Тры вынікі трэба праверыць незалежна пасля завяршэння падтрыманай працэдуры. Транзакцыя пакета павінна паказаць чысты стан, без напалову наладжаных запісаў, якія засталіся ў аўдыце. Сетка павінна адпавядаць задуманаму: патрэбны сэрвіс спынены, няма састарэлых маршрутаў або наладкаў DNS, і ёсць працоўны шлях для замены або прамога доступу. Аддалены бок — гэта трэці вынік, і састарэлыя ўліковыя даныя трэба адклікаць праз уладальніка таго ўліковага запісу, бо выдаленне кліента нічога не адклікае.
Затым перападключыцеся і праверце адзін дазволены пункт прызначэння. Чысты стан пакета з тунэлем, які ўсё яшчэ працуе, — гэта іншы вынік, чым чыстая сетка, і толькі другі кажа вам, што выдаленне сапраўды набыло моц.