Вопрос Зачем использовать 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 даже существуют?


271
2017-09-30 03:21


происхождения


В новых версиях Ubuntu, sudo apt full-upgrade делает подобные вещи. - Aaron Franke


ответы:


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

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

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

Чтобы расширить, почему вы хотите Обновить вместо Dist-Upgrade, если вы системный администратор, вам нужна предсказуемость. Возможно, вы используете дополнительные функции, такие как аппетитный пиннинг или вытягивание из коллекции ППД (возможно, у вас есть собственный 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.

365
2017-12-06 17:02



Благодарим вас за то, что вы не только суммируете различия между ними, но и объясняете ситуации, когда лучше быть лучше других. Это именно то, что я искал. - jimchristie
dist-upgrade скорее всего, сломает материал плохо, чем upgrade, upgrade гарантирует, что ваша система останется полной. - Braiam
dist-upgrade с большей вероятностью исправит проблемы с конфликтующими версиями пакетов, если вам удобно использовать подход с дорожным катком (т. е. у вас нет критически важного программного обеспечения для производства, работающего на коробке) - Henno
Небольшой вопрос об «apt-get upgrade», ссылаясь на то, что «ни один из установленных пакетов не был удален или новый добавлен»: соответственно обновляют существующие пакеты. Например, oldA зависит от oldB. Будет ли обновлен oldA и oldB? Как насчет того, что newA зависит от oldB, а не от newB, что происходит с этими двумя во время обновления? оба не обновлены или оба обновлены, что может привести к тому, что newA не будет функционировать, потому что oldB будет потерян? - Kenny
В чем причина использования time Вот? - ItalyPaleAle


Я знаю, что на этот вопрос был дан ответ, и мне уже год, но я чувствую, что это нужно сказать. 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,

111
2017-07-22 05:22



@muru Спасибо за редактирование и заметку о полном обновлении. В основном я использую Debian 7 (который является pre-APT 1.0), и я играл только с Debian Jessie и Ubuntu 14.04. - Stephen Angelico
пожалуйста. Как кто-то, кто использовал jessie и 14.04 регулярно, я впервые узнал об этой новой утилите из вашего ответа! - muru
У вас есть источник для описания apt upgrade? Все, что я могу предложить, предполагает, что apt upgrade такой же как apt-get upgrade, Например, apt help upgrade на мои системные выходы: "apt upgrade" is equivalent to "sudo apt-get upgrade" - Jon Bentley
Соответствующие справки для apt а также apt-get укажите, что я изначально сказал. - Stephen Angelico
apt safe-upgrade не работает в моей системе. Если ты имеешь ввиду aptitude safe-upgrade, не совсем. apt-get upgrade никогда не будет устанавливать пакеты, тогда как apt upgrade а также aptitude safe-upgrade будет устанавливать новые пакеты по мере необходимости. Так aptitude safe-upgrade эквивалентно apt upgrade, а не apt-get upgrade, - Stephen Angelico


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

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

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


6
2017-09-30 06:17



Хотя это точно, я не думаю, что он отвечает на вопрос. Если у нас есть «интеллектуальный» вариант, который может обрабатывать изменения зависимостей и удалять беспорядок, почему бы не всегда использовать его? - ændrük
upgrade также никогда не будет Добавить новые пакеты, которые стали необходимых в качестве зависимостей. Из man apt-get: «ни при каких обстоятельствах в настоящее время не установлены удаленные пакеты или пакеты, которые еще не установлены и не установлены» @ ændrük Просто потому, что что-то «интеллектуальное» не означает, что он всегда будет делать то, что хочет пользователь (или даже что-то разумное). В любое время обновление системы удаляет пакет, хорошо посмотреть, что он делает, прежде чем нажимать Y. - Eliah Kagan


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


2
2018-02-04 13:42





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


-4
2017-08-12 12:17



Should not be a problem for Win-Home Users to always "dist-upgrade" ..почему это ? - heemayl
Ну, допустим, вы создали ubuntu-сервер, рабочую станцию ​​для продуктивной среды: когда вы всегда и автоматически выполняете dist-upgrade, вы, вероятно, не сможете контролировать, когда возникают проблемы, даже если у вас нет времени на то, чтобы решить в этот момент выполняется автоматическое обновление. Некоторым конфигурациям может потребоваться «человеческое» прикосновение к порту. Это то, что я испытал несколько раз. Когда вы просто работаете на платформах «Home», таких как Win-Home, по умолчанию пользователь не может контролировать обновления. Таким образом, вы можете не беспокоить вас. - Thorben Kaufmann