Дополнительно
Что такое "dist-upgrade" и почему он обновляет больше, чем "upgrade"?
Мне стало интересно, почему 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
?
397
5
Из руководства
apt-get
:И с более новым инструментом
apt
, доступным начиная с версии 14.04:В вашем конкретном случае я вижу, например, что
linux-headers
- это виртуальный пакет, который предоставляется какlinux-headers-3.0.0-12
, так иlinux-headers-3.0.0-13
, и это похоже на установку и удаление пакетов, которые обрабатываютсяdist-upgrade
, но неupgrade
.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
.Обратите внимание, что при
apt-get upgrade
будет сказано, что пакеты ядра былизадержаны
. Это сигнал для использованияapt-get dist-upgrade
.В принципе, обновление будет только обновлять существующие пакеты с одной версии до другой. Он не будет устанавливать или удалять пакеты, даже если это необходимо для обновления других. В случае обновления ядра, обновление пакета linux-generic требует установки нового пакета linux-3.0.0-13-generic, а поскольку upgrade отказывается устанавливать или удалять пакеты, он отказывается обновлять linux-generic.
Иногда различные несовместимости между пакетами требуют удаления одних пакетов для обновления других, и это также потребует dist-upgrade. Обновления ядра всегда требуют dist-upgrade из-за того, как они обрабатываются. Вместо того, чтобы обновлять пакет ядра, каждый раз создается совершенно новый пакет ядра, а метапакет ядра обновляется, чтобы зависеть от нового пакета ядра вместо старого. Это было сделано для того, чтобы сохранить старые версии ядра, чтобы в случае проблем с загрузкой нового ядра можно было выбрать старое в меню загрузки и восстановиться.
В
apt-получить обновление
команда обычно только установить обновления (или исправления) в установленных пакетов. Как правило, новый релиз браузер Mozilla Firefox с, например, могут быть установлены с этой командой.Однако `apt-получить обновление будет не как правило, установка новых релизов, где серьезных изменений (включая удаление или обновление пакетов жратвы требуется). Например, когда новое ядро Linux (Linux-образ-3.х.ХХХ-универсальный и т. д.) доступен, пакет не будет установлен.
Для того, чтобы установить новое ядро, вам нужно будет запустить
apt-получить расстояние-обновления
. Вы будете уведомлены, когда вы запускаетеapt-получить обновление
, как она скажет, что некоторые пакеты были проведены обратно. Что's ваша реплика, чтобы использовать: `apt-получить расстояние-обновления.Лучшим вариантом является:
АПТ полного обновления
-автоматически обрабатывает зависимости при обновлении пакетов; тогда как:
-не авто-ручки зависимостей при обновлении пакетов.
-duBtrotterS