Является ли использование Software Updater тем же, что и при запуске обновлений apt-get и apt-get?

27

Кажется, это должно быть правдой, но я хотел убедиться. Благодарность!

zandm7
источник
3
Есть еще одно отличие: apt-getне использует PhasedUpdates, поэтому иногда Software Updater показывает меньше обновлений, чем apt-get. См. Почему Software Updater сообщает, что обновлений нет, но apt-get upgrade Показывает доступные обновления? ,
Пабук

Ответы:

21

Краткий ответ

Нет, они не одинаковы. apt-get upgradeне обрабатывает изменение зависимостей между версиями, поэтому, если пакет изменил зависимости, он не будет обновлен (он будет «задержан»). Смотрите длинный ответ для более подробной информации.

Использование Software Updater и использование sudo apt-get update ; sudo apt-get dist-upgrade(обратите внимание на dist-) было бы почти эквивалентно, за исключением того, что один, очевидно, представляет собой графический интерфейс, а другой - консольное приложение, а также несколько очень незначительных информационных различий.


Долго asnwer

От man apt-get,

  • apt-get upgrade:

    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.

    (акцент мной)

    Это означает, что более новая версия пакета с новой зависимостью, которая не требуется в старой версии , не будет обновлена ​​с помощью этого метода (если новая зависимость уже не установлена). Они будут показаны как "Задержка".

  • apt-get dist-upgrade:

    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. The dist-upgrade
           command may therefore 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.

    (акцент мной)

    Это означает, что с помощью этой команды upgradeможно обновить пакеты с новыми (или удаленными) зависимостями.

пример

Хороший пример различий между ними - выпуск нового ядра Linux. Это упаковано в linux-image-genericпакет, который всегда зависит от последней версии ядра Linux. Поскольку зависимости linux-image-genericменяются с каждым обновлением ядра, не upgradeбудем его обновлять.

харакири
источник
1
Можете ли вы объяснить, почему, когда Software Updater больше не требует пароль root для обновления существующих пакетов (то есть, когда apt-get upgradeтребуется только ), apt-getне может сделать то же самое? Кажется, между ними есть что-то принципиально другое.
Джонатан Y.
4

Это почти то же самое, но не совсем. Например, когда предлагаются обновления ядра, sudo apt-get update && sudo apt-get dist-upgradeнеобходимо получить эти обновления.

sudo apt-get update && sudo apt-get upgrade скажет вам, что некоторые пакеты были задержаны.

Использование Software Updater делает все без проблем, и вы не увидите ничего сдержанного.


источник
3

При aptналичии доступных поэтапных обновлений ( упомянутых pabouk ) наиболее заметна разница между обновлениями с помощью Software Updater и командной строки.

В наши дни aptутилита, которой не было, когда этот вопрос был опубликован, но , вероятно, была бы включена в вопрос, если бы она была, является все более популярной альтернативой apt-getдля обновления пакетов. Они похожи: один и тот же пакет (также называемый apt) обеспечивает и то , и другое , что aptмогут сделать все, что могут делать традиционные apt-утилиты, хотя в некоторых случаях вам придется передавать специальные параметры конфигурации. Но aptближе, чем apt-getк Software Updater. Как Software Updater, это способен установить новые пакеты , когда новая версия существующего пакета объявляет их в качестве зависимостей.sudo apt upgrade

Таким образом, в наши дни пользователи, которые обеспокоены этим различием, могут просто запускаться sudo apt upgradeвместо того, sudo apt-get upgradeчтобы хотеть автоматически устанавливать новые зависимости. Следовательно, функция Software Updater, состоящая в том, чтобы слегка задерживать некоторые обновления, чтобы определить, являются ли они стабильными в дикой природе, и ограничить ущерб, если они этого не делают, теперь, вероятно, является основным отличием между использованием Software Updater и обновлением в командной строке.

Такое поведение Software Updater обусловлено политикой поэтапного обновления . Эта политика - реализованная в Software Updater, но не вapt-get (или apt) - была одним из основных различий между двумя методами с момента ее введения , и Пабук прокомментировал это пару лет назад :

Есть еще одно отличие: apt-getне использует PhasedUpdates, поэтому иногда Software Updater показывает меньше обновлений, чем apt-get. См. Почему Software Updater сообщает, что обновлений нет, но apt-get upgrade Показывает доступные обновления? ,

- Пабук 25 февраля 15 в 7:34

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

  • Например apt-get, aptкоманда будет загружать и устанавливать обновления, даже если они будут отложены из-за политики поэтапного обновления, если вместо этого использовался Software Updater.
  • Но в отличие apt-get , в aptкомандования upgradeдействий будут устанавливать новые пакеты , которые ранее не были установлены , но необходимы как зависимости для новых версий пакетов.

Помимо (a) предпочтения графического интерфейса и (b) его интеграции с рабочим столом, обеспечивающего уведомления о доступности обновлений, основной причиной, по которой можно использовать Software Updater, является то, что это самый простой способ участвовать в поэтапных обновлениях.

Элия ​​Каган
источник