Рейтинг:0

Сломанный python3.9 после обновления с 20.04 до 21.04

флаг tk

Кажется, что почти все работает нормально, кроме приложения настроек gnome. Выбор, например, «настроек дисплея» в правом верхнем меню на рабочем столе не открывает окно настроек, как раньше. Я быстро понял, что гном-центр управления не установлен, и я запускаю sudo apt установить gnome-control-center установить его. я получил

Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Не удалось установить некоторые пакеты. Это может означать, что у вас есть
запрошена невозможная ситуация или если вы используете нестабильную
дистрибутив, что некоторые необходимые пакеты еще не созданы
или был перемещен из входящих.
Следующая информация может помочь разрешить ситуацию:

Следующие пакеты имеют неудовлетворенные зависимости:
 libpython3.9 : зависит: libpython3.9-stdlib (= 3.9.5-3~21.04), но необходимо установить 3.9.7-1+focal1
E: Невозможно исправить проблемы, у вас есть сломанные пакеты.

Короче говоря, у меня есть 4 пакета python3.9 от фокуса:

$ подходящий список --installed | grep python |grep -v "волосатый"
    
libpython3.9-minimal/now 3.9.7-1+focal1 amd64 [установлен,локальный]
libpython3.9-stdlib/now 3.9.7-1+focal1 amd64 [установлено, локально]
python3.9-минимальный/сейчас 3.9.7-1+focal1 amd64 [установлен,локальный]
python3.9/теперь 3.9.7-1+focal1 amd64 [установлен,локально]

Излишне говорить, что остальные есть, и они волосатые.

Должен ли я загрузить грубую версию этих пакетов и установить с помощью dpkg -i --force-all или есть другой, возможно, более простой способ?

user535733 avatar
флаг cn
Остановитесь и внимательно прочитайте свой вывод: Ошибка возникает из-за того, что система хочет установить *более старый* пакет, чем вы установили. Эти пакеты «+focal1» не из репозиториев Ubuntu. Какой бы источник PPA или не-Ubuntu вы ранее использовали для установки Py3.9 20.04 *все еще там*. Удалите этот источник, отличный от Ubuntu, и удалите из него все оставшиеся пакеты, которые вы установили.
N0rbert avatar
флаг zw
Отвечает ли это на ваш вопрос? [Как восстановить репозитории по умолчанию?](https://askubuntu.com/questions/124017/how-do-i-restore-the-default-repositories)
karel avatar
флаг sa
Отвечает ли это на ваш вопрос? [Невозможно исправить проблемы, у вас есть сломанные пакеты](https://askubuntu.com/questions/223237/unable-to-correct-problems-you-have-held-broken-packages)
флаг tk
Спасибо @ user535733, но я это уже проверил. Ничего, кроме волосатого репо в источниках: `# egrep -v "^#" /etc/apt/sources.list deb http://mirror.hostnet.nl/ubuntu/archive/ hirsute основной ограниченный доступ deb http://mirror.hostnet.nl/ubuntu/archive/ hirsute-updates основной ограниченный deb http://mirror.hostnet.nl/ubuntu/archive/ волосатая вселенная deb http://mirror.hostnet.nl/ubuntu/archive/вселенная hirsute-updates deb http://mirror.hostnet.nl/ubuntu/archive/ волосатый мультивселенная deb http://mirror.hostnet.nl/ubuntu/archive/ hirsute-updates multiverse`
флаг tk
Я страдаю от того, что установил python3.9, когда был 20.04, и не очистил его перед обновлением. Хотя, оглядываясь назад, кто бы мог подумать, что установщик с этим не справится. Ведь установщик отключил все остальные репозитории, обновил нужные пакеты и удалил ненужные.
user535733 avatar
флаг cn
Полностью согласен с вашим диагнозом. Ретроспектива может быть забавной: здесь **КАЖДЫЙ** знает, как изменить свой Python. Каждый день мы призываем людей не менять свой Python по умолчанию именно по той причине, с которой вы столкнулись. Этот сайт по колено в слезах людей, которые разрушили свои системы, изменив свой Python. Есть безопасные способы сделать это, но небезопасные способы намного проще и публикуются повсюду в Интернете.
флаг tk
Верно... Хотя по умолчанию 3.7 на 20.04. Я установил 3.9 некоторое время назад в качестве альтернативы (я оставил 3.7) и забыл об этом. И мне не приходило в голову, что 3.9 может быть по умолчанию 21.04, а также возможность того, что процесс обновления не справится с ситуацией. Так или иначе, `wget` и `dpkg` пришли на помощь. Опубликовано решение.
Рейтинг:0
флаг tk

Мне удалось решить проблему, загрузив правильные пакеты и установив их с помощью дпкг:

wget http://security.ubuntu.com/ubuntu/pool/main/p/python3.9/libpython3.9-stdlib_3.9.5-3~21.04_amd64.deb
wget http://nl.archive.ubuntu.com/ubuntu/pool/main/m/mpdecimal/libmpdec3_2.5.1-2_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/p/python3.9/python3.9-minimal_3.9.5-3~21.04_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/p/python3.9/python3.9_3.9.5-3~21.04_amd64.deb


dpkg -i libmpdec3_2.5.1-2_amd64.deb 
dpkg -i libpython3.9-stdlib_3.9.5-3~21.04_amd64.deb 
dpkg -i python3.9-minimal_3.9.5-3~21.04_amd64.deb
dpkg -i python3.9_3.9.5-3~21.04_amd64.deb

libmpdec3 была показана как отсутствующая зависимость, когда я пытался установить libpython3.9-stdlib так что я установил это, а также. Чем больше, тем веселее :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.