Software Updater vs apt-get update

11

Я всегда предполагал, что запуск, apt-get updateза которым следует, apt-get upgrade- это всего лишь версия командной строки для запуска средства обновления программного обеспечения; однако запуск средства обновления программного обеспечения приводит к необходимости обновления следующих пакетов:

Complete Generic Linux kernel  
Header files relates to Linux kernel version 3.2.0  
Linux kernel headers for version 3.2.0 on 64 bit x86 SMP  
Generic Linux kernel headers  
Linux kernel image for version 3.2.0 on 64 bit x86 SMP  
General Linux kernel image  
Linux Kernel Headers for development

ISC DHCP client  
common file used by all the isc-dhcp* packages  
LightDM GObject client library  
graphical boot animation and logger-shared libraries  
DisplayManager  
graphical  boot animation and logger-main package  
graphical boot animation and logger-label control  
graphical boot animation and logger-ubuntu-logo theme (-logo)  
graphical boot animation and logger-ubuntu-logo theme (-text)  
Jabber/XMPP connection manager

(53.9 MB)

тогда как работает apt-get updateи 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  
The following packages will be upgraded:  
  isc-dhcp-client isc-dhcp-common liblightdm-gobject-1-0 libplymouth2 lightdm  
  linux-libc-dev plymouth plymouth-label plymouth-theme-ubuntu-logo  
  plymouth-theme-ubuntu-text telepathy-gabble  
11 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.  
Need to get 2,594 kB of archives.  
After this operation, 2,048 B of additional disk space will be used.  

Кто-нибудь может объяснить, что происходит?

ChrisW
источник
В какой-то момент они изменили поведение upgrade, теперь вы ищете dist-upgrade, хотите ли вы обновить ядро.
Бобби

Ответы:

9

Кажется, здесь есть некоторая путаница.

  • apt-get update : Это просто обновляет список доступных пакетов.

  • apt-get upgrade: Это обновит все установленные пакеты до последней версии.

  • apt-get dist-upgrade То же, что и обновление, но использует «умную» систему разрешения конфликтов, она попытается обновить самые важные пакеты за счет менее важных, если это необходимо.

Итак, если вы хотите убедиться, что ваши установленные в данный момент пакеты являются самой последней доступной версией, вы запускаете

apt-get update && apt-get upgrade

Если это приводит к проблемам, то вы можете попробовать:

apt-get update && apt-get dist-upgrade

Теперь сообщения, которые вы разместили, не имеют ничего общего с dist-upgradeпростыми обновлениями. Кроме того, между ними нет абсолютно никакой разницы, просто программа обновления программного обеспечения предоставляет вам описания пакетов, в то время apt-getкак перечисляет имена пакетов. Например

Complete Generic Linux kernel  == linux-generic
ISC DHCP client                == isc-dhcp-client
Jabber/XMPP connection manager == telepathy-gabble  

Если вы внимательно прочитаете эти два списка, вы увидите, что это абсолютно одинаковые пакеты.

Тем не менее, сообщения, которые вы разместили, говорят точно то же самое.

terdon
источник
1
Я думал, что они будут одинаковыми, но размер загрузок сильно отличается, если эти цифры не сопоставимы ?!
ChrisW
1

афаик, ты пропустил третий кусок:

apt-get dist-upgrade

Фактически, обновление apt-get не будет обновлять пакеты в некоторых случаях, например, когда они меняют зависимости или требуют удаления других пакетов. Bu apt-get dist-upgrade будет. Итак, чтобы получить поведение, похожее на то, которое требуется программному обновлению, вам нужно:

apt-get update && apt-get dist-upgrade

Или, если вы хотите играть немного более безопасно:

apt-get update && apt-get upgrade && apt-get dist-upgrade

Смотрите: http://www.ghacks.net/2010/03/11/what-is-it-with-the-dist-upgrade-option-of-apt-get/
А также: /ubuntu/ / д / 194651/125726

Gerlos
источник
2
"apt-get update && apt-get upgrade && apt-get dist-upgrade" За исключением того, что dist-upgradeвыполняет все операции, которые также выполнялись бы upgrade.
Бобби
Правильно. Смысл в том, чтобы делать «более безопасные» обновления до, а после того, как они прошли нормально, делать dist-upgradeобновления.
Герлос
Я не вижу, что вы получаете от этого ... за исключением меньшего номера пакета во втором запуске.
Бобби
Некоторое время назад у меня были некоторые проблемы с пакетами от стороннего ppa, чьи зависимости были нарушены. Используя «нормальное» обновление, я мог обновить все, кроме этих неработающих пакетов, и, поскольку они были «изолированы» от других, я мог изолировать их от других и решить свои проблемы. Не то, что случается часто, а хороший подход, чтобы определить проблемы до того, как они вас ударили, imho
Герлос
Я имел в виду, что не понимаю, какая разница, если ты бежишь upgradeили dist-upgradeсталкиваешься с неприятностями. Основное отличие состоит в том, что последний также попытается обновить ядро, но не затрагивать существующие, поэтому, насколько я вижу, система никогда не подвергается опасности.
Бобби