Я обычно использую apt-get update && apt-get upgrade
для запуска своих обновлений и обновлений вместо графического интерфейса, потому что кажется, что он работает быстрее.
Однако в последнее время я заметил, что часто получаю сообщение о том, что одно из моих обновлений было отложено. Затем я обычно запускаю dist-upgrade
, чтобы запустить его, и он работает нормально. Насколько я могу сказать после прочтения этого вопроса и его ответов, dist-upgrade
делает все то же самое, а затем и некоторые.
Итак, мой вопрос: зачем вообще использовать apt-get upgrade
? Почему бы не использовать apt-get dist-upgrade
все время? Почему apt-get upgrade
вообще существует?
Обычно я обновляю свои машины:
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.
Я знаю, что на этот вопрос ответили, и ему год, но я чувствую, что это нужно сказать. 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
. Не должно быть проблемой для пользователей Win-Home всегда «dist-upgrade», но если вы работаете со сложными системами, вам лучше «никогда (действительно) не менять работающую систему» ... Даже если там «следует» не будет проблем, там могут быть "пробники" - что вас отрежет! ВЫ должны быть тем, кто имеет право 2 решать; -)
Пользователи, возможно, стали полагаться на пакеты, которые были установлены неявным образом из-за зависимости других (явно установленных) пакетов от них. Таким образом, система упаковки не может знать о желании пользователя / администратора сохранить определенные функции, которые в противном случае могли бы быть удалены с помощью dist-upgrade.
Опция upgrade
устанавливает только новые версии пакетов, которые уже установлены в системе (и да, обновления ядра принадлежат им).
Однако иногда обновления меняют зависимости: например, новая версия пакета больше не будет зависеть от установленной вами библиотеки или потребует установки дополнительных библиотек. Опция upgrade
никогда не удалит установленные пакеты, которые вам больше не нужны.
Однако опция dist-upgrade
может «интеллектуально» обрабатывать изменения в системе зависимостей. Это включает в себя удаление пакетов, которые больше не нужны, или разрешение конфликтов между пакетами, которые возникли из-за изменений в зависимостях.