Чи використовує Software Updater те саме, що запустити оновлення apt-get та оновити apt-get?


27

Здається, це має бути правдою, але я хотів переконатися. Спасибі!


3
Є ще одна відмінність: apt-getне використовує PhasedUpdates, тому іноді Software Updater показує менше оновлень, ніж apt-get. Див. Чому оновлення програмного забезпечення не каже, що оновлення не доступні, але оновлення apt-get Показує оновлення? .
pabouk

Відповіді:


21

Коротка відповідь

Ні, вони не однакові. 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не можна його оновлювати.


1
Чи можете ви пояснити, чому, коли для оновлення програмного забезпечення більше не потрібен пароль для оновлення існуючих пакетів (тобто, коли apt-get upgradeпотрібно лише ), apt-getне можна робити те саме? Здається, що між ними є щось інше, принципово інше.
Джонатан Ю.

4

Це майже те саме, але не зовсім. Наприклад, коли пропонуються оновлення ядра, sudo apt-get update && sudo apt-get dist-upgradeнеобхідні для отримання цих оновлень.

sudo apt-get update && sudo apt-get upgrade скаже вам, що деякі пакети були стримані.

Використання програмного оновлення робить все безпроблемним, і ви не побачите нічого, що стримується.


3

З 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 Показує оновлення? .

- pabouk 25 лютого '15 о 7:34

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

  • Мовляв apt-get, aptкоманда завантажує та встановлює оновлення, навіть якщо вони будуть затримані через політику поетапних оновлень, якщо натомість було використано оновлення програмного забезпечення.
  • Але в відміну apt-get , в aptкомандування upgradeдій будуть встановлювати нові пакети , які раніше не були встановлені , але необхідні як залежності для нових версій пакетів.

Окрім (а) віддання переваги графічному інтерфейсу та (б) його інтеграції на робочому столі, що забезпечує сповіщення, коли доступні оновлення, головна поточна причина, за якою можна скористатися оновленням програмного забезпечення, що це найпростіший спосіб брати участь у поетапних оновленнях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.