Відповіді:
Ні, вони не однакові. apt-get upgrade
не обробляє зміни залежностей між версіями, тому, якщо пакет змінив залежності, він не буде модернізований (він буде "стриманий"). Докладнішу інформацію див. У довгій відповіді.
Використання програми оновлення програмного забезпечення та використання 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
скаже вам, що деякі пакети були стримані.
Використання програмного оновлення робить все безпроблемним, і ви не побачите нічого, що стримується.
apt
наявними поетапними оновленнями ( згаданими pabouk ) є найбільш помітною різницею між оновленням з оновленням програмного забезпечення та командним рядком.У наші дні apt
утиліта - яка не існувала при опублікуванні цього питання, але , швидше за все, була б включена в питання, якби воно було - є все більш популярною альтернативою apt-get
оновлення пакетів. Вони схожі: той самий пакет (також називається apt
) надає і те , і все, що apt
можна зробити, традиційні apt-
утиліти також можуть, хоча в деяких випадках вам доведеться пройти спеціальні параметри конфігурації. Але apt
ближче, ніж apt-get
до оновлення програмного забезпечення. Як Software Updater, це здатний встановити нові пакети , коли нова версія існуючого пакету оголошує їх в якості залежностей.sudo apt upgrade
Так в ці дні, користувач , які пов'язані з цією відмінністю можна просто запустити sudo apt upgrade
замість sudo apt-get upgrade
якщо вони хочуть нова залежність , які будуть встановлені автоматично. Отже, особливість програми оновлення програмного забезпечення дещо затримати деякі оновлення, щоб визначити, чи є вони стабільними в природі та обмежують шкоду, якщо їх немає, зараз, мабуть, головна відмінність використання програми оновлення програмного забезпечення та оновлення в командному рядку.
Така поведінка оновлення програмного забезпечення пояснюється політикою поетапних оновлень . Ця політика - впроваджена в Оновлення програмного забезпечення, але не вapt-get
(або apt
) - була однією з основних різниць між двома методами з моменту введення політики , і Пабук прокоментував це пару років тому :
Є ще одна відмінність:
apt-get
не використовує PhasedUpdates, тому іноді Software Updater показує менше оновлень, ніжapt-get
. Див. Чому оновлення програмного забезпечення не каже, що оновлення не доступні, але оновлення apt-get Показує оновлення? .
Це, можливо, завжди було найбільш суттєвою різницею в тому, що він завжди міг працювати, sudo apt-get dist-upgrade
стикаючись із upgrade
небажанням дії встановлювати нові пакети чи видаляти існуючі. Однак при оновленні з командного рядка відносна важливість поетапних оновлень збільшується з apt
:
apt-get
, apt
команда завантажує та встановлює оновлення, навіть якщо вони будуть затримані через політику поетапних оновлень, якщо натомість було використано оновлення програмного забезпечення.apt-get
, в apt
командування upgrade
дій будуть встановлювати нові пакети , які раніше не були встановлені , але необхідні як залежності для нових версій пакетів.Окрім (а) віддання переваги графічному інтерфейсу та (б) його інтеграції на робочому столі, що забезпечує сповіщення, коли доступні оновлення, головна поточна причина, за якою можна скористатися оновленням програмного забезпечення, що це найпростіший спосіб брати участь у поетапних оновленнях.
apt-get
не використовує PhasedUpdates, тому іноді Software Updater показує менше оновлень, ніжapt-get
. Див. Чому оновлення програмного забезпечення не каже, що оновлення не доступні, але оновлення apt-get Показує оновлення? .