Me preguntaba por qué a upgrade
veces no quiere actualizar ciertas partes del sistema, mientras que dist-upgrade
sí. Aquí hay un ejemplo después de correr apt-get upgrade
:
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.
versus apt-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]?
En otras palabras, ¿por qué no se puede realizar esto upgrade
?
full-upgrade
como una opción porapt-get
debajo de 14.04.1.apt
, pero parece ser un comando completamente diferente según la página del manual que vinculóapt
y no deapt-get
... :-) Intentaman apt
.apt-get upgrade
está restringido al caso en que los paquetes deben ser reemplazados por versiones más nuevas, pero no es necesario agregar o eliminar paquetes. Una nueva versión de Firefox, por ejemplo, debería ser instalable conapt-get upgrade
.Sin embargo,
apt-get upgrade
se negará a trabajar cuando las versiones actualizadas requieran adiciones o eliminaciones. Por ejemplo, cuando tienelinux-image-3.2.0-10-generic
instalado el núcleo ylinux-image-3.2.0-11-generic
aparece, ellinux-image-generic
paquete se actualiza para depender de la versión más nueva. Para instalar el nuevo kernel, debe ejecutarapt-get dist-upgrade
.Observe cómo un
apt-get upgrade
dirá que los paquetes del núcleo han sidoheld back
. Esa es la señal para usarapt-get dist-upgrade
.fuente
update-manager
, no se usaapt-get
directamente; en su lugar, funciona con un backend llamadoaptdaemon
. Las capacidades estándar deupdate-manager
son una combinación de los modosupgrade
ydist-upgrade
deapt-get
: puede agregar pero no eliminar paquetes; invoca la herramienta "Actualización parcial" cuando se requieren eliminaciones. Cuando use la línea de comando, useapt-get upgrade
. Si ve que informa que los paquetes han sido "retenidos", ejecuteapt-get dist-upgrade
para recoger las actualizaciones restantes.Básicamente, la actualización solo actualizará los paquetes existentes de una versión a otra. No instalará ni eliminará paquetes, incluso si se requiere hacerlo para actualizar otros. En el caso de las actualizaciones del kernel, la actualización del paquete linux-generic requiere la instalación del nuevo paquete linux-3.0.0-13-generic, y dado que la actualización se niega a instalar o eliminar paquetes, se niega a actualizar linux-generic.
A veces, varias incompatibilidades entre paquetes requerirán que se eliminen algunos paquetes para actualizar otros, y eso también requerirá dist-upgrade. Las actualizaciones del kernel siempre requerirán dist-upgrade debido a cómo se manejan. En lugar de tener un paquete de kernel que se actualice, cada vez se crea un paquete de kernel completamente nuevo, y el metapaquete del kernel se actualiza para depender del nuevo paquete de kernel en lugar del antiguo. Esto se hizo para mantener las versiones antiguas del kernel para que, en caso de que haya un problema al arrancar el nuevo kernel, pueda elegir el antiguo del menú de arranque y recuperarlo.
fuente
El
apt-get upgrade
comando normalmente solo instalará actualizaciones (o correcciones) en los paquetes instalados actualmente. Normalmente, una nueva versión de Mozilla Firefox , por ejemplo, se instalaría con este comando.Sin embargo
apt-get upgrade
, generalmente NO instalará nuevas versiones, donde los cambios importantes (incluida la eliminación de paquetes o la actualización de GRUB) Por ejemplo, cuando hay disponible un nuevo kernel de Linux (linux-image-3.xx-xx-generic, etc.), el paquete no se instalará.Para instalar el nuevo kernel, deberá ejecutarlo
apt-get dist-upgrade
. Se le notificará cuando ejecuteapt-get upgrade
, ya que dirá que ciertos paquetes han sido retenidos. Esa es su señal de empleo:apt-get dist-upgrade
.fuente
dist-upgrade
no se actualizará a una nueva versión a menos quesources.list
se haya modificado en consecuencia (e incluso entonces, esa no es una forma compatible de actualizar en Ubuntu). Cuando se instala un nuevo kernel condist-upgrade
, esa no es una nueva versión de Ubuntu . Es solo un nuevo paquete. Además, el reclamo "o se requiere la actualización de GRUB" es falso.sudo apt-get upgrade
es perfectamente capaz de actualizar paquetes en una situación en la que GRUB debe actualizarse, siempre que no se eliminen paquetes y se instalen paquetes nuevos.update-grub
se ejecuta automáticamente, como siempre.apt-get upgrade
no eliminará ni agregará paquetes. Si una solución a un paquete requiere un nuevo paquete, la actualización se retrasará. La respuesta de pablomme , que usted revisó para que sea menos precisa, es mejor y les aconsejaría a los lectores que se dirijan a esa.apt-get upgrade
nunca instalará ni eliminará ningún paquete. Las actualizaciones del kernel se empaquetan como paquetes nuevos y, como resultado,apt-get upgrade
nunca actualizarán el kernel. El hecho de que la actualización del núcleo haga cambios "importantes" como la configuración de GRUB no es la razón de la diferencia entreupgrade
ydist-upgrade
.Tu mejor opción es:
apt full-upgrade
-que maneja automáticamente las dependencias al actualizar paquetes; mientras:
-NO maneja automáticamente las dependencias al actualizar paquetes.
- duBtrotterS
fuente