Diferencias entre apt-get upgrade y apt-get dist-upgrade

Oct 29th, 2010 | Posted by | Filed under Distribución, Linux

Imagina que tienes instalados los paquetes A-1.deb y B-1.deb.

A-1.deb depende de los paquetes Adep1-1.deb y Adep2-1.deb mientras que B-1.deb depende del paquete Bdep1-1.deb:

A-1.deb
|
`—– Adep1-1.deb
`—– Adep2-1.deb

B-1.deb
|
`—— Bdep1-1.deb

Ahora, tenemos un nuevo paquete disponible para el programa A, llamado A-2.deb. A-2.deb sigue dependiendo de Adep1-1.deb pero ahora también tiene una dependencia de una nueva versión de Adep2, llamada Adep2-2.deb:

A-2.deb
|
`—– Adep1-1.deb
`—– Adep2-2.deb

También tenemos un nuevo paquete para el programa B-2.deb, y una dependencia para la nueva versión de B-2, llamada Bdep1-2.deb. Pero contrariamente a la ya instalada versión de B, B-1.deb, B-2.deb también depende de un nuevo paquete: Bdep-new-1.deb

B-2.deb
|
`—— Bdep1-2.deb
`—— Bdep-new-1.deb

Si ahora lanzamos un apt-get upgrade veremos algo como esto:

# apt-get upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
B
The following packages will be upgraded
A Adep1 Adep2
3 packages upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n]

Como puedes ver el paquete B no se ha actualizado. La razón es que para instalar la nueva versión de B, B-2.deb, se debe instalar también el paquete Bdep-new-1.deb, pero apt-get upgrade no instala nuevos paquetes, solo actualiza los que ya están instalados.

Por otra parte, apt-get dist-upgrade instalará también los nuevos paquetes para resolver las dependencias.

Entonces con un dist-upgrade obtendríamos algo como esto:

# apt-get dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following NEW packages will be installed:
Bdep-new
The following packages will be upgraded
A Adep1 Adep2 B Bdep1
5 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 7055B/7055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n]

En general, si hacemos un apt-get upgrade y un paquete no es actualizado:

“Significa que hay nuevas versiones de esos paquetes los cuales no serán instalados por alguna razón. Razones posibles son dependencias rotas (un paquete del que depende no tiene una nueva versión disponible para la descarga) o [como en el ejemplo] hay nuevas dependencias (el paquete tiene nuevas dependencias desde la ultima versión).”

[APT HOWTO Chapter 3 – Managing packages, section 3.4 Upgrading packages]

Fuente | davitenio’s blag

Share
Comments are closed.