Dpkg исправление ошибок

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

Пакетный менеджер dpkg позволяет устанавливать, удалять и получать информацию по пакетам. Он представляет собой основу системы управления пакетами в Ubuntu и других основанных на Debian дистрибутивах.

Базовый синтаксис dpkg следующий:

dpkg [опции] действие

Примеры использования dpkg

Установка пакета:

dpkg -i package-name.deb

Само собой, команда должна выполняться через sudo или от имени root.

Просмотр всех установленных пакетов в системе:

dpkg -l

Узнать детали по конкретному пакету:

dpkg -c packagename.deb

Удалить установленный ранее пакет:

dpkg -r package-name

Как исправить ошибку dpkg?

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

dpkg --configure -a

Команда производит настройку всех распакованных, но ненастроенных пакетов.

Однако бывает, что возникает ошибка «Не удалось получить доступ к файлу блокировки» («Unable to acquire the dpkg frontend lock»). В общем случае такое происходит, когда происходит установка пакетов в разных приложениях одновременно. Однако чаще такое случается при аварийной остановке установки приложения. В таком случае стоит удалить lock-файлы при помощи команд:

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

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

cd /var/lib/dpkg/updates
sudo rm *
sudo apt-get update

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

Изображение пользователя Chibiko.

У меня очень старенький винт, потихоньку сыплется. Поэтому часто бывают всякие «неожиданности». Но это не всё. Часто при обновлениях случается чт-то от вас не зависящее, и не всегда этому виной кривые руки. Бывает, что dpkg спотыкается обо что-либо, и дальше всё.. ничего обновить в системе, установить или удалить вы через aptitude (apt-get) вы не сможете… Как вариант, можно посмотреть список зависимостей, и удалять всё ручками, но я считаю что это не айс — удалять каждый файлик, править конфиги… Может это и true linux way, но увы, сейчас уже третье тысячелетие, и я отказался от такого извращения. Поэтому мы просто попытаемся починить dpkg.

Итак, приступим:

dpkg — это программное обеспечение, являющееся основой системы управления пакетами в Debian. dpkg используется для установки, удаления, и получения информации о .deb пакетах.
Подробнее смотрите в Wiki, я лишь опишу некоторые проблемы, встречающиеся при обработке пакетов.

1) Что поможет в 80% случаев:

Зачастую достаточно просто запросить из хранилища(репозитория) новый список пакетов:

sudo aptitude update

sudo aptitude install -f

И установить обновления:

sudo aptitude safe-upgrade

Бывает что проблема — это плохо сконфигурированный пакет. Поэтому мы просто её ещё раз переконфигурируем:

sudo dpkg --configure -a

2) Остальные «сложные» случаи:

Для остальных случаев придётся переконфигурировать всё:
sudo dpkg-reconfigure -a
Осторожно, может занять много времени 8)

Или именно этот пакет:
sudo dpkg-reconfigure --default-priority %pack_name%

Ну бывает что нужно переконфигурировать его, даже если он поломан или неисправен:

sudo dpkg-reconfigure --force %pack_name%

!ВНИМАНИЕ! Использовать осторожно!

Если и это не помогает, то смотрим что именно произошло, не боимся гуглить и так далее, например у меня было вот что:

3) Конкретные случаи:

1) Падение dpkg - /var/lib/dpkg/available: Input/output error.

E: Sub-process /usr/bin/dpkg returned an error code (2)
dpkg: при работе функции buffer_read(fd) произошла ошибка: копирование файла информации /var/lib/dpkg/available: Input/output error

Дааааа… Как всегда косяки, ну ничего, где-то мы такое видали. Минутный поиск по форуму сообщества и на глаза вылазит лекарство:

sudo dpkg --configure -a
либо
sudo apt-get install -f && sudo dpkg --configure -a

К сожалению никаких результатов в моем случае это не дало.
Ищем дальше. Гугл толком ничего не даёт, найдены пару вариантов с англоязычного форума линукс. К сожалению не помогает. Ну ладно значит будем думать головой…
Идём по адресу /var/lib/dpkg/ находим файл available, пытаемся открыть — filed. Осматриваемся в папке,и видим интересный файл под названием available_old.
Значит, при обновлении пакетов была сделана резервная копия этого файла со старым содержимым. Открываем, копируем содержимое , удаляем available и создаём на его месте новый файл с тем же названием. Вставляем содержимое из available_old.
Проверяем обновления

sudo apt-get update

есть. Запускаем

sudo apt-get upgrade

и о чудо, всё работает. Теперь можно и продолжать настройку системы. Также возможен другой вариант лечения dpkg.
sudo dpkg --clear-avail #удалить информацию о доступных пакетах.

далее

sudo apt-get update #обновление информации о пакетах.

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

Да, чуть не забыл при внесении данного сообщения начал меня раздражать SCIM Method? он так и норовил подсунуть мне какой-нибудь арабско-еврейско-хрензнает какой шрифт. Пришлось избавится

apt-get remove scim

Взято с тыц’а


2) Удалил пакет руками — теперь aptitude ругается, что делать?

dpkg: не удалось обработать параметр %pack_name% (--configure):
подпроцесс post-installation script возвратил код ошибки 1
При обработке следующих пакетов произошли ошибки:
%pack_name%
E: Sub-process /usr/bin/dpkg returned an error code (1)

В таком случае можно удалить пакет через dpkg:

dpkg --purge %pack_name% #удалит всё что о нём было известно вместе с ним 8)

3) в списке файлов пакета %pack_name% отсутствует завершающий символ новой строки

aptitude install -f
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Готово
(Чтение базы данных ... dpkg: невосстановимая ошибка, прекращение работы:
в списке файлов пакета %pack_name% отсутствует завершающий символ новой строки
E: Sub-process /usr/bin/dpkg returned an error code (2)
Не удалось установить пакет.  Попытка восстановить:
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Готово

Я гуглил много, оказалось решение очень простое:
sudo kate /var/lib/dpkg/status

После чего Ctrl+F — вводим в поиск %pack_name% и удаляем всё что с ним связано, после чего делаем пункт 1) и вуаля, dpkg вернулся из мёртвых, Ressurect III lvl окрыляет!

ПОДРОБНАЯ ИНФОРМАЦИЯ о dpkg на русском можно глянуть тут: тыц

Если нада, можно сюда скопипастить, но не думаю что нужно…

Проапгрейдил, исправил бОльшинство орфографических ошибок, привёл всё к единому формату. Любые дополнения приветствуются. В данный момент ищутся любые другие ошибки в dpkg, которые решаются способами, которых тут ещё нет.

Ну и спасибо баламутику за баламутивание 8)

Симптомы:

Synaptic пишет «Пакет [имя пакета] нуждается в переустановке, но найти архив для него не удалось» или «The package [package name] needs to be reinstalled, but I can’t find an archive for it», «При обработке следующих пакетов произошли ошибки:»,не открывается Центр приложений Ubuntu, в терминале не работает apt-get. Не все потеряно и это легко поправимо. Обычно такая проблема возникает если при установке какой-то программы возникли проблемы и установка не была завершена или же в момент установки программы или обновлений системы компьютер был выключен или перезагружен.

Лечение:

Окройте терминал и введите команду:

sudo gedit /var/lib/dpkg/status

У вас откроется текстовый редактор (внимание! не удалите ничего лишнего!). Нажмите Ctrl+F для поиска ключевой фразы и в строку поиска введите имя проблемного пакета. После того, как была найдена информация о нем вам нужно удалить ее.

После этого сохраните и закройте текстовый редактор. Затем введите в терминал:

sudo apt-get -f install

Этим вы проверяете состояние пакетов. Если вы сделали все правильно, то информация о проблемном пакете исчезнет.

Если вы активный пользователь 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

Introduction

Linux packages are compressed archives containing programs and files necessary to run them. The package distribution system is designed to be robust and simplify the application installation process.

However, a bad internet connection or misconfigured third-party installers can corrupt packages and cause problems on your system.

This article will show you how to troubleshoot and fix broken packages on Ubuntu using the available APT and DPKG tools.

How to fix broken packages in Ubuntu

Prerequisites

  • An account with sudo privileges
  • An Ubuntu system

Check for Updates

Start troubleshooting by rebuilding the list of dependencies. The --fix-missing option tells APT to ignore missing packages. The option ensures the update process is performed without APT returning an error.

sudo apt update --fix-missing
The --fix-missing option tells APT to ignore the missing packages

Force APT to Correct Missing Dependencies or Broken Packages

Missing package dependencies are a common reason for package-related errors.

1. Use apt install with the -f flag to tell APT to locate the missing packages and install them.

sudo apt install -f

APT lists the missing packages on your system.

The apt install tells APT to locate the missing packages and install them

2. Press ENTER to start the installation.

Note: If troubleshooting has led to Ubuntu needing to be reinstalled, please refer to our reinstallation guide How to Reinstall Ubuntu.

Force Reconfigure or Remove Broken Packages with DPKG

Broken packages may cause package manager configuration problems.

1. Reconfigure DPKG, the base package management system, with the following command:

sudo dpkg --configure -a

2. Check if DPKG marked some packages as needing a reinstall.

sudo dpkg -l | grep ^..R

3. If the command above returns a list of one or more packages, try removing the packages by typing:

sudo dpkg --purge --force-all [package-name]

The example below shows how to remove the corrupted vlc-plugin-base package.

Remove the corrupted vlc-plugin-base package

Warning: The dpkg --purge --force-all command removes a package even if the removal causes further dependency issues. Use the command with care.

4. After you finish troubleshooting, run the following command to clean up the system:

sudo apt clean

5. Then update the repositories again:

sudo apt update

Resolve DPKG Lock Issue

The DPKG lock error appears when trying to install a package while another process is using DPKG.

The DPKG lock error appears when trying to install a package while another process is using DPKG

However, sometimes the error occurs even if no other processes are using the package management system.

1. To fix the problem, remove the lock file manually:

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

2. Also, remove the lock in cache:

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

Deleting the lock enables you to use APT and DPKG again.

Conclusion

The article provided common ways of resolving problems caused by broken packages on Ubuntu.

For more information related to package management on Ubuntu, read:

  • How to List Installed Packages on Ubuntu
  • A Comprehensive Guide to Using Snap Packages on Ubuntu
  • How to Install Deb Files (Packages) on Ubuntu

You should be able to work with a previous known good status file and update from there. Every time you do an install or a update, the status file is saved to a gzipped backup under /var/backups. Doing an ls -l dpkg * on the directory shows:

-rw-r--r-- 1 root root   2266732 2010-09-30 08:35 dpkg.status.0
-rw-r--r-- 1 root root    624182 2010-09-29 08:49 dpkg.status.1.gz
-rw-r--r-- 1 root root    623844 2010-09-28 08:55 dpkg.status.2.gz
-rw-r--r-- 1 root root    620358 2010-09-24 11:04 dpkg.status.3.gz
-rw-r--r-- 1 root root    619021 2010-09-23 15:34 dpkg.status.4.gz
-rw-r--r-- 1 root root    619013 2010-09-23 08:03 dpkg.status.5.gz
-rw-r--r-- 1 root root    618968 2010-09-21 08:33 dpkg.status.6.gz

There’s also a backup of the file created in the /var/lib/dpkg/ directory named status-old. Doing an ls -l status* on the directory shows:

-rw-r--r-- 1 root root 2266732 2010-09-30 08:35 status
-rw-r--r-- 1 root root 2267191 2010-09-30 08:35 status-old

So, to recover from a corruption, you should be able to do the following:

1. Make a backup of the corrupt status file:

mv /var/lib/dpkg/status /var/lib/dpkg/status_bkup

2. Copy an recent dpkg status file into place from either of the sources above:

either

cp /var/lib/dpkg/status-old /var/lib/dpkg/status

or

cp /var/backups/dpkg.status.#.gz /var/lib/dpkg/
gunzip -d /var/lib/dpkg/dpkg.status.#.gz 
mv /var/lib/dpkg/dpkg.status.# /var/lib/dpkg/status

3. Then run apt-get update:

sudo apt-get update

That should do it.

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

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

Содержание

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

Чиним сломанные пакеты с 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

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

Creative Commons License

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

Об авторе

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

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.

besogonskiy

Слава

@besogonskiy

Делаю сайты на Laravel

Система debian Buster.

устанавливал пакет в snap но потом прервал. Теперь получаю при попытке что-нибудь установить сообщение о том, что есть сломанные пакеты. Например,

Первая ошибка

root@dev:/home/xfile/Загрузки# apt-get install kate
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
kate : Зависит: plasma-framework но он не может быть установлен
Зависит: libkf5newstuff5 (>= 5.27.0) но он не может быть установлен
Зависит: libkf5plasma5 (>= 4.96.0) но он не может быть установлен
libkf5xmlgui5 : Ломает: ktexteditor-katepart (< 5.70) но 5.54.0-1 должен быть установлен
Ломает: libkf5texteditor5 (< 5.70) но 5.54.0-1 должен быть установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@dev:/home/xfile/Загрузки#

Или

Вторая ошибка

root@dev:/home/xfile# sudo apt install snapd
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
apparmor : Ломает: snapd (< 2.44.3+20.04~) но 2.37.4-1+b1 должен быть установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@dev:/home/xfile#

Чего только не пробовал. Не получается никак восстановить работоспособность системы.


  • Вопрос задан

    более года назад

  • 2024 просмотра

Пригласить эксперта

Тут всё просто у вас есть пакеты не из бастера, вам нужно создать pref файл и указать что бастер имеет приоритеты выше чем левые репозитории и если нужно с возможностью удаления не корректных зависимостей и всё у вас заработает.
записать в файл /etc/apt/preferences.d/buster.pref
Package: *
Pin: release n=buster
Pin-Priority: 1001

Но учтите что это может понизить версии многих пакетов и часть из них могут быть удалены если нет возможности поставить их с бастера…. Либо можете поставить приоритет у другого репозитория и всё будет ставиться как укажите. В любом случае вам нужно почитать про приоритеты.

поставь aptitude — интерактивная оболочка удобна, сразу видно какие пакеты сломаны. или сломаются при установке.

еще стоит глянуть в выхлоп
$ dpkg -l | grep -Pv '^ii'
показывает много чего сломанного, недоудаленного и т.д.

Просто перестаньте пользовать Дебиан. Убунта последней стейбл версии — и подобных проблем у вас не будет никогда.
Дебиан для тех, кто знает какой софт ему нужен, и предпочитает доисторические но стабильные версии.


  • Показать ещё
    Загружается…

31 янв. 2023, в 09:55

3000 руб./за проект

31 янв. 2023, в 07:51

50000 руб./за проект

31 янв. 2023, в 04:30

200 руб./за проект

Минуточку внимания

На чтение 4 мин. Просмотров 181 Опубликовано 22.04.2021

Вы можете обнаружить, что при попытке установить пакет в Linux вы обнаружите ужасную строку с надписью E: Невозможно исправить проблемы, у вас есть неработающие пакеты. Затем установка отказывается продвигаться дальше этой точки. Вы можете найти это в любом дистрибутиве Linux, который использует apt-get для управления пакетами, включая Debian, а также различные побочные продукты Linux Mint и Ubuntu.

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

Содержание

  1. Метод 1. Использование dpkg –configure для исправления задержанных поврежденных пакетов
  2. Метод 2 : Использование команды dist-upgrade
  3. Метод 3: Исправление битых пакетов с помощью Synaptic

Метод 1. Использование dpkg –configure для исправления задержанных поврежденных пакетов

Во время работы в терминале попробуйте запустить sudo dpkg –configure -a для запуска автоматический процесс обновления, который ищет любые сломанные зависимости в вашей системе, вызванные пакетами, которые не установлены. Этот инструмент должен автоматически устанавливать любой пакет, который, по его мнению, вам не хватает, без вмешательства пользователя, хотя, если вас просят установить что-то, вы должны нажать клавишу y, чтобы ответить на запрос.

Если он не обнаружит ни одного сломанного пакета, вы не должны увидеть никаких результатов. Мы запустили это на чистой тестовой машине под управлением Xubuntu, поэтому ошибок не было, но если у вас возникли проблемы «Невозможно исправить проблемы, у вас есть сломанные пакеты», то это может привести к обнаружению нескольких пакетов, которые вам нужно установить. . Запустив его, попробуйте sudo apt-get install -f из командной строки.

Эта программа выполнит и построит список зависимостей, а затем прочитает информацию о состоянии. Если вы получили сообщение о том, что было «0 обновлено, 0 недавно установлено, 0 для удаления и 0 не обновлено», значит, вы либо работали без нарушенных зависимостей, либо предыдущая команда все исправила. На этом этапе вы можете запустить sudo apt-get clean && sudo apt-get update , а затем sudo apt-get upgrade , чтобы обновить каждый пакет в вашей системе. . Это может занять некоторое время в зависимости от того, как долго в вашей системе были проблемы с пакетами.

Метод 2 : Использование команды dist-upgrade

Если вы получили сообщение о том, что «некоторые пакеты были задержаны», поэтому вы не смогли успешно выполнить предыдущую команду, то вам следует запустить sudo apt-get dist-upgrade , чтобы установить остальные пакеты. Помимо выполнения функции обычного обновления, опция dist-upgrade обрабатывает измененные зависимости с более новыми версиями пакетов.. Поскольку apt-get имеет специальную систему конфликтов, он обычно пытается обновить наиболее важные пакеты за счет того, что ничего не делает с менее важными для вашей системы. Использование этой команды заставляет обновляться даже те.

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

Например, предположим, что компонент среды выполнения GNUStep был тем, чего вам не хватало, поскольку вы хотел использовать синтез голоса. Вы можете просто ввести sudo apt-get install gnustep-gui-runtime , чтобы установить этот жизненно важный пакет. Имейте в виду, что это всего лишь пример, и вы можете заменить gnustep-gui-runtime именем любого пакета, который вам нужно установить. Современные дистрибутивы, основанные на стандарте apt-get, имеют несколько тысяч пакетов, но если вы знаете имя того, который ищете, это заставит его установить.

Метод 3: Исправление битых пакетов с помощью Synaptic

Если у вас есть графический менеджер пакетов Synaptic, вы также можете использовать этот инструмент для исправления любых поврежденных пакетов. Откройте программу и выберите раскрывающееся меню «Изменить». В этом меню должна быть опция «Исправить поврежденные пакеты», поэтому выберите ее, если она у вас есть. Запуск не займет много времени, если не так много сломанных пакетов, но он может обнаружить ряд ошибок, которые замедлят выполнение.

После того, как он завершит выполнение всего, вы обратите внимание на слова «Успешно исправленные проблемы с зависимостями» в нижней строке состояния.

Теперь вы можете обновлять и устанавливать пакеты как обычно. Большинство пользователей будут делать что-то таким образом только в том случае, если они уже работали в Synaptic, но он всегда под рукой. После запуска вы можете закрыть Synaptic и снова работать из командной строки или продолжить вносить изменения здесь.

А, пакет npm только в бекпортах, а по умолчанию зависимости цепляются из основного репозитория. Надо лишь указать использовать принудительно репозиторий man apt-get:

       -t, --target-release, --default-release
           This option controls the default input to the policy engine; it creates a default pin at priority 990 using the
           specified release string. This overrides the general settings in /etc/apt/preferences. Specifically pinned
           packages are not affected by the value of this option. In short, this option lets you have simple control over
           which distribution packages will be retrieved from. Some common examples might be -t '2.1*', -t unstable or -t
           sid. Configuration Item: APT::Default-Release; see also the apt_preferences(5) manual page.

Команда в итоге такая:

apt -y -t stretch-backports install npm

Читай подробнее документацию:

https://backports.debian.org/Instructions/
https://wiki.debian.org/Backport

Удачи. )

mandala ★★★★

(17.02.19 01:16:06 MSK)

  • Показать ответ
  • Ссылка

One of the best things about Linux is the apt command which lets you install applications and software effortlessly. Using apt, you don’t have to go through downloading the software, then going through the installer and clicking ‘Next’ a dozen times. It makes sure that every software is installed with just one terminal command.

But, just like any other program, things can go wrong. The error that we will be talking about in this write-up looks something like the following:

E: Unable to correct problems, you have held broken packages.

This error may occur when you are trying to install something via the apt utility. Let us look into the error in detail and try to solve the problem.

What causes this error?

Some of the software (mostly third-party ones) do not come with compatible dependencies and apt expects that your system already has those components. In case the required components aren’t found on your system, apt throws an error related to broken packages which means that the package you are trying to install is incomplete.

Outdated repositories, problems with the ‘sources.list‘ file, or an old/unsupported version of Linux might be the cause of this problem.

Methods to fix this problem

Before moving to the advanced methods, let us try a few quick tricks that can potentially help:

Method 1: Update the repositories

The apt update is a well-known command which instantly updates the list of packages and their dependencies. As the problem we are facing is due to missing dependencies, there is a good chance that this command will fix the error.

If the problem persists, try this command:

This will update the existing packages on your system to the latest version.

Method 2: Use aptitude instead of apt

Aptitude is also a package manager like apt and it surprisingly works in some situations where apt doesn’t! all you need to do is use aptitude instead of apt.

For example, suppose you want to install BIND9 using aptitude, you will have to enter the following command:

sudo aptitude install bind9

If you don’t have aptitude installed, run the following commands:

sudo apt-get update
sudo apt-get install aptitude

Method 3: Use autoremove to get rid of unnecessary packages

Sometimes, unnecessary packages stay behind even after uninstalling their parent application. These residual packages might interfere with installation of new applications or libraries. To get rid of these unnecessary residual packages, just enter the following command into the terminal:

There’s no need to worry as autoremove will only handle the leftover packages and dependencies.

Now with the basics out of the way, we will look at some more advanced methods to solve this problem.

Method 4: Look for held packages and unhold them

As the error message suggests, the problem is caused by packages on hold. The term ‘held package’ means that it can’t be upgraded, removed, or modified in any way.

To get a list of held packages, you need to enter the following command:

To unhold a specific package, enter:

sudo apt-mark unhold <package-name>

To unhold all held packages, enter:

sudo apt-mark unhold $(sudo apt-mark showhold)

Method 5: Use the synaptic package manager to fix broken packages

Originally, Linux doesn’t have an inbuilt graphical package manager like Windows. This is why the synaptic package manager became immensely popular on Debian-based distributions made for personal computers as it provided a lightweight and robust GUI package manager.

One of the key features of this utility is that you can fix broken packages very easily. Follow the steps below:

1. First, install the synaptic package manager:

sudo apt update
sudo apt install synaptic

2. Run synaptic with superuser privileges:

3. Go to Edit > Fix Broken Packages

Fix Broken Packages In Synaptic

Fix Broken Packages In Synaptic

It will take some time if there are broken packages present. Check if the problem is resolved.

References

  • Ask Ubuntu – Unhold a package
  • Ask Ubuntu thread on the same problem

Summary

In this article, we saw five different methods to fix the error “Unable to correct problems, you have held broken packages.” All the methods discussed were easy to execute and I hope you were able to fix the problem on your system. If you are still facing the same issue even after trying all the above methods, it can be because of using an unsupported Linux distribution, in which case, you will have to consider upgrading to a newer version of it.

При попытке установить libreoffice-core (или другие пакеты), выскакивает ошибка:

Пакеты, имеющие неудовлетворённые зависимости:
 libreoffice-core : Зависит: libreoffice-common (> 1:4.3.3) но он не будет установлен
                    Зависит: ure (>= 4.2~) но он не будет установлен
                    Зависит: libboost-date-time1.55.0 но он не будет установлен
                    Зависит: libclucene-contribs1 (>= 2.3.3.4) но он не будет установлен
                    Зависит: libclucene-core1 (>= 2.3.3.4) но он не будет установлен
                    Зависит: libcmis-0.4-4 (>= 0.4.0) но он не будет установлен
                    Зависит: libgltf-0.0-0 (>= 0.0.2) но он не будет установлен
                    Зависит: libglu1-mesa но он не будет установлен или
                                    libglu1
                    Зависит: libharfbuzz-icu0 (>= 0.9.18) но он не будет установлен
                    Зависит: libhunspell-1.3-0 (>= 1.3.3) но он не будет установлен
                    Зависит: libicu52 (>= 52~m1-1~) но он не будет установлен
                    Зависит: libmythes-1.2-0 но он не будет установлен
                    Зависит: libodfgen-0.1-1 но он не будет установлен
                    Зависит: librevenge-0.0-0 но он не будет установлен
                    Зависит: libstdc++6 (>= 4.9) но он не будет установлен
                    Зависит: uno-libs3 (>= 4.3.0~alpha) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Как это можно попытаться вылечить? У меня Debian 8 Jessie x64.

UPD_0: Удалил все из репозиториев, осталось только:

deb http://mirror.yandex.ru/debian/ jessie main
deb-src http://mirror.yandex.ru/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

sources.list.d тоже чист.

Для «лечения» пытался выполнить:

sudo dpkg --configure -a
sudo apt-get install -f
sudo apt-get --fix-broken install
sudo rm /var/lib/apt/lists/* -vf //Не удалилась какая-то папка
sudo apt-get clean
sudo apt-get autoclean 
sudo apt-get autoremove

Вывод apt-cache policy libreoffice-common libreoffice-core:

libreoffice-common:
  Установлен: (отсутствует)
  Кандидат:   1:4.3.3-2+deb8u2
  Таблица версий:
     1:5.1.3~rc2-3 0
        100 /var/lib/dpkg/status
     1:4.3.3-2+deb8u2 500
        500 http://ftp.ru.debian.org/debian jessie/main amd64 Packages
        500 http://ftp.ru.debian.org/debian jessie/main i386 Packages
libreoffice-core:
  Установлен: (отсутствует)
  Кандидат:   1:4.3.3-2+deb8u2
  Таблица версий:
     1:4.3.3-2+deb8u3 0
        100 /var/lib/dpkg/status
     1:4.3.3-2+deb8u2 500
        500 http://ftp.ru.debian.org/debian jessie/main amd64 Packages

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

В этой статье мы рассмотрим несколько способов исправления ваших сломанных пакетов как на Ubuntu 16.04, так и на Debian 9. Поскольку эта проблема может возникнуть по нескольким причинам, существует несколько решений, некоторые из которых могут работать или не работать на вашем компьютере, Поэтому лучше всего увидеть, какой пакет сломался и почему, что поможет вам решить, какой метод следует выполнять в первую очередь.

Способ 1: Использование apt-get

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

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

(опция -f не подходит для исправления ошибок).

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

Способ 2. Использование dpkg и apt-get

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

sudo dpkg --configure -a

sudo apt-get clean

sudo apt-get update

После этого проверьте, исправлен ли пакет. Если этого не произошло, вам может потребоваться удалить файлы блокировки. Файлы блокировки используются для хранения ресурсов для определенных программ — это помогает предотвратить доступ к другим программам одновременно. Это можно сделать, просто удалив список блокировки:

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

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

Способ 3: Использование dpkg для принудительного удаления

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

Сначала вы можете попробовать удалить проблемный пакет с помощью apt-get, введя следующую команду:

sudo apt-get remove

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

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

dpkg -l | grep ^ .. r

Эта команда перечисляет все пакеты, затем grep перечисляет любые результаты, содержащие флаг «r» в третьем поле, что означает «требуется восстановить» (требуется переустановка). Если появится сломанный пакет, вы сможете его удалить.

Выполните следующую команду, чтобы принудительно удалить пакет с вашего устройства. Не забудьте ввести свой пароль, чтобы разрешить удаление. Замените имя сломанной упаковки.

sudo dpkg --remove --force-remove-reinstreq

Как только это будет сделано, очистите и обновите apt-get:

sudo apt-get clean

sudo apt-get update

После этого попробуйте установить пакет с нуля. Он должен нормально устанавливаться.

Другие решения

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделить с друзьями:
  • Dr web cureit код ошибки 1722
  • Douwe egberts ошибки
  • Double ошибка округления
  • Double cannot be dereferenced java ошибка
  • Dotnetfx40 full x86 x64 ошибка