Рейтинг:0

Как исправить ошибку проверки apt-get, возможно, у вас повреждены пакеты

флаг in

Я попытался исправить неработающую установку autodl irssi на арендованном выделенном сервере под управлением Ubuntu 18.04.1 LTS (GNU/Linux 4.9.0-15-amd64 x86_64) и Swizzin Box, удалив и переустановив пакет autodl коробки.

удаление autodl дало: -

УСПЕХ автодл удален 
ОШИБКА База данных dpkg заблокирована командой apt-get. Пожалуйста, повторите попытку позже

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

ИНФОРМАЦИЯ Установка autodl 
E: Невозможно исправить проблемы, у вас есть сломанные пакеты. 
ОШИБКА Проверка моделирования привела к ошибке. Пожалуйста, обратитесь к журналу.

журнал показывает

Чтение списков пакетов...
Построение дерева зависимостей...
Чтение информации о состоянии...
Возможно, вы захотите запустить «apt --fix-broken install», чтобы исправить это.
Следующие пакеты имеют неудовлетворенные зависимости:
 pkg-config : Зависит: libdpkg-perl, но не установлен

запуск «apt --fix-broken install» дает: -

0 обновлено, 0 установлено заново, 1 удалено и 107 не обновлено.
После этой операции освободится 193 кБ дискового пространства.
Вы хотите продолжить? [Да/нет] г

(Чтение базы данных... 87206 файлов и каталогов, установленных на данный момент.)

Удаление pkg-config (0.29-4+b1)...

Не удается найти Dpkg/Arch.pm в @INC (возможно, вам потребуется установить модуль Dpkg::Arch) (@INC содержит: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26 .1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr /share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) в строке 14 /usr/share/pkg-config-dpkghook.

BEGIN не удалось — компиляция прервана в /usr/share/pkg-config-dpkghook, строка 14.

dpkg: ошибка обработки пакета pkg-config (--remove):

 установленный подпроцессом сценарий предварительного удаления вернул статус выхода ошибки 2

При обработке возникли ошибки:

 pkg-config

E: Подпроцесс /usr/bin/dpkg возвратил код ошибки (1)

Есть ли у кого-нибудь предложения, как я могу решить эту проблему?

EODCraft Staff avatar
флаг cn
Похоже, он ищет какие-то Perl-библиотеки. Установите Google Perl и посмотрите, как установить этот пакет. `Dpkg::Arch модуль`
Paladinz avatar
флаг in
Попытка установить Perl дает
Paladinz avatar
флаг in
попытка установить perl дает perl: зависит: perl-modules-5.26 (>= 5.26.1-6ubuntu0.5), но он не будет установлен Зависит: libperl5.26 (= 5.26.1-6ubuntu0.5) но не устанавливается pkg-config : Зависит: libdpkg-perl, но не будет установлен Попытка установить это дает Следующие пакеты имеют неудовлетворенные зависимости: pkg-config : зависит: libdpkg-perl, но не будет установлен
Рейтинг:-1
флаг in

Пытаться sudo apt --fix-broken установить libdpkg-pearl. Кроме того, проверьте, есть ли у вас закрепленные пакеты: запустите удачная политика, и проверьте что-нибудь интересное. В этом случае «интересные» включают любые сторонние репозитории: если строка не включает «ubuntu.com», это подозрительно.

Бывают случаи, когда необходимы сторонние репозитории (не от Canonical), например, для проприетарного программного обеспечения, которое нельзя распространять, или когда последняя исходная версия программного обеспечения является жестким требованием. Однако эти репозитории ДОЛЖНЫ быть разработаны специально для работы с базовой установкой любой вашей ОС и не должны содержать посторонних пакетов. Вы абсолютно никогда не должны пытаться добиться совместимости, добавляя ссылки на другую операционную систему: например, добавляя Debian Stretch в качестве источника пакета для выпуска Ubuntu Bionic. Может произойти множество причудливых конфликтов пакетов и неожиданных замен.

Я не смог воссоздать эту ситуацию в chroot: apt --fix-сломанная установка работал даже после некоторых агрессивных удалений. Aptitude может предоставить вам больше информации, но я сомневаюсь, что вы сможете запустить его, учитывая текущий беспорядок с пакетами. Pastebin из dpkg --список будет следующим битом отладочной информации.

Paladinz avatar
флаг in
спасибо Калум, `sudo apt --fix-broken install libdpkg-pearl` возвращает `E: Не удалось найти пакет libdpkg-pearl`. Я недостаточно знаю, чтобы определить, что может быть интересного в `apt policy`, но вывод находится [здесь] (https://pastebin.com/FkfuiQxd), если у вас есть время посмотреть на него. вывод из `dpkg --list` находится [здесь](https://pastebin.com/StY6AGkk)
Paladinz avatar
флаг in
перечитав ваш комментарий, я заметил автозамену и выполнил команду с Perl, а не с Pearl. он возвращается `Возможно, вы захотите запустить ‘apt --fix-broken install’, чтобы исправить это. Следующие пакеты имеют неудовлетворенные зависимости: libdpkg-perl : зависит: perl, но не будет установлен Рекомендует: libfile-fcntllock-perl, но не будет установлен Рекомендует: liblocale-gettext-perl, но он не будет установлен`
Calum McConnell avatar
флаг in
@Paladinz Извините за поздний ответ. Причина, по которой я был заинтересован в apt-policy, заключается в том, что закрепленные пакеты и другие странные вещи могут мешать нормальному функционированию APT. Кажется, здесь дело обстоит именно так: вы используете не Ubuntu BONIC, а смесь Debian Stretch, Buster-Backports и Bonic. Это серьезная проблема: эти репозитории не предназначены для одновременного использования. Поскольку версии развиваются по-разному, вы получаете несколько новых пакетов Ubuntu, несколько старых пакетов Debian и несколько супер новых пакетов Debian. Ты захочешь это исправить.
Calum McConnell avatar
флаг in
@Paladinz решение будет немного сложным. Просмотрите файлы sources.list и sources.list.d и удалите все, что включает домен 'debian.org', а также зеркала файлов debian на базе лизинга. Похоже, вам нужны только два сторонних репозитория: syncthing и nodesource. Если вам действительно нужна исходная версия этого программного обеспечения, еще раз взгляните на их документы по установке. Однако Node.JS, а также SyncThing доступны в официальных репозиториях Ubuntu, поэтому вы, вероятно, можете удалить и эти строки. После этого повторите попытку устранения неполадок.
Paladinz avatar
флаг in
спасибо, у всех нас есть жизни, поэтому любой полезный ответ приветствуется, даже если это займет некоторое время :) Я почищу исходники и посмотрю, что получится.
Paladinz avatar
флаг in
Я вижу те же ошибки, даже если `sources.list` содержит только `deb http://security.ubuntu.com/ubuntu bionic-security main multiverse Universe limited` и `deb http://archive.ubuntu.com/ Ubuntu Bionic Universe Multiverse Limited`. Вывод из `apt-get update && apt-get dist-upgrade` и `apt --fix-broken install` находится [ЗДЕСЬ] (https://pastebin.com/XedXXvqq). Приношу свои извинения, если не знаю основных деталей, но мой друг, настроивший систему, скончался из-за Covid, а Unix не является моей естественной средой обитания.
Calum McConnell avatar
флаг in
Хорошо, давайте попробуем `apt install --fix-broken perl pkg-config`. Похоже, проблема в том, что кто-то пытался вручную удалить массу пакетов, включая Perl: поскольку Perl является неотъемлемой частью системы Debian, это привело к поломке, которую вы видите сейчас. Возможно, будет проще посмотреть на переустановку с нуля: есть много пакетов, которые были удалены (все, что помечено 'r' в выводе списка dpkg), многие из которых, вероятно, необходимы для работы этого сервера.
Paladinz avatar
флаг in
Да, это был я, когда система сказала что-то вроде не нужно и использовать автоудаление. **Все пошло не так**. `apt install --fix-broken perl pkg-config` возвращает `perl: Зависит: perl-modules-5.26 (>= 5.26.1-6ubuntu0.5), но он не будет установлен | Зависит: libperl5.26 (= 5.26.1-6ubuntu0.5) но не устанавливается | pkg-config : Зависит: libdpkg-perl, но не устанавливается | E: Неудовлетворенные зависимости. Попробуйте «apt --fix-broken install». Начать с нуля будет означать перемещение 15 ТБ данных, поэтому мне придется найти новый сервер для их перемещения, возможно, это единственный вариант.
Calum McConnell avatar
флаг in
Итак, я только что понял, что на самом деле я никогда не говорил очищать какие-либо закрепленные пакеты. Вы захотите это сделать: возможно, контакт znc-perl пытается удержать весь perl до версии 5.22. Чтобы очистить эти контакты, удалите что-либо в /etc/apt/preferences.d и /etc/apt/preferences. Затем запустите apt policy, чтобы убедиться, что вы чисты.
Calum McConnell avatar
флаг in
К тому же я запутался. `dpkg --list` не является информацией, необходимой для отладки этих проблем. Вместо этого не могли бы вы предоставить мне содержимое `/var/lib/dpkg/status`? Этот файл содержит достаточно дополнительной информации, чтобы я мог точно смоделировать вашу систему, что позволило бы мне перестать выдвигать против вас догадки, которые не работают.
Paladinz avatar
флаг in
спасибо, Калум, `apt policy` выглядит хорошо, вывод [здесь](https://pastebin.com/EZwfG2mc), вывод `/var/lib/dpkg/status` [здесь](https:// zerobin.net/?d3e9c1eb8fef7c7c#+wrxLlUwThDcR3nrwm8Tn7K6Mb6MljiEGBKHxM+2YAY=)
Calum McConnell avatar
флаг in
Ладно. Я смог получить менее сломанную систему с помощью `sudo apt install --fix-broken libjpeg-turbo8-` (минус после имени пакета указывает на его удаление, что помогает apt найти решение). Этот пакет кажется избыточным и конфликтует с libturbojpeg0: поэтому его можно безопасно удалить. После этого система все еще работала с кучей задержанных пакетов, но она, безусловно, более работоспособна. Можете ли вы снова отправить мне статус после выполнения этой команды?
Paladinz avatar
флаг in
К сожалению, это не помогло, так как система говорит: «Пакет libjpeg-turbo8 не установлен, поэтому не удален» и выдает обычную ошибку `pkg-config : Depends: libdpkg-perl, но это не устанавливается`.
Calum McConnell avatar
флаг in
Я вижу проблему: наши версии apt совершенно разные. Я тестировал гораздо более новую версию apt, чем та, что у вас сейчас установлена: предположительно, опция --fix-broken получила некоторые обновления. Вот более функциональная команда: `apt install --fix-broken build-essential cpp cpp-7 dpkg-dev g++ g++-7 gcc gcc-7 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan4 libdpkg-perl libfile-fcntllock-perl libgcc-7-dev libgdbm-compat4 libgdbm5 libisl19 liblocale-gettext-perl libmpc3 libmpfr6 libperl5.26 libstdc++-7-dev perl`.
Paladinz avatar
флаг in
вывод команды `apt install` находится [ЗДЕСЬ] (https://zerobin.net/?69bb6e9b1fd15353#7fgTcFeiPqnBvMWGNV0FNU+KLcC+OyC5TSUST5krFww=), а вывод `/var/lib/dpkg/status` — [ЗДЕСЬ] (https://zerobin.net/?262213e20afc38f6#qEmqTEuAjHONr1C0QxqnMNGFKnTYnf9eARek3IO5RZo=)
Calum McConnell avatar
флаг in
Еще раз взгляните на вывод вашей политики apt: похоже, вам не хватает «main» в записи sources.list для archive.ubuntu.com. Извините, я не заметил этого раньше: добавьте «основной» в этот файл (рядом с тем, где написано «вселенная» и «мультивселенная», а затем повторите попытку.
Paladinz avatar
флаг in
Я бы никогда не заметил, что он отсутствует, так что все хорошо! запись в sources.list теперь имеет `deb http://archive.ubuntu.com/ubuntu bionic main Universe multiverse limited` и команда `apt install` сработала, содержимое `/var/lib/dpkg/status` такое [ ЗДЕСЬ](https://zerobin.net/?d3778344ec7d302d#EJPGwsWwPBD91qiAipFV4VGLdRTfk7uidifE8ekNOYc=)
Calum McConnell avatar
флаг in
Хорошо, теперь у нас есть *рабочая* установка Debian, давайте вернемся к устранению исходной проблемы с IRSSI-autodl. Это потребует некоторых усилий по отладке: я готов поспорить, что часть того, ПОЧЕМУ он был первоначально сломан, была из-за странных несоответствий версий. Например, сейчас вы используете IRSSI из Debian 9, а не версию из Ubuntu Bionic. Это можно исправить, выполнив `apt install --reinstall irssi`: однако это может потребоваться повторить много раз. Также есть много (теоретически) неиспользуемых пакетов. Какие проблемы вы видите сейчас?
Paladinz avatar
флаг in
Теперь я не вижу никаких проблем, autodl управляется интерфейсом Swizzin Box и переустанавливается через него (после того, как я установил git и обновил), все работает отлично! Большое спасибо, Калум, за все усилия, которые вы вложили в это, это очень ценно.

Ответить или комментировать

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