Waarom apt-get upgrade gebruiken in plaats van apt-get dist-upgrade?

Ik gebruik meestal apt-get update && apt-get upgrade om mijn updates en upgrades uit te voeren in plaats van de GUI omdat het sneller lijkt te gaan.

Echter, ik'heb de laatste tijd gemerkt dat ik vaak een bericht krijg dat een van mijn upgrades werd tegengehouden. Ik voer dan meestal dist-upgrade uit om het door te voeren en het werkt prima. Voor zover ik kan zien na het lezen van deze vraag en de antwoorden, doet dist-upgrade al dezelfde dingen en dan nog wat.

Dus, mijn vraag is: Waarom zou je apt-get upgrade überhaupt gebruiken? Waarom niet de hele tijd apt-get dist-upgrade gebruiken? Waarom bestaat apt-get upgrade eigenlijk?

Oplossing

Ik upgrade mijn machines meestal met:

sudo apt-get update && time sudo apt-get dist-upgrade

Hieronder staat een uittreksel van man apt-get. Het gebruik van upgrade houdt zich aan de regel: onder geen enkele omstandigheid worden momenteel geïnstalleerde pakketten verwijderd, of pakketten die nog niet geïnstalleerd zijn opgehaald en geïnstalleerd.Als dat's belangrijk voor u, gebruik dan apt-get upgrade. Als u wilt dat dingen "gewoon werken", wilt u waarschijnlijk apt-get dist-upgrade om ervoor te zorgen dat afhankelijkheden worden opgelost.

Om uit te breiden over waarom u apt-get dist-upgrade zou willen in plaats van apt-get dist-upgrade, als u een systeembeheerder bent, heeft u voorspelbaarheid nodig. Je gebruikt misschien geavanceerde functies zoals apt pinning of trekken uit een verzameling van PPA's (misschien heb je een in-house PPA), met verschillende automatiseringen op zijn plaats om je systeem en beschikbare upgrades te inspecteren in plaats van altijd gretig alle beschikbare pakketten te upgraden. Je zou erg gefrustreerd raken als apt onscripted gedrag vertoont, vooral als dit leidt tot downtime van een productie service.

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.

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. So, dist-upgrade
    command may 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.
Commentaren (7)

De upgrade optie installeert alleen nieuwe versies van de pakketten die al op het systeem geïnstalleerd zijn (en ja, kernel updates horen daar ook bij).

Echter, soms veranderen de updates afhankelijkheden: bijvoorbeeld, een nieuwe versie van een pakket zal niet langer afhankelijk zijn van een bibliotheek die u heeft geïnstalleerd, of zal de installatie van extra bibliotheken vereisen. De upgrade optie zal nooit geïnstalleerde pakketten verwijderen die u eigenlijk niet meer nodig heeft.

Echter, de dist-upgrade optie kan "intelligent" omgaan met veranderingen in het afhankelijkheden systeem. Dit omvat het verwijderen van pakketten die niet langer nodig zijn of het oplossen van conflicten tussen pakketten die zijn ontstaan door wijzigingen in de afhankelijkheden.

Commentaren (2)

Gebruikers kunnen zijn gaan vertrouwen op pakketten die impliciet werden geïnstalleerd vanwege andere (expliciet geïnstalleerde) pakketten' afhankelijkheid ervan. Het verpakkingssysteem kan dus niet op de hoogte zijn van de wens van een gebruiker/administrator om bepaalde functionaliteit te behouden die anders via een dist-upgrade zou kunnen worden verwijderd.

Commentaren (0)