apt upgrade: не удалось выполнить операцию: нет такого файла или каталога

После обновления с 14.04 до 16.04 apt-get как-то испортился в моей системе xenial, и я не уверен, как это исправить. Это то, что я получаю (после apt update).
Может кто-нибудь дать совет, как это исправить?

$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  libsimgearcore3.4.0v5 libsimgearscene3.4.0v5 linux-headers-4.4.0-97 linux-headers-4.4.0-97-generic linux-image-4.4.0-97-generic linux-image-extra-4.4.0-97-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 
Setting up snapd (2.28.5~14.04) ...
Failed to execute operation: No such file or directory
dpkg: error processing package snapd (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 snapd
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я также попытался запустить apt -f install и получил следующее:

$ sudo apt -f install
[sudo] password for ron: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libsimgearcore3.4.0v5 libsimgearscene3.4.0v5 linux-headers-4.4.0-97 linux-headers-4.4.0-97-generic linux-image-4.4.0-97-generic linux-image-extra-4.4.0-97-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up snapd (2.28.5~14.04) ...
Failed to execute operation: No such file or directory
dpkg: error processing package snapd (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 snapd
E: Sub-process /usr/bin/dpkg returned an error code (1)

где $ sudo dpkdg --configure -a дает мне :

$ sudo dpkg --configure -a
Setting up snapd (2.28.5~14.04) ...
Failed to execute operation: No such file or directory
dpkg: error processing package snapd (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 snapd

Где sudo apt-get --remove purge snapd возвращает:

$ sudo apt-get --remove purge snapd
[sudo] password for ron: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  cgroup-lite libsimgearcore3.4.0v5 libsimgearscene3.4.0v5 linux-generic-lts-xenial linux-headers-4.4.0-97 linux-headers-4.4.0-97-generic linux-image-4.4.0-97-generic
  linux-image-extra-4.4.0-97-generic squashfs-tools
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  snapd*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 74.5 MB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 661915 files and directories currently installed.)
Removing snapd (2.28.5~14.04) ...
Failed to stop snapd.autoimport.service: Unit snapd.autoimport.service not loaded.
Failed to stop snapd.socket: Unit snapd.socket not loaded.
Failed to stop snapd.service: Unit snapd.service not loaded.
dpkg: error processing package snapd (--purge):
 subprocess installed pre-removal script returned error exit status 5
Errors were encountered while processing:
 snapd
sudo aE: Sub-process /usr/bin/dpkg returned an error code (1)
1
задан 28 November 2017 в 05:10

2 ответа

Этот ответ @vskubriev может содержать ключ к принудительному удалению.

По существу:
Добавить exit 0 после Шебанга в /var/lib/dpkg/info/snapd.prerm. Затем выполните следующие команды.

dpkg --purge --force-all snapd
apt-get update

При желании переустановите, запустив apt-get install snapd

Если ответ @ vskubriev поможет поднять его там, не здесь.

2
ответ дан 28 November 2017 в 05:10

Похоже, что вы обновились с 14.04 с установленным snapd до 16.04, и по какой-то причине пакет snapd не был заменен, и у вас возникла эта проблема, вы можете выполнить следующее, чтобы удалить пакет:

#: sudo rm /var/lib/dpkg/info/snapd.p*rm
#: sudo apt-get remove --purge snapd

Это приведет к удалению сценариев до / после удаления и должно позволить удалить пакет после сбоя сценария. Если вам нужна оснастка (потому что вы уже установили несколько снимков или около того), вы можете просто запустить:

#: sudo apt update
#: sudo apt install snapd
0
ответ дан 28 November 2017 в 05:10

Другие вопросы по тегам:

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