Невозможно выполнить небольшое обновление Debian 8.11, чтобы затем выполнить большое обновление

Вы можете вызвать этот файл в bash (или любой другой Bourne-подобной оболочке), чтобы установить их как переменные оболочки:

source /etc/lsb-release
sudo add-apt-repository "deb http://some-repo/ubuntu $DISTRIB_CODENAME main"
0
11.02.2019, 12:29
2 ответа

Что пошло не так

Похоже, что сейчас у вас в основном Debian 8 (jessie), но ваш MySQL/MariaDB и python-httplib2уже обновлены до текущей testing(, т.е. той, что в конечном итоге станет Debian 10,buster).

Когда вы изначально добавили testingк вашему sources.list, это могло быть синонимомstretch(= Debian 9, текущей stableверсии ), но в тот самый день, когда был выпущен Debian 9, testingтакже забежал вперед, чтобы указать на следующую версию, и поэтому ваше «незначительное обновление» (ваше первоначальное sudo apt-get update+ sudo apt-get upgrade), вероятно, обновило по крайней мере некоторые пакеты до уровней версии buster.

В этом заключается опасность использования testingвместо кодовых названий релизов, таких как stretchили buster:: вам нужно будет обновить конфигурацию репозитория точно в день релиза, иначе вы легко получите незапланированное, возможно, частичное обновление, если только ты очень осторожен.

Что делать дальше

Следующая команда может оказаться полезной для определения всех пакетов, которые не находятся на уровне текущей версии stable(, при условии, что она работает в Debian 8; Я не уверен, что он был доступен в нем):

apt list --installed | grep -v /stable

Запустите grep upgrade /var/log/dpkg.log, чтобы просмотреть самые последние обновления пакетов и проверить их версии. Найдите все пакеты, которые были случайно обновлены до buster/testingверсий, и понизьте(не удаляйте )их обратно до правильных версий.

Сообщения журнала будут иметь вид:

<timestamp> upgrade <package name> <old version> <new version>

, чтобы вы могли видеть, какими были предыдущие версии. Если старая версия пакета уже подходила для stretch(, т. е. он был установлен из testing, а Debian 8 был stable), то понизьте версию этого пакета до stretchтекущего уровня :

.
sudo apt-get -t=stretch <package name>

или если нужно указать точный номер версии:

sudo apt-get install <package-name>=<package-version-number>
0
28.01.2020, 03:59

ВНИМАНИЕ!! Не делайте того, что сделал я, не осознав потенциальные риски!Вы были предупреждены ОК, поэтому я просто подумал, что «рискну за печенье» и позволю apt удалить то, что он хотел удалить. К счастью, наступил конец света, и теперь моя система работает хорошо. Чтобы уточнить, что я сделал:

sudo apt remove libmariadb3
sudo dpkg -r --force-depends libssl1.1 <-- this removed the big list of packages in my question
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

Я установлю все необходимые пакеты по ходу дела.

Очень не рекомендую так поступать

1
28.01.2020, 03:59

Теги

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