Чтобы было сделано на Ubuntu 22.04 Server
Опираясь на заметку: "Обновляем Python на Ubuntu 22.04"
после захотел обновить систему
sudo rm -Rf /var/lib/apt/list
sudo apt-get update && sudo apt-get upgrade -y
и получил ошибку:
Traceback (most recent call last):
File “/usr/lib/cnf-update-db”, line 3, in <module>
import apt_pkg
ModuleNotFoundError: No module named ‘apt_pkg’
На одном форуме вычитал: “не заморачивайтесь со встроенным Python и его переназначением версий, работайте в virtualenv.
Да этот совет имеет место быть, но у меня это была тестовая система, на которой я пытался развернуть утилиту ssh-commander и там жуть что пошло все не так, думал если обновить систему.
Пробую отменить все свои действия после выполненного выше:
ekzorchik@srv-home:~$ nano ~/.bashrc
ekzorchik@srv-home:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 0
ekzorchik@srv-home:~$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
ekzorchik@srv-home:~$
А фиг!!!
ekzorchik@srv-home:~$ sudo rm /etc/apt/sources.list.d/deadsnakes-ubuntu-ppa-jammy.list
ekzorchik@srv-home:~$ sudo apt-get update
Hit:1 http://ru.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://ru.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:3 http://ru.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:4 http://ru.archive.ubuntu.com/ubuntu jammy-security InRelease
Traceback (most recent call last):
File "/usr/lib/cnf-update-db", line 3, 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'
E: Sub-process returned an error code
ekzorchik@srv-home:~$
ekzorchik@srv-home:~$ sudo apt-get remove -y python3.13
ekzorchik@srv-home:~$ sudo mv /etc/apt/apt.conf.d/50command-not-found{,.disabled}
А содержимое файла который я переименовал, ну так на всякий случай для самого себя:
ekzorchik@srv-home:~$ cat /etc/apt/apt.conf.d/50command-not-found.disabled
## This file is provided by command-not-found(1) to download
## Commands metadata files.
Acquire::IndexTargets {
# The deb822 metadata files
deb::CNF {
MetaKey “$(COMPONENT)/cnf/Commands-$(NATIVE_ARCHITECTURE)”;
ShortDescription “Commands-$(NATIVE_ARCHITECTURE)”;
Description “$(RELEASE)/$(COMPONENT) $(NATIVE_ARCHITECTURE) c-n-f Metadata”;
};
};
# Refresh AppStream cache when APT’s cache is updated (i.e. apt update)
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”;
};
ekzorchik@srv-home:~$
ekzorchik@srv-home:~$ sudo apt-get update
Hit:1 http://ru.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://ru.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:3 http://ru.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:4 http://ru.archive.ubuntu.com/ubuntu jammy-security InRelease
Reading package lists… Done
ekzorchik@srv-home:~$
ekzorchik@srv-home:~$ sudo rm -Rf /var/lib/apt/lists
ekzorchik@srv-home:~$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
ekzorchik@srv-home:~$ sudo reboot
ekzorchik@srv-home:~$ uname -a && lsb_release -a
Linux srv-home 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
ekzorchik@srv-home:~$
Вывод из все этого: Не стоит влезать в системные настройки без надобности, если на тесте то да, а на боевом нет или же использовать:
virtualevn
LXC
docker
На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.