Мне было интересно, почему upgrade
иногда не хочется обновлять определенные части системы, а dist-upgrade
делает. Вот пример после запуска apt-get upgrade
:
apt-get upgrade
:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
по сравнению с apt-get dist-upgrade
:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-headers-3.0.0-13 linux-headers-3.0.0-13-generic
linux-image-3.0.0-13-generic
The following packages will be upgraded:
linux-generic linux-headers-generic linux-image-generic
3 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.5 MB of archives.
After this operation, 215 MB of additional disk space will be used.
Do you want to continue [Y/n]?
Другими словами, почему это не может быть выполнено upgrade
?
full-upgrade
в качестве опции доapt-get
14.04.1.apt
ни того, ни другого, но, похоже, это совершенно другая команда, согласно странице руководства, которую он связалapt
а не изapt-get
... :-) Попробуйтеman apt
.apt-get upgrade
ограничивается случаем, когда пакеты должны быть заменены более новыми версиями, но нет необходимости добавлять или удалять пакеты. Например, новую версию Firefox можно установить с помощьюapt-get upgrade
.Однако
apt-get upgrade
будет отказываться работать, когда есть обновления или удаления, необходимые для обновленных версий. Например, когда у васlinux-image-3.2.0-10-generic
установлено иlinux-image-3.2.0-11-generic
отображается ядро ,linux-image-generic
пакет обновляется в зависимости от более новой версии. Для того, чтобы установить новое ядро, вам нужно запуститьapt-get dist-upgrade
.Обратите внимание, как an
apt-get upgrade
скажет, что пакеты ядра былиheld back
. Это сигнал для использованияapt-get dist-upgrade
.источник
update-manager
не используетapt-get
напрямую; вместо этого он работает с бэкэндомaptdaemon
. Стандартные возможностиupdate-manager
представляют собой сочетание режимовupgrade
и : он может добавлять, но не удалять пакеты - он вызывает инструмент «Частичное обновление», когда требуется удаление. При использовании командной строки используйте . Если вы видите, что он сообщает, что пакеты были «задержаны», запустите, чтобы забрать оставшиеся обновления.dist-upgrade
apt-get
apt-get upgrade
apt-get dist-upgrade
В основном, обновление будет обновлять только существующие пакеты с одной версии на другую. Он не будет устанавливать или удалять пакеты, даже если это необходимо для обновления других. В случае обновлений ядра обновление пакета linux-generic требует установки нового пакета linux-3.0.0-13-generic, а поскольку обновление отказывается устанавливать или удалять пакеты, оно отказывается обновлять linux-generic.
Иногда различные несовместимости между пакетами требуют удаления некоторых пакетов для обновления других, что также требует dist-upgrade. Обновления ядра всегда требуют dist-upgrade из-за того, как они обрабатываются. Вместо того, чтобы обновлять пакет ядра, каждый раз создается совершенно новый пакет ядра, и метапакет ядра обновляется в зависимости от нового пакета ядра, а не от старого. Это было сделано для того, чтобы вы сохранили старые версии ядра, чтобы в случае проблем с загрузкой нового ядра, вы могли выбрать старое из меню загрузки и выполнить восстановление.
источник
Команда
apt-get upgrade
обычно устанавливает обновления (или исправления) только для установленных на данный момент пакетов. Как правило, с помощью этой команды устанавливается новая версия Mozilla Firefox .Однако
apt-get upgrade
будет НЕ вообще устанавливать новые версии, где (требуется , включая удаление пакетов или обновление GRUB) значительные изменения. Например, если доступно новое ядро Linux (linux-image-3.xx-xx-generic и т. Д.), Пакет не будет установлен.Чтобы установить новое ядро, вам нужно будет запустить
apt-get dist-upgrade
. При запуске вы получите уведомлениеapt-get upgrade
о том, что некоторые пакеты были задержаны. Это ваша реплика для использованияapt-get dist-upgrade
.источник
dist-upgrade
не будет обновляться до нового выпуска, если только онsources.list
не был изменен соответствующим образом (и даже тогда это не поддерживается в Ubuntu). Когда новое ядро установлено сdist-upgrade
, это не новая версия Ubuntu . Это просто новый пакет. Кроме того, утверждение «Требуется обновление GRUB» является ложным.sudo apt-get upgrade
вполне способен обновлять пакеты в ситуации, когда GRUB должен быть обновлен, при условии, что пакеты не удалены, а новые пакеты установлены.update-grub
запускается автоматически, как всегда.apt-get upgrade
вы не будете удалять или добавлять пакеты. Если для исправления пакета требуется новый пакет, обновление будет отложено. Ответ Пабломме , который вы пересмотрели, чтобы он был менее точным, лучше, и я бы посоветовал читателям перейти к нему.apt-get upgrade
никогда не будет устанавливать или удалять какие-либо пакеты. Обновления ядра упаковываются как новые пакеты и, как следствие,apt-get upgrade
никогда не обновят ядро. Тот факт, что обновление ядра вносит «серьезные» изменения, такие как конфигурация GRUB, не является причиной разницы междуupgrade
иdist-upgrade
.Ваш лучший вариант:
apt full-upgrade
- которая автоматически обрабатывает зависимости при обновлении пакетов; в то время как:
- НЕ обрабатывает зависимости автоматически при обновлении пакетов.
- duBtrotterS
источник