Ответы:
Нет, они не одинаковы. apt-get upgrade
не обрабатывает изменение зависимостей между версиями, поэтому, если пакет изменил зависимости, он не будет обновлен (он будет «задержан»). Смотрите длинный ответ для более подробной информации.
Использование Software Updater и использование sudo apt-get update ; sudo apt-get dist-upgrade
(обратите внимание на dist-
) было бы почти эквивалентно, за исключением того, что один, очевидно, представляет собой графический интерфейс, а другой - консольное приложение, а также несколько очень незначительных информационных различий.
От 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
будем его обновлять.
apt-get upgrade
требуется только ), apt-get
не может сделать то же самое? Кажется, между ними есть что-то принципиально другое.
Это почти то же самое, но не совсем. Например, когда предлагаются обновления ядра, sudo apt-get update && sudo apt-get dist-upgrade
необходимо получить эти обновления.
sudo apt-get update && sudo apt-get upgrade
скажет вам, что некоторые пакеты были задержаны.
Использование Software Updater делает все без проблем, и вы не увидите ничего сдержанного.
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 Показывает доступные обновления? ,
Это, возможно, всегда было самым значительным отличием в том, что его всегда можно запустить, sudo apt-get dist-upgrade
столкнувшись с upgrade
нежеланием действия установить новые пакеты или удалить существующие. Однако при обновлении из командной строки относительная важность поэтапных обновлений увеличивается с apt
:
apt-get
, apt
команда будет загружать и устанавливать обновления, даже если они будут отложены из-за политики поэтапного обновления, если вместо этого использовался Software Updater.apt-get
, в apt
командования upgrade
действий будут устанавливать новые пакеты , которые ранее не были установлены , но необходимы как зависимости для новых версий пакетов.Помимо (a) предпочтения графического интерфейса и (b) его интеграции с рабочим столом, обеспечивающего уведомления о доступности обновлений, основной причиной, по которой можно использовать Software Updater, является то, что это самый простой способ участвовать в поэтапных обновлениях.
apt-get
не использует PhasedUpdates, поэтому иногда Software Updater показывает меньше обновлений, чемapt-get
. См. Почему Software Updater сообщает, что обновлений нет, но apt-get upgrade Показывает доступные обновления? ,