Это дистрибутив, который я сейчас использую:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
Поэтому я пытаюсь обновиться до Ubuntu 20.04:
$sudo do-release-upgrade -d
Reading cache
Checking package manager
Can not upgrade
Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink.
=== Command terminated with exit status 1 (Wed Apr 7 17:07:46 2021) ===
Затем я проверяю свои варианты обновления:
$update-alternatives --display python3
python3 - manual mode
link best version is /usr/bin/python3.8
link currently points to /usr/bin/python3.6
link python3 is /usr/bin/python3
/usr/bin/python3.6 - priority 1
/usr/bin/python3.8 - priority 2
Поэтому я переключаюсь на python3.8
$sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python3.8 2 auto mode
* 1 /usr/bin/python3.6 1 manual mode
2 /usr/bin/python3.8 2 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
И пытаюсь выполнить обновление снова:
$ sudo do-release-upgrade -d
Traceback (most recent call last):
File "/usr/bin/do-release-upgrade", line 11, in <module>
from UpdateManager.Core.MetaRelease import MetaReleaseCore
File "/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py", line 25, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Все ответы на ModuleNotFoundError: Нет модуль с именем 'apt_pkg'
не помог.
Каков выход?
Сделайте жизнь простой;
$ HOME /
(обратите внимание на скрытые файлы! Их имена начинаются с точки в ls -lA
output) , какие пакеты программного обеспечения вы установили, а также любые настройки, которые вы сделали для них и других.Все остальное, кроме вышеперечисленного, может вызвать проблемы после обновления.
Совет:
$ apt-mark showmanual | less
покажет вам список пакетов, которые, по-видимому, были установлены в apt вручную, список, вероятно, будет включать ваш «специальный» выбор программного обеспечения.
например.
$ apt-mark showmanual> file_before.txt
... сохранит список для текущей ОС, ожидая, пока вы его где-нибудь сохраните.
Используйте аналогичный
$ apt-mark showmanual> file_after.txt
... после переустановки, затем используйте
$ diff -u0 file_before.txt file_after.txt | less
для проверки различий.
Аналогичным образом вы можете проверить любой файл настроек для ранее установленного программного обеспечения, которое вы переустановили в новой ОС.
Обратите внимание, что простое копирование файла настроек может быть проблематичным, если у вас НОВАЯ версия того же программного обеспечения.
ПРИМЕЧАНИЕ, мой личный опыт таков: Это ЯВЛЯЕТСЯ больше работы, но оказалось, что это самый «безопасный» способ избежать проблем при обновлении.
Перед обновлением необходимо удалить все сторонние ppa и их пакеты.
Используйте для этого ppa-purge. Когда обновление будет завершено, просто переустановите все, что вам нужно, и можете снова добавить эти ppa.
Что касается python, как только ppa будет удален, переустановите его по умолчанию с помощью: sudo apt-get install --reinstall python3
Это должно исправить ваши проблемы.