Видалення пакета 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, і є робочий шлях для заміни або прямого доступу. Віддалена сторона — третій результат, а застарілі облікові дані слід відкликати через власника того облікового запису, бо видалення клієнта нічого не відкликає.
Потім підключіться знову і перевірте один дозволений пункт призначення. Чистий стан пакета з тунелем, що все ще працює, — це інший результат, ніж чиста мережа, і лише другий каже вам, що видалення справді набуло чинності.