Як видалити пошкоджені пакети в Ubuntu Linux

linuxTerminal

Як професійному користувачеві Linux, мені доводиться встановлювати, тестувати та видаляти тонни пакетів на своїх системах Ubuntu, Fedora та Arch.

Установка і видалення пакетів це просто, але якщо ви зіткнетеся з проблемою битих пакетів на вашій машині Ubuntu, це призведе до хаосу. Якщо ви не можете видалити биті пакети з вашої машини Ubuntu, ви, ймовірно, зіткнетеся з проблемами при їх подальшій установці. Крім того, биті пакети займають деяке місце в файловій системі Ubuntu.

Видалення битих пакетів в Ubuntu Linux

В Ubuntu проблема битих пакетів може виникнути через помилки залежності, помилки сховища, блокування файлової системи або інших проблем. Іноді вам може знадобитися виконати команди від імені користувача root, щоб видалити пошкоджені пакети з системи Ubuntu.

Зазвичай пакети встановлюються всередині кореневої файлової системи; коли у вас є повноваження root, і ви робите будь-які невідповідності з будь-яким з тих файлів або каталогів, де встановлений пакет, тоді він може виявитися битим.

Інший спосіб зловити битий пакет – видалити репозиторій пакетів з системи. Ви можете використовувати команди aptitude або dpkg для видалення додатків з системи, але вони не видалять биті пакети повністю. У цьому пості ми розглянемо, як видалити биті пакети з системи Ubuntu.

1. Очищення конкретного пакета в Ubuntu

Коли ви точно знаєте, який пакет має проблему на вашій машині Ubuntu, ви можете використовувати цей метод, щоб видалити цей пакет і очистити дисковий простір. Спочатку необхідно очистити та видалити файли кешу цього додатка.

Наприклад, ви можете виконати наступні команди, щоб очистити файли кешу для пакета NodeJS, який зламався на вашій системі Ubuntu.

sudo rm -rf /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb

Тепер виконайте команду auto clean, щоб звільнити місце на диску, а потім поновіть системний репозиторій.

sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade

Ви також можете використовувати команду move, щоб перемістити файли кешу вашого застосування в тимчасові файли. Потім ви можете видалити пошкоджений пакет через інструмент менеджера пакунків Debian (dpkg). Наприклад, такі команди видалять зламаний менеджер версій Ruby (RVM) в системі Ubuntu.

sudo mv /var/lib/dpkg/info/rvm.* /tmp/
sudo dpkg --remove --force-remove-reinstreq rvm

2. Розв’язання проблеми блокування

Іноді, після установки пакета в дистрибутивах Ubuntu або Debian, пакет зберігає деякі дані в файловій системі у вигляді архіву. Тому, коли ви намагаєтеся видалити цей файл, ви отримуєте помилку, яка говорить, що файл використовується іншим інструментом або іншою програмою.

Зазвичай, коли ви видаляєте інструмент з машини, файли залежностей і інші плагіни теж повинні бути видалені. Але що робити, якщо деякі пакети не хочуть залишати ваш комп’ютер! Будь ласка, видаліть заблоковані файли пакетів Debian, виконавши наступні команди remove з правами root.

sudo rm/var/lib/apt/lists/lock
sudo rm/var/cache/apt/archives/lock

3. Примусове видалення пошкоджених пакетів

Цей метод допоможе вам примусово видалити неробочі пакети в системі Ubuntu. Примусове видалення потрібно тому, що при установці деяких пакетів в систему вони встановлюються в кореневий каталог. Однак ви можете виконати наступну команду dpkg, наведену нижче, щоб видалити всі неробочі пакети з вашої системи. Будь ласка, не забудьте замінити <packagename> на ім’я вашого пошкодженого пакета.

sudo dpkg --remove --force-remove-reinstreq <packagename>
sudo apt-get update

Ви також можете створити список видалених пакетів у вашій системі Ubuntu, виконавши наступну команду GREP в оболонці терміналу. Потім видаліть їх, виконавши наступну команду dpkg.

sudo dpkg -l | grep ^ .. r
sudo dpkg --remove --force-remove --reinstreq

Ось ще одна річ, яка може вам знадобитися: після видалення неробочого пакета в системі Ubuntu, будь ласка, виконайте команди aptitude для поновлення системного сховища.

sudo apt update --fix-missing update

Тепер виконайте наступну команду aptitude з прапором F, щоб побачити, які пакунки були встановлені автоматично і більше не потрібні. Пізніше ви зможете вжити заходів і для цих додатків.

sudo apt-get install -f

4. Автоматичне очищення пошкоджених пакетів в Ubuntu

Команди auto clean і auto-remove насправді не видаляють пошкоджені пакети з системи. Проте вони допомагають звільнити місце, яке займав раніше встановлений / віддалений додаток.

Часто розробники створюють додаток таким чином, що файли програми залишаються в файловій системі навіть після видалення програми з системи. У деякому роді, вони дійсно корисні при повторній установці того ж додатка тим же методом.

Проте виконайте наступні команди clean і auto-clean в оболонці терміналу, щоб очистити невикористовувані місця в системі, видаливши файли кешу.

sudo apt-get autoclean
sudo apt-get clean

Тепер виконайте наступну команду auto-remove з правами root, щоб видалити непотрібні програми та дані залежностей.

sudo apt-get autoremove

Після очищення системи виконайте команду поновлення сховища для безперебійної роботи вашого ПК.

sudo apt-get update

5. Відновлення пошкоджених пакетів через режим відновлення

У цьому методі ми покажемо самий використовуваний спосіб видалення пошкодженого пакета в системі Ubuntu. Ми будемо використовувати режим відновлення Ubuntu для відновлення пошкоджених пакетів. Отже, технічно цей метод не звертає вас на видалення пошкоджених додатків, але він виконує деякі завдання, які також відновлюють пошкоджені додатки. Коли інструмент dpkg не може відновити пакет, ви можете видалити його з системи.

Спочатку запустіть систему Ubuntu і натисніть клавішу Shift, щоб увійти в режим відновлення. Якщо клавіша Shift у вас не працює, вам може знадобитися знайти комбінацію кнопок відновлення для вашої моделі ПК / ноутбука, виконавши швидкий пошук в Google.

Після перезавантаження комп’ютера виберіть в меню завантаження Додаткові параметри Ubuntu, потім, коли відкриється режим відновлення, виберіть у випадаючому списку меню ‘Відновити пошкоджений пакет’.

Тепер вам потрібно натиснути кнопку Yes для монтування вашої системи всередині файлової системи. Це перемонтує файлову систему в режимі читання / запису, а інші файлові системи будуть змонтовані в каталозі /etc/fstab.

repair-brpken-packages-from-recovery-mode-on-ubuntu build-cache-and-load-files

6. Виправлення зламаного системного пакета

Зазвичай на машині Ubuntu ми використовуємо додаток Software Updater для поновлення сховища, файлів кешу та інших даних пакета. Але іноді, через помилки залежності або системні помилки, ви не можете запустити додаток Software Updater.

Щоб позбутися від цієї проблеми, ви можете очистити системний кеш і трохи підправити порушену файлову систему. Виконайте наступні команди з правами root в оболонці терміналу, щоб очистити файли кешу і встановити відсутні залежності.

sudo apt-get clean
sudo apt-get install -f

7. Отримання менеджера пакетів Synaptic

Менеджер пакетів Synaptic є найбільш використовуваним інструментом управління пакетами на основі графічного інтерфейсу для Ubuntu та інших дистрибутивів Debian. У ньому є функції для установки, видалення, оновлення та виправлення неробочих пакетів. Якщо на вашій машині не встановлений інструмент Synaptic, виконайте наступні команди в терміналі з правами root для його установки.

sudo apt-get update
sudo apt-get install synaptic

Коли установка менеджера пакетів Synaptic завершиться, відкрийте його і натисніть на кнопку “Змінити” у верхній панелі. Тепер знайдіть опцію ‘Fix Broken Packages’. Зазвичай, щоб оновити, видалити або виправити будь-які пакети через інструмент Synaptic, вам потрібно спочатку відзначити цей додаток в списку “Всі пакети”.

fix-broken-packages-on-ubuntu-via-synptic

Після виправлення пакета, ви можете вибрати будь-який з вищезазначених методів для видалення цього додатка з системи Ubuntu.

Додаткові поради: Режим відновлення для видалення пошкодженого пакета

Ось додаткова пропозиція, яку я використовую у своїй системі Ubuntu час від часу, щоб системні пакети не були пошкоджені. Вам потрібно очистити та видалити файли сховища, коли ви більше не використовуєте це програмне забезпечення, інакше кожен раз при оновленні сховища ви будете бачити помилку.

Щоб видалити невикористовувані репозиторії з машини Ubuntu, відкрийте інструмент ‘Software & Updates’ і перейдіть на вкладку ‘Other Software’. На вкладці “Інше ПЗ” ви побачите список репозиторіїв, встановлених у вашій системі. Щоб видалити будь-який репозиторій, відзначте назву сховища та натисніть на кнопку “Видалити” в нижній панелі.

other-software-repo

Після видалення будь-якого сховища виконайте команду aptitude update, щоб оновити систему.

Якщо ви не можете знайти репозиторій для певного пакета, ви завжди можете використовувати команду whereis, щоб дізнатися, де знаходяться файли.

Заключні слова

Всі вищезгадані методи корисні для тих, хто одночасно бореться з проблемами як одного, так і декількох битих пакетів у своїй системі Ubuntu. Іноді пошкоджені системи викликають помилки, які вимагають виправлення без перевстановлення всієї системи. У цьому пості я описав кілька методів видалення пошкоджених пакетів в системі Ubuntu.

Я сподіваюся, що ця стаття була інформативною для вас; будь ласка, поділіться цією статтею зі своїми друзями та спільнотою Linux. Ви також можете написати свою думку в розділі коментарів до цього посту.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

174010cookie-checkЯк видалити пошкоджені пакети в Ubuntu Linux

Автор публікації

Офлайн 1 місяць

FOX

Люблю что-то новое
Коментарі: 73Публікації: 127Реєстрація: 24-09-2017
Если Вам понравилась статья, то поделитесь ею в соц.сетях:
guest
0 комментариев
Inline Feedbacks
View all comments