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

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

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

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

267 голосов | спросил jimchristie 30 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 30 Sep 2012 07:21:12 +0400 2012, 07:21:12

5 ответов


360

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

  sudo apt-get update & amp; & amp; & amp; & amp; & amp; время sudo apt-get dist-upgrade
 

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

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

  Обновление
    обновление используется для установки новейших версий всех пакетов
    в настоящее время установленный в системе из источников, перечисленных в
    /etc/apt/sources.list. Пакеты, установленные в настоящее время с новыми
    доступные версии доступны и обновляются; под
    обстоятельства в настоящее время установлены удаленные пакеты или пакеты
    еще не установлен и не установлен. Новые версии
    установленных в настоящее время пакетов, которые невозможно обновить без
    изменение статуса установки другого пакета будет оставлено на
    их текущей версии. Сначала необходимо выполнить обновление, чтобы
    apt-get знает, что доступны новые версии пакетов.

Dist-Upgrade
    dist-upgrade в дополнение к выполнению функции обновления,
    также разумно обрабатывает изменения зависимостей с новыми версиями
    пакетов; apt-get имеет «умную» систему разрешения конфликтов и
    он попытается обновить наиболее важные пакеты на
    расход менее важных, если это необходимо. Итак, dist-upgrade
    команда может удалить некоторые пакеты. Файл /etc/apt/sources.list
    содержит список местоположений, из которых можно получить желаемый пакет
    файлы. См. Также apt_preferences (5) для механизма переопределения
    общие настройки для отдельных пакетов.
 
ответил rduplain 6 ThuEurope/Moscow2012-12-06T21:02:15+04:00Europe/Moscow12bEurope/MoscowThu, 06 Dec 2012 21:02:15 +0400 2012, 21:02:15
111

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

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

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

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

ответил January 30 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 30 Sep 2012 10:17:04 +0400 2012, 10:17:04
2

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

ответил user244474 4 FebruaryEurope/MoscowbTue, 04 Feb 2014 17:42:33 +0400000000pmTue, 04 Feb 2014 17:42:33 +040014 2014, 17:42:33
-4

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

ответил Thorben Kaufmann 12 PM00000030000005031 2015, 15:17:50

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132