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

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

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

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

306
задан 13 April 2017 в 15:25

5 ответов

Обычно я обновляю свои машины:

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

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

Чтобы объяснить, почему вы хотите обновить вместо dist-upgrade , если вы системный администратор, вам нужна предсказуемость. Вы можете использовать расширенные функции, такие как apt pinning или извлечение из коллекции PPA (возможно, у вас есть собственный 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.
0
ответ дан 13 April 2017 в 15:25

Я знаю, что на этот вопрос ответили, и ему год, но я чувствую, что это нужно сказать. 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.
0
ответ дан 13 April 2017 в 15:25

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

0
ответ дан 13 April 2017 в 15:25

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

0
ответ дан 13 April 2017 в 15:25

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

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

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

0
ответ дан 13 April 2017 в 15:25

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

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