Зачем использовать apt-get update вместо apt-get dist-upgrade?

243

Обычно я использую apt-get update && apt-get upgrade для запуска обновлений и обновлений вместо графического интерфейса, потому что он работает быстрее.

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

Итак, мой вопрос: зачем вообще использовать apt-get upgrade ? Почему бы не использовать apt-get dist-upgrade все время? Почему apt-get upgrade даже существует?

    
задан jimirings 30.09.2012 в 05:21
источник

5 ответов

328

Обычно я обновляю свои машины с помощью

sudo apt-get update && time sudo apt-get dist-upgrade

Ниже выдержки из man apt-get . Использование обновления сохраняется в правиле: ни при каких обстоятельствах в настоящее время не установлены удаленные пакеты или пакеты, которые еще не были установлены, извлечены и установлены. Если это важно для вас, используйте apt-get upgrade . Если вы хотите, чтобы вещи «просто работали», вы, вероятно, захотите apt-get dist-upgrade , чтобы гарантировать, что зависимости разрешены.

Чтобы узнать, почему вы хотите upgrade вместо dist-upgrade , если вы системный администратор, вам нужна предсказуемость. Возможно, вы используете дополнительные функции, такие как apt pinning или вытаскивание из коллекции PPAs (возможно, у вас есть собственный PPA), с различными автоматическими системами для проверки вашей системы и доступных обновлений, а не всегда с готовностью обновляя все доступные пакеты. Вы бы очень расстроились, когда apt выполняет неписанное поведение, особенно если это приводит к простою производственной службы.

upgrade
    upgrade is used to install the newest versions of all packages
    currently installed on the system from the sources enumerated in
    /etc/apt/sources.list. Packages currently installed with new
    versions available are retrieved and upgraded; under no
    circumstances are currently installed packages removed, or packages
    not already installed retrieved and installed. New versions of
    currently installed packages that cannot be upgraded without
    changing the install status of another package will be left at
    their current version. An update must be performed first so that
    apt-get knows that new versions of packages are available.

dist-upgrade
    dist-upgrade in addition to performing the function of upgrade,
    also intelligently handles changing dependencies with new versions
    of packages; apt-get has a "smart" conflict resolution system, and
    it will attempt to upgrade the most important packages at the
    expense of less important ones if necessary. So, dist-upgrade
    command may remove some packages. The /etc/apt/sources.list file
    contains a list of locations from which to retrieve desired package
    files. See also apt_preferences(5) for a mechanism for overriding
    the general settings for individual packages.
    
ответ дан rduplain 06.12.2012 в 18:02
источник
95

Я знаю, что на этот вопрос был дан ответ, и мне год, но я чувствую, что это нужно сказать. Ubuntu 14.04 и более поздние версии (и Debian Jessie, а затем, для тех, кто находит это у Google) использует APT 1.0, что позволяет использовать для некоторых операций команду apt вместо apt-get и apt-cache .

  • apt-get upgrade не изменит установленные (только версии),
  • apt-get dist-upgrade будет устанавливать или удалять пакеты по мере необходимости для завершения обновления,
  • apt upgrade будет автоматически устанавливать, но не удалять пакеты.
  • apt full-upgrade выполняет ту же функцию, что и apt-get dist-upgrade .
ответ дан Stephen Angelico 22.07.2014 в 07:22
6

Опция upgrade устанавливает только новую версию пакетов, которые уже установлены в системе (и да, к ним относятся ядра).

Однако иногда изменения изменяют зависимости: например, новая версия пакета больше не будет зависеть от установленной вами библиотеки или потребует установки дополнительных библиотек. Опция upgrade никогда не удалит установленные пакеты, которые вам больше не нужны.

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

    
ответ дан January 30.09.2012 в 08:17
2

Пользователи, возможно, полагались на пакеты, которые были установлены неявно из-за зависимости других (явно установленных) пакетов от них. Таким образом, система упаковки не может знать о желании пользователя / администратора сохранить определенные функции, которые в противном случае могли бы быть удалены с помощью dist-upgrade.

    
ответ дан user244474 04.02.2014 в 14:42
-3

Не должно быть проблем для Windows-Home Users всегда «dist-upgrade», но если вы работаете с сложными системами, вам лучше «никогда (действительно) не менять запущенную систему» ​​... Даже если там «должно быть», быть не проблема, там «могут» быть проблемы - что вас вырезает! ВЫ должен быть тот, кто имеет право 2 решить; -)

    
ответ дан Thorben Kaufmann 12.08.2015 в 14:17