Как исправить неработающие пакеты в Ubuntu

У меня есть сервер Ubuntu 18.10, и недавно я пытался обновить git . Я все время получаю ошибки, что некоторые пакеты установлены неправильно.

Errors were encountered while processing:
 libpaper1:amd64
 libpaper-utils
 unattended-upgrades
 libgs9:amd64
 ghostscript

Затем я запустил dpkg --configure -a и увидел те же ошибки. Я хочу быть осторожным и не поливать мою систему, но как я могу исправить эти ошибки?

~ $ sudo apt list --upgradable
Listing... Done
~ $ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
~ $ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
5 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up libpaper1:amd64 (1.1.24+nmu5ubuntu1) ...
dpkg: error processing package libpaper1:amd64 (--configure):
 installed libpaper1:amd64 package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of libpaper-utils:
 libpaper-utils depends on libpaper1; however:
  Package libpaper1:amd64 is not configured yet.

dpkg: error processing package libpaper-utils (--configure):
 dependency problems - leaving unconfigured
Setting up unattended-upgrades (1.5ubuntu3.18.10.4) ...
dpkg: error processing package unattended-upgrades (--configure):
 installed unattended-upgrades package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of libgs9:amd64:
 libgs9:amd64 depends on libpaper1; however:
  Package libpaper1:amd64 is not configured yet.

dpkg: error processing package libgs9:amd64 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of ghostscript:
 ghostscript depends on libgs9 (= 9.26~dfsg+0-0ubuntu0.18.10.9); however:
  Package libgs9:amd64 is not configured yet.

dpkg: error processing package ghostscript (--configure):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.28-0ubuntu1) ...
Errors were encountered while processing:
 libpaper1:amd64
 libpaper-utils
 unattended-upgrades
 libgs9:amd64
 ghostscript
E: Sub-process /usr/bin/dpkg returned an error code (1)

РЕДАКТИРОВАТЬ

В ответ на вопрос @Stefan Skoglund:

~ $ sudo apt-cache policy libpaper1
libpaper1:
  Installed: 1.1.24+nmu5ubuntu1
  Candidate: 1.1.24+nmu5ubuntu1
  Version table:
 *** 1.1.24+nmu5ubuntu1 500
        500 http://mirror.hetzner.de/ubuntu/packages cosmic/main amd64 Packages
        500 http://de.archive.ubuntu.com/ubuntu cosmic/main amd64 Packages
        100 /var/lib/dpkg/status

~ $ sudo dpkg-reconfigure -plow libpaper1
/usr/sbin/dpkg-reconfigure: libpaper1 is broken or not fully installed

РЕДАКТИРОВАТЬ 2

С осторожностью пренебрегая скрестив глаза, я попробовал следующее:

sudo apt-get --purge remove libpaper1:amd64 libpaper-utils unattended-upgrades libgs9:amd64 ghostscript
sudo apt-get clean
sudo apt-get update && sudo apt-get upgrade
sudo apt autoremove

Это волшебным образом сработало.

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

-1
задан 22 November 2019 в 16:08
2 ответа

Что произошло, вот то, что сценарий постустановки libpaper1 пакета был поврежден и вышелся с ошибкой во время процесса установки. Этого не должно происходить, потому что это повреждает состояние пакета, когда Вы испытали, который является, почему это - хорошая идея сообщить об ошибке специалисту по обслуживанию пакета. Посмотрите страница ReportingBugs wiki для деталей.

Ваши опции следующие:

Удаляют пакет и ожидают фиксации . Это - то, что, вероятно, произошло в Вашем случае: к тому времени, когда Вы решили произвести чистку libpaper1 пакета, он был зафиксирован, и новая установка, за которой следуют.

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

Восстановление сценарий постустановки. Это - альтернатива, если Вы действительно, абсолютно нуждайтесь в том пакете, и Вы не хотите ожидать до фиксации. Действительно необходимо знать то, что Вы делаете (знание программирования оболочки - необходимость), но восстановление сценария обычно просто.

Каждый пакет может иметь предварительную установку и сценарий после установки, они живут в /var/lib/dpkg/info каталог и названы package[:arch].preinst и package[:arch].postinst. Они выполняются до, и после установки, соответственно [*].

В Вашем случае сценарий после установки перестал работать, что означает, что пакет был установлен (таким образом, файлы были извлечены), единственная оставленная вещь состояла в том, чтобы выполнить сценарий постустановки. Таким образом, то, что необходимо сделать, должно выполнить сценарий (libpaper1:amd64.postinst) от корневого терминала и записать строку, в которой произошла ошибка. Восстановление сценария обычно тривиально отсюда, но убеждаться понять то, что сценарий пытался сделать, так как может быть возможно, что неудавшаяся команда была крайне важна для пакета. Действительно попытайтесь на самом деле восстановить сценарий (например, добавляя || true в конец работ строки, но может не быть лучшая идея).

, Если выполнения сценария без ошибки,

dpkg --configure -a

команда настроит все незаконченные пакеты и запускает скрипт постустановки в процессе, восстанавливая состояние пакета.

[*] фактический процесс сложен, конечно; если Вы хотите знать то, что происходит точно во время установки/удаления, см. описание install, configure, и remove действия в dpkg (1) страница справочника.

1
ответ дан 5 December 2019 в 19:20

Вы пробовали apt-get install -f?

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

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

Если были установлены пакеты с параметром apt -t <...>, то с помощью этого параметра помогли установить все проблемные пакеты.

Иногда, однако мне пришлось сначала удалить пакеты.

Но у меня также был случай, когда мне приходилось работать с параметрами -Force. Вы пробовали apt-get install -f?

1
ответ дан 5 December 2019 в 19:20

Теги

Похожие вопросы