Результат apt-get upgrade
:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Что это значит? Должен ли я принять меры? Если да, то?
Результат apt-get upgrade
:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Что это значит? Должен ли я принять меры? Если да, то?
Быстрое и простое решение:
У меня была такая же проблема, бесчисленное количество раз. НЕ делайте сначала sudo apt-get dist-upgrade
. Очень важно.
Зачем?
Это может сделать вашу систему очень нестабильной, программы могут зависать, и вы можете потерять много функциональности в вашей ОС.
У меня не было проблем с решением, которое я предоставлю.
Вы должны установить каждый пакет отдельно, однако во время этого процесса другие зависимости также будут установлены автоматически, и ваша проблема будет решена в течение нескольких минут.
Сделай это:
apt list --upgradable
Следующий:
Начните с начала списка с первого пакета и введите:
sudo apt-get install package-name-here
Это будет проходить через процесс установки и вытащить / установить зависимости. Когда это завершится, сделайте это:
apt list --upgradable
Это снова покажет, какие пакеты могут быть обновлены. Ваш список пакетов теперь должен уменьшаться. Просто следуйте списку пакетов и apt list --upgradable
после каждой установки пакета. Это займет всего пару минут.
Если это решение сработало для вас, пожалуйста, не забывайте повышать его, чтобы правильное решение было доступно для других и находилось в верхней части списка ответов.
Благодарю.
Что это значит?
The following packages have been kept back:
Ответ здесь
Это означает, что существуют новые версии этих пакетов, которые по какой-то причине не будут установлены. Возможные причины: сломанные зависимости (пакет, от которого он зависит, не имеет версии, доступной для загрузки) или новые зависимости (пакет стал зависеть от новых пакетов со времени последней версии).
Должен ли я принять меры?
Вам нужно использовать dist-upgrade
, чтобы установить новые зависимости и обновить пакеты:
sudo apt-get dist-upgrade
Эту проблему можно решить, запустив dist-upgrade
если вам не нужно:
Исправить нарушенные зависимости
sudo apt-get -f install
Удалите некоторые пакеты, которые больше не установлены в вашей системе:
sudo apt-get autoclean
Поставьте нужный пакет на удержание:
echo "<package_name> hold" | dpkg --set-selections
Переконфигурируйте именованный пакет:
dpkg-reconfigure <package_name>
Я включил этот ответ в свой блог. Если вы хотите увидеть, что вы можете перейти по этой ссылке.
Вышеупомянутая ошибка очень распространена в терминале Ubuntu при попытке обновления (apt-get upgrade
). Обычно это происходит из-за того, что зависимости одного устанавливаемого вами пакета изменились. Для того, чтобы обновить, вы должны сначала обновить и те. Так что это очень просто решить. Вы сможете увидеть те пакеты, которые хранятся ниже этого сообщения об ошибке. В качестве примера я вижу следующие пакеты в списке:
gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Не просто наберите sudo apt-get dist-upgrade
Это очень опасно, поскольку устанавливает все ожидающие обновления. Это может привести вашу рабочую среду к крайне нестабильному состоянию.
Поэтому мое мнение заключается в использовании известных
sudo apt-get install [package]
Вы можете заменить [package]
на любой пакет, указанный в сообщении об ошибке. Также вы можете поместить их в виде списка (просто скопируйте и вставьте его). В качестве примера в моем случае я могу ввести
sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Если вы хотите сделать
sudo apt-get dist-upgrade
по какой-то причине просто проверьте список пакетов, используя опцию имитации -s
(sudo apt-get -s dist-upgrade
), или без опции -s
вы можете прервать выполнение перед принятием. (вы всегда можете выбрать вариант нет)
Во-первых, как уже упоминалось выше, пожалуйста, НЕ модернизируйте производственную систему! Хотя dist-upgrade будет "решать" сохраненные пакеты, это определенно не является решением этой проблемы и, скорее всего, принесет вам больше горя, чем пользы, если вы запустите его, не зная последствий для вашей системы.
Если для обновления пакета требуется установка дополнительных пакетов, он будет "отложен" при запуске sudo apt-get upgrade
.
Как упомянуто выше, вы можете установить эти "скрытые" пакеты вручную, явно запустив sudo apt-get install [paste kept back packages here]
но это пометит эти пакеты как "установленные вручную", что часто не то, что нам нужно.
Чтобы автоматически установить любые дополнительные пакеты, необходимые для обновления пакетов "сохраненных", при этом не помечая пакеты "сохраненных" как установленные вручную, просто запустите sudo apt-get --with-new-pkgs upgrade
.