Vraag 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 deze sneller lijkt te werken.

Ik merk echter de laatste tijd dat ik vaak een bericht ontvang dat een van mijn upgrades werd tegengehouden. Ik loop dan meestal weg dist-upgrade om het door te nemen en het werkt prima. Voor zover ik kan vertellen na het lezen deze vraag en de antwoorden, dist-upgrade doet allemaal dezelfde dingen en dan wat.

Dus mijn vraag is: waarom gebruiken apt-get upgrade helemaal? Waarom niet gebruiken apt-get dist-upgrade altijd? Waarom doet apt-get upgrade zelfs bestaan?


270
2017-09-30 03:21


oorsprong


In nieuwere Ubuntu-versies, sudo apt full-upgrade doet soortgelijke dingen. - Aaron Franke


antwoorden:


Meestal upgrade ik mijn machines met:

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

Hieronder is een fragment van man apt-get. Het gebruik van de upgrade houdt zich aan de regel: in geen geval worden momenteel geïnstalleerde pakketten verwijderd of pakketten die niet al zijn geïnstalleerd opgehaald en geïnstalleerd. Als dat belangrijk voor je is, gebruik het dan apt-get upgrade. Als u wilt dat de dingen "gewoon werken", wilt u waarschijnlijk apt-get dist-upgrade om ervoor te zorgen dat afhankelijkheden worden opgelost.

Om uit te leggen waarom je zou willen upgrade in plaats van dist-upgrade, als u een systeembeheerder bent, hebt u voorspelbaarheid nodig. U gebruikt mogelijk geavanceerde functies zoals apt pinning of trekken uit een verzameling van PPA (misschien hebt u een in-house PPA), met verschillende automatiseringssystemen om uw systeem en beschikbare upgrades te inspecteren in plaats van altijd gretig alle beschikbare pakketten bij te werken. Je zou erg gefrustreerd raken wanneer apt ongepast gedrag vertoont, vooral als dit leidt tot downtime van een productiedienst.

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.

363
2017-12-06 17:02



Bedankt voor het niet alleen opsommen van de verschillen tussen de twee, maar ook voor het uitleggen van de situaties waarin de ene beter zou kunnen zijn dan de andere. Dit was precies wat ik zocht. - jimchristie
dist-upgrade heeft meer kans om dingen slecht kapot te maken dan upgrade. upgrade zorgt ervoor dat uw systeem compleet blijft. - Braiam
dist-upgrade heeft meer kans om problemen met conflicterende pakketversies op te lossen, als u vertrouwd bent met de wegrolleraanpak (dat wil zeggen dat u geen bedrijfskritieke productiesoftware op de doos hebt staan) - Henno
Een kleine vraag over 'apt-get-upgrade' naar het feit dat 'geen momenteel geïnstalleerde pakketten zijn verwijderd of een nieuwe is toegevoegd': krijgen bestaande pakketten dienovereenkomstig een upgrade. OudA is bijvoorbeeld afhankelijk van oldB. Zullen oldA en oldB allebei een upgrade krijgen? Hoe zit het als newA afhangt van oldB en niet newB, wat gebeurt er met deze twee tijdens de upgrade? beide niet geüpgraded of beide geüpgraded, waardoor nieuwA mogelijk niet functioneert omdat oldB verloren is gegaan? - Kenny
Wat is de reden om te gebruiken time hier? - ItalyPaleAle


Ik weet dat deze vraag is beantwoord en een jaar oud is, maar ik vind dat dit moet worden gezegd. Ubuntu 14.04 en hoger (en Debian Jessie en later, voor degenen die dit van Google vinden) gebruikt APT 1.0, waarmee het commando apt in plaats van apt-get en apt-cache voor sommige operaties.

  • apt-get upgrade zal niet veranderen wat is geïnstalleerd (alleen versies),
  • apt-get dist-upgrade zal zo nodig pakketten installeren of verwijderen om de upgrade te voltooien,
  • apt upgrade zal pakketten automatisch installeren maar niet verwijderen.
  • apt full-upgrade voert dezelfde functie uit als apt-get dist-upgrade.

111
2017-07-22 05:22



@muru Bedankt voor de bewerking en de opmerking over volledige upgrade. Ik gebruik voornamelijk Debian 7 (dat is pre-APT 1.0) en ik heb alleen gespeeld met Debian Jessie en Ubuntu 14.04. - Stephen Angelico
graag gedaan. Als iemand die wel gebruikt jessie en 14.04 regelmatig, ik hoorde voor het eerst van dit nieuwe hulpprogramma uit je antwoord! - muru
Heeft u een bron voor uw beschrijving van apt upgrade? Alles wat ik kan bedenken suggereert dat apt upgrade is hetzelfde als apt-get upgrade. Bijvoorbeeld, apt help upgrade op mijn systeemuitgangen: "apt upgrade" is equivalent to "sudo apt-get upgrade" - Jon Bentley
De respectieve manpagina's voor apt en apt-get specificeer wat ik oorspronkelijk zei. - Stephen Angelico
apt safe-upgrade is geen geldige bewerking op mijn systeem. Als je bedoelt aptitude safe-upgrade, niet helemaal. apt-get upgrade zal nooit pakketten installeren, terwijl apt upgrade en aptitude safe-upgrade zal nieuwe pakketten installeren, afhankelijkheden vereisen dit. Zo aptitude safe-upgrade is gelijk aan apt upgrade, niet apt-get upgrade. - Stephen Angelico


De upgrade optie installeert alleen de nieuwe versie van de pakketten die al op het systeem zijn geïnstalleerd (en ja, updates van de kernel behoren hiertoe).

Soms veranderen de updates de afhankelijkheden: een nieuwe versie van een pakket is bijvoorbeeld niet langer afhankelijk van een bibliotheek die u hebt geïnstalleerd, of vereist de installatie van extra bibliotheken. De upgrade optie verwijdert nooit geïnstalleerde pakketten die u niet langer nodig heeft.

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


6
2017-09-30 06:17



Hoewel dit klopt, denk ik niet dat het de vraag beantwoordt. Als we een "intelligente" optie hebben die afhankelijkheidsveranderingen aankan en rommel opruimt, waarom niet altijd gebruiken? - ændrük
upgrade zal ook nooit toevoegen nieuwe pakketten die worden nodig als afhankelijkheden. Van man apt-get: "onder geen enkele omstandigheid worden momenteel geïnstalleerde pakketten verwijderd, of pakketten die nog niet zijn geïnstalleerd opgehaald en geïnstalleerd" @ ændrük Alleen omdat iets 'intelligent' is, betekent nog niet dat het altijd doet wat de gebruiker wil (of zelfs iets redelijks). Altijd een systeemupdate verwijdert een pakket, het is goed om te kijken wat het doet voordat je op Y drukt. - Eliah Kagan


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


2
2018-02-04 13:42





Het zou voor Win-Home-gebruikers geen probleem moeten zijn om altijd "dist-upgrade" uit te voeren, maar als je complexe systemen gebruikt, kun je beter "nooit (echt) een lopend systeem veranderen" ... Zelfs als "zou" geen probleem moeten zijn , "kan" probs zijn - wat zal je afsnijden! U zou degene moeten zijn die de juiste beslissing heeft ;-)


-4
2017-08-12 12:17



Should not be a problem for Win-Home Users to always "dist-upgrade" ..waarom is dat ? - heemayl
Nou, laten we zeggen dat je een ubuntu-server opzet, een werkstation voor een productieve omgeving: wanneer je altijd en automatisch dist-upgrade doet, zou je waarschijnlijk geen controle hebben, wanneer je problemen krijgt - zelfs als je niet de tijd hebt om het op te lossen op dat moment wordt een automatische dist-upgrade uitgevoerd. Sommige configs hebben mogelijk een 'menselijke' aanraking nodig om te kunnen poorten. Dat is wat ik meerdere keren heb vervallen. Wanneer u eenvoudig aan "Home" -platformen werkt, zoals Win-Home, is de gebruiker standaard niet in staat om updates te beheren. Dus dat mag je niet storen. - Thorben Kaufmann