Что такое “ dist-upgrade ” и почему он обновляется больше, чем & ndash; upgrade & rdquo ;?

Мне было интересно, почему 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?

1
задан 24 January 2017 в 18:05

3 ответа

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 скажет, что пакеты ядра были held back. Это подсказка для использования apt-get dist-upgrade.

115
ответ дан 25 May 2018 в 16:37
  • 1
    Отлично! : D Еще два вопроса ... что используется графическим менеджером обновлений в Ubuntu? Что является рекомендуемым? – THpubs 29 January 2012 в 07:46
  • 2
    Графическая утилита update-manager не использует apt-get напрямую; вместо этого он работает с бэкендом под названием aptdaemon. Стандартные возможности update-manager - это сочетание режимов upgrade и dist-upgrade в apt-get: он может добавлять, но не удалять пакеты - он вызывает «частичное обновление», когда требуется удаление. При использовании командной строки используйте apt-get upgrade. Если вы увидите, что пакеты были «сдерживаны», запустите apt-get dist-upgrade, чтобы получить оставшиеся обновления. – pablomme 29 January 2012 в 08:10

В основном обновление будет только обновлять существующие пакеты из одной версии в другую. Он не будет устанавливать или удалять пакеты, даже если это необходимо для обновления других. В случае обновлений ядра для обновления пакета linux-generic требуется установить новый пакет linux-3.0.0-13-generic, а так как обновление отказывается устанавливать или удалять пакеты, оно отказывается обновлять linux-generic.

Иногда различные несовместимости между пакетами требуют, чтобы некоторые пакеты были удалены, чтобы обновить другие, и для этого также потребуется dist-upgrade. Обновления ядра всегда требуют dist-upgrade из-за того, как они обрабатываются. Вместо того, чтобы обновлять пакет ядра, каждый раз создается полностью новый пакет ядра, а метапакет ядра обновляется, чтобы зависеть от нового пакета ядра вместо старого. Это было сделано для сохранения старых версий ядра, чтобы в случае возникновения проблемы с загрузкой нового ядра вы можете выбрать старый из меню загрузки и восстановить.

32
ответ дан 25 May 2018 в 16:37
  • 1
    Лучший смысл. Тем не менее, как сохранить определенный пакет? – 0xC0000022L 15 November 2013 в 23:06

Команда apt-get upgrade обычно устанавливает обновления (или исправления) только установленных пакетов. Как правило, с этой командой будет установлена ​​новая версия Mozilla Firefox.

Однако apt-get upgrade будет apt-get upgrade , как правило, устанавливать новые версии, где основные изменения (в том числе требуется удаление пакетов или обновление GRUB). Например, когда доступно новое ядро ​​Linux (linux-image-3.xx-xx-generic и т. Д.), Пакет не будет установлен.

Чтобы установить новое ядро, вы необходимо запустить apt-get dist-upgrade. Вы будете уведомлены, когда вы запустите Mozilla Firefox , поскольку он скажет, что некоторые пакеты были сдержаны. Это ваша подсказка: apt-get dist-upgrade.

11
ответ дан 25 May 2018 в 16:37
  • 1
    Это вводит в заблуждение. dist-upgrade не будет обновляться до новой версии, если sources.list не был изменен соответствующим образом (и даже тогда это не поддерживается для обновления в Ubuntu). Когда новое ядро ​​установлено с dist-upgrade, это не новая версия Ubuntu . Это только новый пакет . Кроме того, требуется требование "или GRUB update" false. sudo apt-get upgrade идеально подходит для обновления пакетов в ситуации, когда GRUB должен быть обновлен, если пакеты не удалены и не установлены новые пакеты. update-grub запускается автоматически, как всегда. – Eliah Kagan 13 April 2013 в 07:11
  • 2
    Вы должны написать свой собственный ответ, так как это не добавляет мне ясности. – david6 13 April 2013 в 11:13
  • 3
    Кроме того, о чем упомянул Элайя, существенным моментом является то, что apt-get upgrade не будет удалять или добавлять пакеты. Если для исправления пакета требуется новый пакет, обновление будет сдерживаться. Ответ pablomme , который вы пересмотрели, чтобы быть менее точным, лучше, и я бы посоветовал читателям перейти к этому. – Chan-Ho Suh 24 May 2013 в 08:19
  • 4
    Коррекция: apt-get upgrade никогда не будет установить или удалить любые пакеты. Обновления ядра упаковываются в новые пакеты, и в результате apt-get upgrade никогда не будут обновлять ядро. Тот факт, что обновление ядра имеет «основной», такие изменения, как конфигурация GRUB, не являются причиной разницы между upgrade и dist-upgrade. – Mikko Rantalainen 19 September 2016 в 09:07

Другие вопросы по тегам:

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