Ошибка при обработке архива ubuntu

Обновлено: 02.07.2024

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

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

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

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:

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, которые решаются способами, которых тут ещё нет.

Читайте также: