Вы можете вызвать этот файл в bash
(или любой другой Bourne-подобной оболочке), чтобы установить их как переменные оболочки:
source /etc/lsb-release
sudo add-apt-repository "deb http://some-repo/ubuntu $DISTRIB_CODENAME main"
Похоже, что сейчас у вас в основном 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>
ВНИМАНИЕ!! Не делайте того, что сделал я, не осознав потенциальные риски!Вы были предупреждены ОК, поэтому я просто подумал, что «рискну за печенье» и позволю 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
Я установлю все необходимые пакеты по ходу дела.
Очень не рекомендую так поступать