Відповіді:
Ні, вони не однакові. 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 Показує оновлення? .