- Печать
Страницы: [1] Вниз
Тема: При обработке следующих пакетов произошли ошибки. (Прочитано 13840 раз)
0 Пользователей и 1 Гость просматривают эту тему.
dezytube
Привет! Помогите пожалуйста я обновлял с 14.04 на 16.04.1 у меня зависло все на половине, я перезапустил пк и тут система не запускалась и тут я Зажал Ctl Shift вел логин, пароль и вел команду sudo dpkg -configuru -a система запустилась после перезагрузки, теперь когда я что то вожу в терминале например «sudo apt-get install prelink» или «apt full-upgrade» все что связано с apt можно так сказать.
Пишет следующее:
«При обработке следующих пакетов произошли ошибки:
linux-headers-4.4.0-34-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)»
Помогите пожалуйста.
Haron Prime
dezytube
sudo apt-get -f install
Я это знаю и водил много раз не помогает.
dpkg: ошибка при обработке пакета linux-headers-4.4.0-34-generic (—configure):
пакет абсолютно неработоспособен; перед настройкой его
следует переустановить
« Последнее редактирование: 17 Сентября 2016, 14:42:43 от dezytube »
Haron Prime
sudo apt-get install --reinstall linux-headers-4.4.0-34-generic
dezytube
sudo apt-get install --reinstall linux-headers-4.4.0-34-generic
Просто когда водил эту команду не помогло сделал вот так:
sudo dpkg -i *.deb
sudo apt-get -f install
sudo apt-get install —reinstall linux-headers-4.4.0-34-generic
sudo apt-get -f install
Спасибо за помощь))
- Печать
Страницы: [1] Вверх
Симптомы:
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
Этим вы проверяете состояние пакетов. Если вы сделали все правильно, то информация о проблемном пакете исчезнет.
-
попробуйте удалить проблемный пакет с помощью dpkg:
$ sudo dpkg -r --force-depends libedit2:i386
-
а затем обновите список пакетов:
$ sudo apt-get update
-
и установите недостающие зависимости:
$ sudo apt-get -f install
обновление.
если у вас установлены (как основные) пакеты 64-битной архитектуры, а 32-битная архитектура не объявлена явно, то, вероятно, это и является проблемой. вам надо сначала добавить архитектуру, а уже потом выполнять шаги 2 и 3.
основную архитектуру можно посмотреть командой:
$ dpkg --print-architecture
amd64
посмотреть «чужие» архитектуры можно так:
$ dpkg --print-foreign-architectures
i386
armhf
добавить новую архитектуру можно так:
$ sudo dpkg --add-architecture i386
удалить:
$ sudo dpkg --remove-architecture i386
подробнее про мульти-архитектурность в debian-основных дистрибутивах можно почитать, например, здесь.
У меня очень старенький винт, потихоньку сыплется. Поэтому часто бывают всякие «неожиданности». Но это не всё. Часто при обновлениях случается чт-то от вас не зависящее, и не всегда этому виной кривые руки. Бывает, что 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
Осторожно, может занять много времени
Или именно этот пакет:
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%
#удалит всё что о нём было известно вместе с ним
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, которые решаются способами, которых тут ещё нет.
Ну и спасибо баламутику за баламутивание
На этом уроке рассмотрим пакетный менеджер dpkg, который в отличии от apt не умеет работать с репозиториями.
Помимо apt (apt-get) в Debian и Ubuntu есть пакетный менеджер dpkg. Он не работает с репозиториями и не может скачать оттуда зависимости, зато он может:
- установить локально доступный (скачанный) deb пакет,
- удалить приложение,
- показать список установленных приложений,
- показать информацию об установленном приложении,
- показать информацию о скаченном deb пакете.
Если при установки пакет запросит зависимости, то dpkg не сможет установить пакет и мы получим ошибку. Для того чтобы исправить эту ошибку мы можем выполнить уже знакомую по предыдущему уроку команду apt -f install.
Установка пакетов
Удалим apache2 установленный на прошлом уроке, удалим все его зависимости, скачаем пакет и установим его с помощью dpkg, а затем исправим ошибки с зависимостями:
alex@deb:~$ sudo apt purge apache2 alex@deb:~$ sudo apt autoremove alex@deb:~$ apt download apache2 alex@deb:~$ sudo dpkg -i apache2_2.4.53-1~deb11u1_amd64.deb Выбор ранее не выбранного пакета apache2. (Чтение базы данных … на данный момент установлено 39496 файлов и каталогов.) Подготовка к распаковке apache2_2.4.53-1~deb11u1_amd64.deb … Распаковывается apache2 (2.4.53-1~deb11u1) … dpkg: зависимости пакетов не позволяют настроить пакет apache2: apache2 зависит от apache2-bin (= 2.4.53-1~deb11u1), однако: Пакет apache2-bin не установлен. apache2 зависит от apache2-data (= 2.4.53-1~deb11u1), однако: Пакет apache2-data не установлен. apache2 зависит от apache2-utils (= 2.4.53-1~deb11u1), однако: Пакет apache2-utils не установлен. dpkg: ошибка при обработке пакета apache2 (--install): проблемы зависимостей — оставляем не настроенным Обрабатываются триггеры для man-db (2.9.4-2) … При обработке следующих пакетов произошли ошибки: apache2 alex@deb:~$ sudo apt -f install Чтение списков пакетов… Готово Построение дерева зависимостей… Готово Чтение информации о состоянии… Готово Исправление зависимостей… Готово Будут установлены следующие дополнительные пакеты: apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl4 liblua5.3-0 Предлагаемые пакеты: apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser Следующие НОВЫЕ пакеты будут установлены: apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl4 liblua5.3-0 Обновлено 0 пакетов, установлено 9 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. Установлено или удалено не до конца 1 пакетов. Необходимо скачать 2 529 kB архивов. После данной операции объём занятого дискового пространства возрастёт на 8 496 kB. Хотите продолжить? [Д/н]
Этот пример выполнен на Debian 11, но он точно также может быть выполнен и на Ubuntu 22.04.
Как вы поняли устанавливать пакет используя dpkg нужно с опцией -i. Обычно с помощью dpkg устанавливаются пакеты, которых нет в репозиториях. То есть вы их можете найти где-нибудь в интернете, скачать, а затем установить.
Удаление пакетов
Для удаления пакета используется опция -r:
alex@deb:~$ sudo dpkg -r apache2
Список установленных пакетов
А с помощью опции -l можно посмотреть список установленных пакетов:
alex@deb:~$ dpkg -l Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h] | Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/ частично установлен[H]/trig-aWait/Trig-pend |/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр в полях состояния и ошибки указывает на ненормальную ситуацию) ||/ Имя Версия Архитектура Описание +++-==============================-==============================-============-=============================================================================== ii adduser 3.118 all add and remove users and groups rc apache2 2.4.53-1~deb11u1 amd64 Apache HTTP Server ii apache2-bin 2.4.53-1~deb11u1 amd64 Apache HTTP Server (modules and other binary files) ii apache2-data 2.4.53-1~deb11u1 all Apache HTTP Server (common files) ii apache2-utils 2.4.53-1~deb11u1 amd64 Apache HTTP Server (utility programs for web servers) ii apparmor 2.13.6-10 amd64 user-space parser utility for AppArmor ii apt 2.2.4 amd64 commandline package manager ii apt-listchanges 3.24 all package change history notification tool ii apt-utils 2.2.4 amd64 package management related utility programs
Вы можете заметить что пакет apache2, который я удалил в предыдущем примере отмечен как rc (удалён и настроен).
Информация о пакетах
Получить информацию о приложении можно с помощью -s:
alex@deb:~$ dpkg -s apache2 | head Package: apache2 Status: deinstall ok config-files Priority: optional Section: httpd Installed-Size: 622 Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org> Architecture: amd64 Version: 2.4.53-1~deb11u1 Config-Version: 2.4.53-1~deb11u1 Replaces: apache2.2-bin, apache2.2-common, libapache2-mod-proxy-uwsgi (<< 2.4.33) alex@deb:~$ dpkg -s apt | head Package: apt Status: install ok installed Priority: required Section: admin Installed-Size: 4337 Maintainer: APT Development Team <deity@lists.debian.org> Architecture: amd64 Version: 2.2.4 Replaces: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~) Provides: apt-transport-https (= 2.2.4)
Первый раз я смотрю информацию о приложении apache2, который я удалил с помощью dpkg -r. Такое удаление не удаляет конфигурационные файлы, поэтому пакет хоть и удалён (deinstall), но настроен (config-files).
Второй раз я смотрю информацию о приложении apt. Эта утилита установлена (install ok installed).
А если мы удалим приложение с помощью apt purge, то мы совсем не сможем получить о нём информацию с помощью dpkg:
alex@deb:~$ sudo apt install apache2 alex@deb:~$ sudo apt purge apache2 alex@deb:~$ dpkg -s apache2 dpkg-query: пакет «apache2» не установлен, информация о нём недоступна Use dpkg --info (= dpkg-deb --info) to examine archive files.
Можно посмотреть информацию о скаченном пакете с помощью dpkg -I:
alex@deb:~$ dpkg -I apache2_2.4.53-1~deb11u1_amd64.deb new Debian package, version 2.0. size 273352 bytes: control archive=12768 bytes. 6578 байт(а), 157 строк conffiles 1121 байт(а), 23 строк control 1918 байт(а), 27 строк md5sums 10636 байт(а), 376 строк * postinst #!/bin/bash 3751 байт(а), 137 строк * postrm #!/bin/sh 10543 байт(а), 207 строк * preinst #!/bin/bash 837 байт(а), 24 строк * prerm #!/bin/sh Package: apache2 Version: 2.4.53-1~deb11u1 Architecture: amd64 Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org> Installed-Size: 622 Pre-Depends: dpkg (>= 1.17.14), init-system-helpers (>= 1.54~) Depends: apache2-bin (= 2.4.53-1~deb11u1), apache2-data (= 2.4.53-1~deb11u1), apache2-utils (= 2.4.53-1~deb11u1), lsb-base, mime-support, perl:any, procps Recommends: ssl-cert Suggests: apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, www-browser Conflicts: apache2.2-bin, apache2.2-common Breaks: libapache2-mod-proxy-uwsgi (<< 2.4.33) Replaces: apache2.2-bin, apache2.2-common, libapache2-mod-proxy-uwsgi (<< 2.4.33) Provides: httpd, httpd-cgi Section: httpd Priority: optional Homepage: https://httpd.apache.org/ Description: Apache HTTP Server The Apache HTTP Server Project's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . Installing this package results in a full installation, including the configuration files, init scripts and support scripts.
Можно посмотреть список всех файлов которые установились вместе с пакетом с помощью dpkg -L:
alex@deb:~$ sudo apt install apache2 alex@deb:~$ dpkg -L apache2 | head /. /etc /etc/apache2 /etc/apache2/apache2.conf /etc/apache2/conf-available /etc/apache2/conf-available/charset.conf /etc/apache2/conf-available/localized-error-pages.conf /etc/apache2/conf-available/other-vhosts-access-log.conf /etc/apache2/conf-available/security.conf /etc/apache2/conf-available/serve-cgi-bin.conf
В некоторых командах я добавляю (| head), чтобы видеть только первые 10 строк из всего вывода.
Итог
Пакетный менеджер dpkg чаще используют не для установки или удаления приложений, а для просмотра информации об уже установленных приложениях или о скаченных пакетах. Устанавливают и удаляют приложения в основном те, которых нет в репозиториях и которые поставляются отдельными .deb пакетами.
Еще раз пробежимся по опциям:
-i
,-r
— установить или удалить пакет;-l
— список установленных пакетов;-s
— информация об установленном приложении;-I
— информация о скачанном пакете;-L
— список файлов, которые установились из пакета.
Сводка
Имя статьи
Пакетный менеджер dpkg
Описание
На этом уроке рассмотрим пакетный менеджер dpkg, который в отличии от apt не умеет работать с репозиториями