Как удалить поврежденные пакеты в Ubuntu Linux

Как профессиональному пользователю 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 и других дистрибутивов Debina. В нем есть функции для установки, удаления, обновления и исправления неработающих пакетов. Если на вашей машине не установлен инструмент 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. Вы также можете написать свое мнение в разделе комментариев к этому посту.

 

Поделитесь с друзьями
FOX
FOX

Люблю что-то новое

Статей: 126

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x