Wenn ich apt update
auf einemUbuntu 18.04.6 LTS, einem Server, den meine Firma zum Hosten von Netbox verwendet, tritt bei mir das folgende Problem auf:
$ sudo apt update
Hit:1 http://azure.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://azure.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:3 http://azure.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:4 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic InRelease
Hit:5 https://packages.microsoft.com/ubuntu/18.04/prod bionic InRelease
Hit:6 http://security.ubuntu.com/ubuntu bionic-security InRelease
Traceback (most recent call last):
File "/usr/lib/cnf-update-db", line 8, in <module>
from CommandNotFound.db.creator import DbCreator
File "/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py", line 11, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
Ich habe ein ähnliches Problem, wenn ich Folgendes ausführe neofetch
:
$ neofetch
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Ein Kollege von mir hat mir gesagt, ich solle Folgendes ausführen und es noch einmal versuchen, aber bei mir ist das Problem dasselbe:
sudo apt-get remove command-not-found
sudo apt-get clean
sudo apt-get update
sudo apt-get install command-not-found
Dann habe ich überprüft, wie viele Python-Versionen auf diesem Server installiert sind, und ich kam auf 4:
$ ls -ls /usr/bin/python*
0 lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
0 lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python2 -> python2.7
3544 -rwxr-xr-x 1 root root 3628904 Nov 28 18:51 /usr/bin/python2.7
0 lrwxrwxrwx 1 root root 25 Jan 10 08:10 /usr/bin/python3 -> /etc/alternatives/python3
0 lrwxrwxrwx 1 root root 16 Oct 25 2018 /usr/bin/python3-config -> python3.6-config
4 -rwxr-xr-x 1 root root 1018 Oct 28 2017 /usr/bin/python3-jsondiff
4 -rwxr-xr-x 1 root root 3661 Oct 28 2017 /usr/bin/python3-jsonpatch
4 -rwxr-xr-x 1 root root 1342 May 1 2016 /usr/bin/python3-jsonpointer
4 -rwxr-xr-x 1 root root 398 Nov 15 2017 /usr/bin/python3-jsonschema
5356 -rwxr-xr-x 1 root root 5481816 Dec 7 01:11 /usr/bin/python3.10
4424 -rwxr-xr-x 2 root root 4526456 Nov 25 14:10 /usr/bin/python3.6
0 lrwxrwxrwx 1 root root 33 Nov 25 14:10 /usr/bin/python3.6-config -> x86_64-linux-gnu-python3.6-config
4424 -rwxr-xr-x 2 root root 4526456 Nov 25 14:10 /usr/bin/python3.6m
0 lrwxrwxrwx 1 root root 34 Nov 25 14:10 /usr/bin/python3.6m-config -> x86_64-linux-gnu-python3.6m-config
0 lrwxrwxrwx 1 root root 10 Oct 25 2018 /usr/bin/python3m -> python3.6m
0 lrwxrwxrwx 1 root root 17 Oct 25 2018 /usr/bin/python3m-config -> python3.6m-config
Beim Ausführen python3 --version
wird es zurückgegeben.Python 3.10.9
Hat jemand eine Ahnung, wie ich dieses Problem lösen kann, ohne die gehostete App migrieren zu müssen? Das wäre ein Albtraum :(
BEARBEITEN:
Ich suchte /usr/lib/python3/dist-packages
nach apt_pkg
„via“ ls -la | grep "apt_pkg.cpython"
und fand die Datei apt_pkg.cpython-36m-x86_64-linux-gnu.so
. Ich benannte die Datei in um apt_pkg.so
und konnte sie nun apt update
mit einer neuen Fehlermeldung ausführen:
$ sudo apt update && sudo apt upgrade
[sudo] password for admin-federico-dostuni:
Hit:1 http://azure.archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://azure.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu bionic-backports InRelease [83.3 kB]
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:5 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic InRelease
Hit:6 https://packages.microsoft.com/ubuntu/18.04/prod bionic InRelease
Fetched 172 kB in 1s (176 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
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.
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] y
Setting up update-notifier-common (3.192.1.15) ...
Traceback (most recent call last):
File "/usr/lib/update-notifier/package-data-downloader", line 24, in <module>
import debian.deb822
File "/usr/lib/python3/dist-packages/debian/deb822.py", line 78, in <module>
class TagSectionWrapper(collections.Mapping):
AttributeError: module 'collections' has no attribute 'Mapping'
dpkg: error processing package update-notifier-common (--configure):
installed update-notifier-common package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
update-notifier-common
E: Sub-process /usr/bin/dpkg returned an error code (1)
Antwort1
wegen der Datei /usr/lib/update-notifier/package-data-downloader
, deren erste Zeile Folgendes enthält:
#!/usr/bin/python3
Aus den vorausgehenden Informationen geht hervor, dass Ihr Python Python 3.10.9
,
und apt_pkg ist apt_pkg.cpython-36m-x86_64-linux-gnu.so
, was bedeutet, dass es nur mit Python 3.6 übereinstimmt. Möglicherweise sollten Sie Folgendes tun:
sudo rm /usr/bin/python3
sudo ln -f /usr/bin/python3.6 /usr/bin/python3
Stellen Sie sicher, python3 --version
dasspython3.6.x
Führen Sie den Update-Befehl testweise aus.
sudo apt update
Antwort2
Ubuntu 22.04.
Ich erhielt immer wieder Warnungen und Fehlermeldungen, wenn ich versuchte, dies zu tun apt update
, im Detail geht es wie folgt
Fetched 16.8 kB in 1s (14.2 kB/s) sh: 1: /usr/lib/cnf-update-db: not found Reading package lists... Done W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://dl.google.com/linux/chrome/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E88979FB9B30ACF2 W: Failed to fetch https://dl.google.com/linux/chrome/deb/dists/stable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E88979FB9B30ACF2 W: Some index files failed to download. They have been ignored, or old ones used instead. E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi' E: Sub-process returned an error code
Es stellte sich heraus, dass /usr/bin/python3
mit einer ungültigen Adresse verknüpft war. Als ich nachschaute ls -ls /usr/bin/python*
, gab es eine rote Linie, die anzeigte, dass nicht verfügbar ist.
Was ich nützlich fand, ist, diesen Link mit zurückzusetzen ln -s /usr/bin/pythonVERSIONAVAILABLE /usr/bin/python3
.
Gelöst.