Czy korzystanie z narzędzia Software Updater jest tym samym, co uruchamianie aktualizacji apt-get i apt-get upgrade?

Odpowiedzi:

21

Krótka odpowiedź

Nie, nie są takie same. apt-get upgradenie obsługuje zmieniających się zależności między wersjami, więc jeśli pakiet zmienił zależności, nie zostanie zaktualizowany (zostanie „wstrzymany”). Zobacz długą odpowiedź, aby uzyskać więcej informacji.

Korzystanie z narzędzia do aktualizacji oprogramowania i używanie sudo apt-get update ; sudo apt-get dist-upgrade(zwróć uwagę na dist-) byłoby prawie równoważne, z tym wyjątkiem, że jeden z nich to GUI, a drugi to aplikacja konsolowa, a także kilka bardzo drobnych różnic informacyjnych.


Długi czas odpowiedzi

Z 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.

    (nacisk przeze mnie)

    Oznacza to, że nowsza wersja pakietu, która ma nową zależność, która nie jest wymagana w starej wersji , nie zostanie zaktualizowana za pomocą tej metody (chyba że nowa zależność została już zainstalowana). Zostaną one pokazane jako „Wstrzymane”.

  • 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.

    (nacisk przeze mnie)

    Oznacza to, że dzięki tej komendzie zamiast upgradepakietów można zaktualizować z nowymi (lub usuniętymi) zależnościami.

Przykład

Dobrym przykładem różnicy między nimi jest wydanie nowego jądra Linuksa. Jest on pakowany w linux-image-genericpakiet, który zawsze zależy od najnowszego pakietu jądra Linux. Ponieważ zależności linux-image-genericzmian przy każdym uaktualnieniu jądra upgradenie będą go uaktualniać.

kiri
źródło
1
Czy możesz wyjaśnić, dlaczego, gdy Aktualizator oprogramowania nie wymaga już hasła roota do aktualizacji istniejących pakietów (tj. Gdy apt-get upgradejest to wymagane tylko ), apt-getnie może zrobić tego samego? Wygląda na to, że istnieje między nimi coś zupełnie innego.
Jonathan Y.
4

Jest prawie taki sam, ale nie do końca. Na przykład, gdy oferowane są aktualizacje jądra, sudo apt-get update && sudo apt-get dist-upgradepotrzebne są te aktualizacje.

sudo apt-get update && sudo apt-get upgrade poinformuje cię, że niektóre paczki zostały wstrzymane.

Korzystanie z narzędzia Software Updater sprawia, że ​​wszystko jest płynne, a nic nie zostanie powstrzymane.


źródło
3

Dzięki aptdostępnym, stopniowym aktualizacjom ( wspomnianym przez pabouk ) najistotniejsza jest różnica między aktualizacją za pomocą narzędzia Software Updater i wiersza poleceń.

W dzisiejszych czasach aptnarzędzie - które nie istniało, kiedy to pytanie zostało opublikowane, ale prawdopodobnie zostałoby uwzględnione w pytaniu, gdyby tak było - jest coraz bardziej popularną alternatywą apt-getdla aktualizacji pakietów. Są do siebie podobne: ten sam pakiet (zwany także apt) zapewnia jedno i drugie , i wszystko aptmoże zrobić, tradycyjne apt-narzędzia też mogą, chociaż w niektórych przypadkach trzeba by przekazać specjalne opcje konfiguracji. Ale aptjest bliżej niż apt-getw Aktualizatorze oprogramowania. Podobnie jak Software Updater, jest w stanie instalować nowe pakiety, gdy nowa wersja istniejącego pakietu deklaruje je jako zależności.sudo apt upgrade

Tak więc w dzisiejszych czasach użytkownicy zainteresowani tym rozróżnieniem mogą po prostu uruchomić sudo apt upgradezamiast, sudo apt-get upgradejeśli chcą, aby nowe zależności były instalowane automatycznie. W związku z tym funkcja Software Updater polegająca na nieznacznym opóźnianiu niektórych aktualizacji, aby ustalić, czy są one stabilne na wolności i ograniczyć uszkodzenia, jeśli tak nie jest, jest obecnie prawdopodobnie główną różnicą między używaniem Software Updater i aktualizowaniem w wierszu poleceń.

To zachowanie narzędzia do aktualizacji oprogramowania wynika z zasad dotyczących stopniowych aktualizacji . Ta polityka - zaimplementowana w Aktualizatorze oprogramowania, ale nie wapt-get (lub apt) - była jedną z głównych różnic między tymi dwiema metodami od czasu jej wprowadzenia i pabouk skomentował to kilka lat temu :

Jest jeszcze jedna różnica: apt-getnie używa PhasedUpdates, więc czasami Software Updater pokazuje mniej aktualizacji niż apt-get. Zobacz, dlaczego program aktualizujący oprogramowanie mówi Brak dostępnych aktualizacji, ale aktualizacja apt-get Pokazuje dostępne aktualizacje? .

- pabouk 25 lutego 2015 o 7:34

To zawsze mogła być najistotniejsza różnica, ponieważ zawsze można było uruchomić, sudo apt-get dist-upgradegdy upgradeakcja nie chciała instalować nowych pakietów lub odinstalowywać istniejących. Jednak podczas aktualizacji z wiersza polecenia względne znaczenie aktualizacji etapowych wzrasta wraz z apt:

  • Na apt-getprzykład aptpolecenie pobierze i zainstaluje aktualizacje, nawet jeśli byłyby one opóźnione ze względu na zasady stopniowych aktualizacji, gdyby zamiast tego użyto narzędzia Software Updater.
  • Jednak w przeciwieństwie apt-get do działania aptpolecenia, zostaną zainstalowane nowe pakiety, które nie zostały wcześniej zainstalowane, ale są wymagane jako zależności dla nowych wersji pakietów.upgrade

Oprócz (a) preferowania interfejsu graficznego i (b) jego integracji z pulpitem, dostarczania powiadomień o dostępności aktualizacji, głównym bieżącym powodem, dla którego można użyć narzędzia Software Updater, jest to najłatwiejszy sposób uczestniczenia w aktualizacjach etapowych.

Eliah Kagan
źródło