Mi a "dist-upgrade", és miért frissül több, mint a "frissítés"?

347

Arra gondoltam, hogy aupgrade néha miért nem szeretné frissíteni a rendszer egyes részeit, míg adist-upgrade nem. Íme egy példa aapt-get upgrade:

futtatása után

apt-get upgrade:

rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

versusapt-get dist-upgrade:

rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  linux-headers-3.0.0-13 linux-headers-3.0.0-13-generic
  linux-image-3.0.0-13-generic
The following packages will be upgraded:
  linux-generic linux-headers-generic linux-image-generic
3 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.5 MB of archives.
After this operation, 215 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Más szóval, miért nem lehet ezt végrehajtani aupgrade?

    
készlet Richard Rodriguez 22.11.2011 07:03
forrás

4 válasz

290

apt-get manual :

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.

És az újabb apt eszközzel elérhető 14.04-től:

full-upgrade
   full-upgrade performs the function of upgrade but may also remove
   installed packages if that is required in order to resolve a
   package conflict.

A konkrét esetben azt látom például, hogy alinux-headers egy virtuális csomag, amelyet mind alinux-headers-3.0.0-12, mind alinux-headers-3.0.0-13 nyújt, és ez úgy hangzik, mint a csomag telepítése és eltávolítása, amelyetdist-upgrade , de nemupgrade.

    
válasz adott jcollado 22.11.2011 07:57
forrás
119

Aapt-get upgrade korlátozott arra az esetre, amikor a csomagokat újabb verziókkal kell helyettesíteni, de csomagot nem kell hozzáadni vagy eltávolítani. Például a Firefox új verziója telepíthető aapt-get upgrade -al.

Aapt-get upgrade azonban megtagadja a munkát, ha a frissített verziókhoz kiegészítések vagy eltávolítások szükségesek. Például, ha a kernellinux-image-3.2.0-10-generic telepítve van, és alinux-image-3.2.0-11-generic megjelenik, alinux-image-generic csomag frissítésre kerül az új verzió függvényében. Az új rendszermag telepítéséhezapt-get dist-upgrade -ot kell futtatnia.

Figyeld meg, hogy aapt-get upgrade azt mondja, hogy a rendszermag-csomagokheld back voltak. Ez a cue aapt-get dist-upgrade használatára.

    
válasz adott pablomme 27.01.2012 17:34
forrás
33

Alapvetően a frissítés csak a meglévő csomagokat frissíti az egyik verzióról a másikra. A csomagokat nem telepíti vagy távolítja el, még akkor sem, ha erre más felhasználók frissítésére van szükség. A kernelfrissítések esetében a linux-generic csomag frissítése az új linux-3.0.0-13-generikus csomag telepítését igényli, és mivel a frissítés megtagadja a csomagok telepítését vagy eltávolítását, a linux-generic frissítését nem teszi hajlandóvá.

Előfordulhat, hogy a különböző csomagok közötti összeférhetetlenség miatt néhány csomagot el kell távolítani más felhasználók frissítéséhez, és ez megköveteli a disztribúciót is. A rendszermag frissítései mindig a disztribúciót igénylik, mivel kezelik őket. Ahelyett, hogy egy kernel csomag frissül, egy teljesen új rendszermag-csomag kerül létrehozásra minden alkalommal, és a rendszermag metapackage frissítésre kerül az új rendszermag-csomag helyett. Ezt úgy tettük meg, hogy a régi rendszermag verzióját megtartsa, úgyhogy az új rendszermag indításakor probléma merül fel, a rendszerindító menüből kiválaszthatja a régiet és visszaállíthatja.

    
válasz adott psusi 22.11.2011 15:45
forrás
11

A apt-get upgrade parancs általában csak frissítéseket (vagy javításokat) telepít a jelenleg telepített csomagokra. Például egy Mozilla Firefox új kiadása telepítésre kerül ezzel a paranccsal.

Aapt-get upgrade azonban NEM általában új kiadásokat telepít, ahol jelentős módosítások szükségesek (beleértve a csomagok eltávolítását vagy a GRUB frissítését). Például, ha egy új Linux kernel (linux-image-3.x.x-xx-generic, stb.) Elérhető, a csomag nem lesz telepítve.

Az új rendszermag telepítéséhez apt-get dist-upgrade kell futtatnia. Értesítést fog kapni, ha apt-get upgrade futtatja, mert azt fogja mondani, hogy bizonyos csomagokat visszatartottak. Ez a cue használata:apt-get dist-upgrade.

    
válasz adott david6 28.01.2012 01:55
forrás