Как исправить сломанные пакеты на debian

Во время установки программ с помощью пакетного менеджера apt в любом из дистрибутивов, использующих этот пакетный менеджер, вы можете столкнуться с ошибкой, что у вас зафиксированы сломанные пакеты. Это пакеты, которые не установились полностью потому что им не хватает зависимостей или процесс установки был по какой-либо причине прерван.

В этой статье мы рассмотрим что делать с такой ошибкой, как её исправить, а также я дам ссылки на другие материалы на сайте, которые помогут справится с проблемой.

Как исправить у вас зафиксированы сломанные пакеты?

1. Обновите списки пакетов

Возможно вам не удалось установить нужные пакеты потому что списки репозиториев устарели, и там ещё не было нужных пакетов. Для обновления списка пакетов выполните:

sudo apt update --fix-missing

2. Установите битые пакеты

После обновления списка пакетов из репозиториев может помочь установка битых пакетов. Этот шаг поможет особенно если вы устанавливали пакет с помощью dpkg и теперь нужно доустановить его зависимости с помощью пакетного менеджера. Для этого есть специальная команда:

sudo apt install -f

3. Очистите лишние пакеты

Установке могут мешать лишние пакеты, которые больше не нужны в системе. Для их удаления выполните:

sudo apt clean

Затем:

sudo apt autoremove

Утилита отобразит список всех битых пакетов, которые не установлены, вы можете попытаться их удалить с помощью команды:

sudo dpkg --remove -force --force-remove-reinstreq имя_пакета

4. Используйте dpkg

Вместо apt вы можете использовать команду dpkg чтобы посмотреть какие пакеты вызывают проблему. Просто выполните:

sudo dpkg --configure -a

Команда покажет проблемные пакеты, а потом вы сможете их удалить той же командой:

sudo dpkg --remove -force --force-remove-reinstreq имя_пакета

5. Разрешите зависимости

Битые пакеты чаще всего появляются из-за того, что пакетный менеджер не может найти для них нужные зависимости. Если вам всё же очень нужно установить такой пакет, просто разрешите эти зависимости. Для этого можно скачать и установить их вручную или если вы уверенны, что зависимости в пакете указаны неверно, можно скачать его распаковать и удалить мешающие зависимости. Подробнее об этом читайте в этой статье.

Выводы

В этой небольшой статье мы рассмотрели что делать если в вашей системе появились битые пакеты и как их исправить. Здесь решение проблемы очень сильно зависит от вашей ситуации, но здесь приведены основные варианты решения, которые должны помочь вернуть пакетный менеджер к работе. Иногда рекомендуют удалить пакет вручную из базы данных dpkg /var/lib/dpkg/status, однако лучше этого не делать и найти путь решить проблему по другому, ручное редактирование подобных файлов может создать ещё больше проблем.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Если вы активный пользователь Linux, то наверняка встречались с тем, что некоторые пакеты так сказать ломаются. Это может быть вызвано по разным причинам, некорректно установленный пакет, какие-то ошибки во время установки и многое другое. Что в свою очередь может сказаться и на самом менеджере пакетов “apt-get”, и как итог, возможно что дойдет даже то того, что вы не сможете обновляться или устанавливать программное обеспечения. Данная статья поможет вам решить вопрос со сломанными пакетами в Debian / Ubuntu, а так же их производными. Так как сломанные пакеты могут возникать по разным причинам, существует несколько способов для решения этой задачи, но, не все они могут сработать, тут все зависит от конкретного случая.

P.S. Желательно точно знать какой пакет у вас сломан, так как это поможет вам выбрать один из способом решения задачи.

Чиним сломанные пакеты с apt-get

Первый вариант, который может помочь починить сломанные пакеты имеется в самом менеджере пакетов apt, и для починки сломанных пакетов достаточно ввести две команды:

sudo apt-get update --fix-missing
sudo apt-get install -f

сломанные пакеты в Debian Ubuntu 1

Этот способ поможет для решения уже установленных в вашей системе пакетов, который по каким то причинам сломались. После выполнения первой команды необходимо убедиться, что она исправила ошибки, а затем переходить к введению второй команды. Возможно, что для исправления сломанных пакетов понадобиться несколько минут:

Чиним сломанные пакеты с apt-get и dpkg

Но, что делать если пакет сломался во время установки? Можно попробовать выполнить команды из первого примера, если они не сработают, переходим к использованию apt-get и dpkg, для этого первым делом используем dpkg для настройки пакетов. А затем выполняем очистку apt-get:

sudo dpkg --configure -a
sudo apt-get clean
sudo apt-get update

сломанные пакеты в Debian Ubuntu 2

В некоторых ситуациях может понадобиться удалить файл блокировки, после удаления файла блокировки, снова выполните предыдущие команды:

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

Принудительное удаление пакета с помощью apt-get и dpkg

В редких ситуациях может случиться и такое, что ни один из выше указанных методов не сработает и вам понадобиться вручную удалить сломанный пакет. Для этого разумеется вы должны точно знать что это за пакет, и первый вариант удаление пакета с помощью apt-get, для этого вводим команду:

sudo apt-get remove и название пакета

Если же вам не удалось удалить пакет, переходим к кардинальным мерам, для принудительного пакеты введите команду:

sudo dpkg --remove --force-remove-reinstreq и название пакеты

Затем выполните очистку и обновление пакетов:

sudo apt-get clean && sudo apt-get update

Заключение

Если вы не знаете про менеджеры пакетов apt-get и dpkg, на WIKI имеется статьи, первая про apt, вторая статья про dpkg. В редких ситуациях, выше приведенных мер может быть недостаточно для исправления сломанных пакетов. В этом случае, может понадобиться ручная сборка и удаление сломанных пакетов, правда, имеется риск повредить работоспособность всей системы, что в свою очередь может вывести ее из строя. В этом случае, если вы делали резервные копии вашей системы можно откатиться работоспособной версии системы. Сделать резервную копию вашей системы можно при помощи Timeshift или Deja Dup, последняя имеется в дистрибутиве Ubuntu. Но, чаще всего удается отделаться малой кровью когда появляются сломанные пакеты, и выше приведенных мер достаточно для исправления сломанных пактов.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

In this article, I will take you through the steps to fix broken packages in Debian 10/11. Sometimes you might have noticed that whenever you try to run any update or try to install a new package then you always encountering broken package error. While this error could occur due to various number of reasons depending on server to server but here we will cover all the possible solutions that can help you solve this error with the current set of utilities you will have in your Debian based systems. So without any further delay, Let’s dive in !!

How to Fix Broken Packages in Debian 10/11{Easy Methods}

Also Read: How to Install curl on Debian 10/11 in 6 Easy Steps

In a typical Debian System, you will always find package managers like apt, apt-get and dpkg. So it is important that we try to use these tools only to solve our error. It is because even if you want to use any other utility to find and fix the broken package issue then you cannot do it as this error stops you to install any new package.

Method 1: Using apt or apt-get command

In this method first you can use apt utility to install any missing update using apt --fix-missing update command and ensure that there are no further update remains to be installed.

root@debian:~# apt --fix-missing update
Hit:1 http://deb.debian.org/debian bullseye InRelease
Get:2 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [39.4 kB]
Get:4 http://security.debian.org/debian-security bullseye-security/main Sources [38.9 kB]
Get:5 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [48.0 kB]
Fetched 170 kB in 2s (90.5 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done

Now you can simply run apt update command to see if it works.

root@debian:~# apt update
Hit:1 http://security.debian.org/debian-security bullseye-security InRelease
Hit:2 http://deb.debian.org/debian bullseye InRelease
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done

If it does not work then you can attempt fixing all broken packages by using apt install -f command as shown below.

root@debian:~# apt install -f
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libjq1 libonig5
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

As you can see from above output, there are few packages installed which are no longer required in the System. So to remove those packages you need to run apt autoremove -y command as shown below.

root@debian:~# apt autoremove -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
libjq1 libonig5
0 upgraded, 0 newly installed, 2 to remove and 1 not upgraded.
After this operation, 1,035 kB disk space will be freed.
(Reading database ... 141510 files and directories currently installed.)
Removing libjq1:amd64 (1.6-2.1) ...
Removing libonig5:amd64 (6.9.6-1.1) ...
Processing triggers for libc-bin (2.31-13) ...

If you find any packages that needs to be upgraded then you can upgrade it by using apt upgrade -y command as shown below.

root@debian:~# apt upgrade -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-image-5.10.0-9-amd64
The following packages will be upgraded:
base-files gir1.2-mutter-7 gnome-maps gnome-shell gnome-shell-common gnome-shell-extension-prefs krb5-locales libapr1 libatk-wrapper-java
libatk-wrapper-java-jni libbluray2 libc-bin libc-dev-bin libc-devtools libc-l10n libc6 libc6-dev libflatpak0 libgssapi-krb5-2 libk5crypto3 libkrb5-3
libkrb5support0 libmutter-7-0 libnautilus-extension1a libpam-modules libpam-modules-bin libpam-runtime libpam0g libperl5.32 libspeechd2 linux-image-amd64
linux-libc-dev locales mutter-common nautilus nautilus-data perl perl-base perl-modules-5.32 python3-reportbug python3-speechd reportbug
speech-dispatcher speech-dispatcher-audio-plugins speech-dispatcher-espeak-ng
45 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

If you are still facing the same error then you can try doing some cleanups using below mentioned commands.

root@debian:~# rm -rf /var/lib/apt/lists/*
root@debian:~# rm /var/cache/apt/*.bin
root@debian:~# apt clean

Method 2: Using dpkg command

Another method that you can use is through dpkg command. In this method first you need reconfigure all the partially installed packages by using dpkg --configure -a command as shown in the below output.

root@debian:~# dpkg --configure -a

If the above command does not solve your problem then in the next step first you need to find all the broken packages using dpkg -l | grep ^..r command as shown below.

root@debian:~# dpkg -l | grep ^..r

If you see any broken packages then you can remove it by using dpkg --force-all --remove package-name command.

root@debian:~# dpkg --force-all --remove package-name

You can also remove all the files from /var/lib/dpkg/updates directory using rm -rf /var/lib/dpkg/updates/* command as shown below. More about dpkg command.

root@debian:~# rm -rf /var/lib/dpkg/updates/*

You can also use both apt and dpkg command together to fix broken package issues. Hopefully all the above shown steps are enough to solve your error.

Поврежденные пакеты нуждаются в ремонте, иначе программное обеспечение не будет запускаться. Вот как найти поврежденные пакеты и исправить их в Linux.

Как найти и исправить поврежденные пакеты в Linux

Менеджеры пакетов в Linux позволяют контролировать установку и удаление пакетов. В дополнение к этому менеджеры пакетов также помогают вам находить поврежденные пакеты в вашей системе и переустанавливать их, чтобы устранить различные проблемы, связанные с пакетами Linux.

Если вы не знаете, какие команды использовать для поиска и исправления поврежденных пакетов в Linux, то это руководство для вас. Мы кратко обсудим поврежденные пакеты, как вы можете проверить, содержит ли ваша система поврежденные пакеты, и как их правильно переустановить.

Что такое поврежденные пакеты?

Когда вы устанавливаете новый пакет в Linux, менеджер пакетов вашей системы отвечает за весь процесс установки. Эти менеджеры пакетов имеют встроенные методы для обработки исключений и ошибок. Но иногда, в случае непредвиденных проблем, установка останавливается, и полный пакет не устанавливается. Такие пакеты в Linux называются поврежденными пакетами.

Менеджеры пакетов, такие как APT, не разрешают дальнейшую установку пакетов, если обнаруживается поврежденный пакет в системе. В такой ситуации восстановление поврежденного пакета является единственным вариантом.

Как найти и исправить поврежденные пакеты

Каждый менеджер пакетов обрабатывает разные типы пакетов. Например, DNF и YUM работают с Red Hat Package Manager (RPM) для загрузки и установки пакетов RPM. Аналогично, APT действует как оболочка интерфейса для базового программного обеспечения dpkg в дистрибутивах на основе Debian.

Переустановка поврежденных пакетов в Ubuntu и Debian

APT – это менеджер пакетов по умолчанию, который предустановлен в каждом дистрибутиве на основе Debian. Помимо APT, пользователи Debian и Ubuntu также могут загружать и устанавливать пакеты вручную с помощью dpkg.

Шаги, упомянутые ниже, также будут работать, если вы хотите исправить поврежденные пакеты в Kali Linux, поскольку, в конце концов, Kali – это дистрибутив на основе Debian.

Как исправить поврежденные пакеты в дистрибутивах на основе Debian с помощью APT:

  1. Откройте терминал, нажав Ctrl + Alt + T на клавиатуре и введите:
Как найти и исправить поврежденные пакеты в Linux

2. Обновите список пакетов вашей системы из доступных источников

Как найти и исправить поврежденные пакеты в Linux

3. Теперь принудительно установите поврежденные пакеты, используя флаг -f. APT автоматически выполнит поиск поврежденных пакетов в вашей системе и переустановит их из официального репозитория.

Как найти и исправить поврежденные пакеты в Linux

Если вышеупомянутые шаги не работают для вас, вы можете попытаться решить проблему с помощью dpkg.

  1. Заставьте dpkg перенастроить все ожидающие пакеты, которые уже распакованы, но нуждаются в настройке. Флаг -a в команде означает Все.
Как найти и исправить поврежденные пакеты в Linux

2. Передайте grep с помощью dpkg, чтобы получить список всех пакетов, помеченных как требуемые dpkg.

Как найти и исправить поврежденные пакеты в Linux

3. Используйте флаг –remove, чтобы удалить все поврежденные пакеты

Как найти и исправить поврежденные пакеты в Linux

4. Очистите кэш пакетов и установите скрипты с помощью apt clean.

Как найти и исправить поврежденные пакеты в Linux

5. Теперь обновите списки пакетов вашей системы, используя следующую команду:

Как найти и исправить поврежденные пакеты в Linux

Исправить поврежденные пакеты в Fedora / CentOS и RHEL

Хотя YUM и DNF отлично подходят для автоматического управления поврежденными пакетами, иногда возникают проблемы, поскольку в системе Linux установлены тысячи пакетов. В таких ситуациях вы можете использовать RPM (базовый менеджер пакетов для Fedora и CentOS) для быстрого устранения таких проблем.

  1. Проверьте все пакеты в вашей системе, используя флаг -V.
Как найти и исправить поврежденные пакеты в Linux

2. Вы увидите длинный список, содержащий все установленные пакеты в вашей системе.

3. Переустановите пакет, который, по вашему мнению, может вызывать проблему с поврежденным пакетом.

Как найти и исправить поврежденные пакеты в Linux

Описанные выше шаги крайне неудобны — определение того, какой пакет вызывает проблему, из списка сотен утомительно. Хотя RPM является мощным менеджером пакетов, и вы редко будете сталкиваться с такими проблемами, знание того, как устранить эти проблемы, по-прежнему важно на случай, если вы столкнетесь с подобной ситуацией в ближайшем будущем.

Управление пакетами в дистрибутивах Linux

Менеджеры пакетов в Linux способны справиться с большинством проблем, включая неудачные установки. Но иногда возникают различные проблемы, которые можно решить только интуитивно. Решение для исправления поврежденных пакетов состоит из нескольких шагов — определение поврежденного пакета, его переустановка и обновление списка пакетов системы.

В Интернете доступно бесчисленное множество дистрибутивов Linux, которые стоит попробовать, но в глубине души каждый из них имеет схожую основу. Среды рабочего стола выделяют каждый дистрибутив, предоставляя уникальный пользовательский интерфейс. Выбор идеальной среды рабочего стола, которая соответствует вашему вкусу, должен быть вашим приоритетом, если вы, наконец, решили перейти на Linux.

Смотрите другие статьи на нашем канале .

Как запускать команды Linux в фоновом режиме

8 Советов по настройке рабочего стола Cinnamon в Linux

Как использовать рабочие пространства и активные углы в Linux Mint

Вы также можете оставить свое мнение об этом посте в разделе комментариев.

Менеджеры пакетов в Linux позволяют контролировать установку и удаление пакетов. В дополнение к этому, менеджеры пакетов помогут вам найти сломанные пакеты в вашей системе и переустановить их, чтобы исправить различные проблемы, связанные с пакетами Linux.

Если вы не знаете, какие команды использовать для поиска неработающих пакетов в Linux, то это руководство для вас. Мы кратко обсудим сломанные пакеты, как вы можете проверить, есть ли в вашей системе сломанные пакеты, и как правильно их переустановить.

Что такое сломанные пакеты?

Когда вы устанавливаете новый пакет в Linux, менеджер пакетов вашей системы отвечает за весь процесс установки. Эти менеджеры пакетов имеют встроенные методы для обработки исключений и ошибок. Но иногда, в случае непредвиденных проблем, установка останавливается и не устанавливается полный пакет. Такие пакеты в Linux называются сломанными пакетами.

Менеджеры пакетов, такие как Apt, не разрешают дальнейшую установку пакетов, если в системе обнаружен неработающий пакет. В такой ситуации ремонт сломанных пакетов – единственный выбор.

Как найти и исправить сломанные пакеты

Каждый менеджер пакетов обрабатывает разные типы пакетов. Например, DNF и Yum работают с RedHat Package Manager (RPM) для загрузки и установки пакетов RPM. Точно так же Apt действует как оболочка внешнего интерфейса для базового программного обеспечения dpkg в дистрибутивах на основе Debian.

Переустановка битых пакетов в Debian

Apt – это менеджер пакетов по умолчанию, который предустановлен в каждом дистрибутиве на основе Debian. Помимо Apt, пользователи Debian также могут загружать и устанавливать пакеты вручную с помощью dpkg .

Чтобы исправить сломанные пакеты в дистрибутивах на основе Debian с помощью Apt:

  1. Откройте свой терминал, нажав Ctrl + Alt + T на клавиатуре, и введите:
     sudo apt --fix-missing update
  2. Обновите пакеты в вашей системе:
     sudo apt update
  3. Теперь принудительно установите поврежденные пакеты с помощью флага -f . Apt автоматически найдет сломанные пакеты в вашей системе и переустановит их из официального репозитория.
     sudo apt install -f

Если вышеупомянутые шаги не работают для вас, вы можете попробовать решить проблему с помощью dpkg.

  1. Заставьте dpkg перенастроить все ожидающие пакеты, которые уже распакованы, но нуждаются в настройке. Флаг -a в команде означает Все .
     sudo dpkg --configure -a
  2. Соедините grep с dpkg, чтобы получить список всех пакетов, помеченных dpkg как обязательные .
     sudo dpkg -l | grep ^..r
  3. Используйте флаг –remove, чтобы удалить все поврежденные пакеты.
     sudo dpkg --remove --force-remove-reinstreq
  4. Очистите кеш с помощью Apt clean.
     sudo apt clean
  5. Обновите системные пакеты, используя следующую команду.
     sudo apt update

В Fedora / CentOS

Хотя Yum и Dnf отлично подходят для управления сломанными пакетами, иногда возникают проблемы, поскольку в системе Linux установлены тысячи пакетов. В таких ситуациях вы можете использовать RPM (базовый менеджер пакетов для Fedora и CentOS), чтобы быстро исправить такие проблемы.

  1. Проверьте все пакеты в вашей системе с помощью флага -V .
     sudo rpm -Va
  2. Вы увидите длинный список, содержащий все пакеты, установленные в вашей системе.
  3. Переустановите пакет, который, по вашему мнению, может вызывать неисправность пакета.
     sudo dnf --refresh reinstall packagename

Вышеупомянутые шаги очень неудобны – определить, какой пакет вызывает проблему из списка сотен, утомительно. Хотя RPM – мощный менеджер пакетов, и вы редко будете сталкиваться с такими проблемами, знание того, как исправить эти проблемы, по-прежнему важно, если вы столкнетесь с подобной ситуацией в ближайшем будущем.

Менеджеры пакетов в Linux способны решать большинство проблем, включая неудачные установки. Но иногда возникают различные проблемы, которые можно решить только интуитивно. Решение для исправления поврежденных пакетов состоит из нескольких шагов – определение поврежденного пакета, его переустановка и обновление списка пакетов системы.

В Интернете доступно бесчисленное количество дистрибутивов Linux, которые стоит попробовать, но в глубине души каждый из них имеет аналогичную основу. Среды рабочего стола выделяют каждый дистрибутив, обеспечивая уникальный пользовательский интерфейс. Выбор идеальной среды рабочего стола, которая соответствует вашему вкусу, должен быть вашим приоритетом, если вы, наконец, решили продолжить работу с Linux.

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