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