Я обычно использую 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 чтобы убедиться, что зависимости разрешены.
Чтобы подробнее рассказать о том, почему вы хотели бы обновлять вместо удаление-обновление, если вы системный администратор, вам нужна предсказуемость. Возможно, вы используете такие расширенные функции, как удачное закрепление или извлекать из коллекции 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.
Я знаю, что на этот вопрос был дан ответ, и ему уже год, но я чувствую, что это нужно сказать. 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.
То upgrade опция устанавливает только новые версии пакетов, которые уже установлены в системе (и да, обновления ядра относятся к ним).
Однако иногда обновления изменяют зависимости: например, новая версия пакета больше не будет зависеть от установленной вами библиотеки или потребует установки дополнительных библиотек. То upgrade опция никогда не удалит установленные пакеты, которые вам больше не нужны.
Однако, в dist-upgrade опция может "разумно" обрабатывать изменения в системе зависимостей. Это включает удаление пакетов, которые больше не нужны, или разрешение конфликтов между пакетами, возникших из-за изменений в зависимостях.
Пользователи, возможно, привыкли полагаться на пакеты, которые были установлены неявно из-за зависимости от них других (явно установленных) пакетов. Таким образом, упаковочная система не может знать о желании пользователя / администратора сохранить определенную функциональность, которая в противном случае могла бы быть удалена с помощью dist-upgrade.