¿Por qué usar apt-get upgrade en lugar de apt-get dist-upgrade?

269

Normalmente uso apt-get update && apt-get upgrade para ejecutar mis actualizaciones y actualizaciones en lugar de la GUI porque parece que se ejecuta más rápido.

Sin embargo, me he dado cuenta últimamente de que a menudo recibo un mensaje de que una de mis actualizaciones fue retenida. Por lo general, ejecuto dist-upgrade para ejecutarlo y funciona bien. Por lo que puedo decir después de leer esta pregunta y sus respuestas, dist-upgrade hace todas las mismas cosas y más.

Entonces, mi pregunta es: ¿Por qué usar apt-get upgrade en absoluto? ¿Por qué no usar apt-get dist-upgrade todo el tiempo? ¿Por qué apt-get upgrade incluso existe?

    
pregunta jimchristie 30.09.2012 - 05:21

5 respuestas

363

Normalmente actualizo mis máquinas con:

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

A continuación se muestra un extracto de man apt-get . El uso de la actualización cumple con la regla: bajo ninguna circunstancia se eliminan paquetes instalados actualmente o se recuperan e instalan paquetes que no se han instalado aún. Si eso es importante para usted, use apt-get upgrade . Si quiere que las cosas "simplemente funcionen", es probable que desee apt-get dist-upgrade para garantizar que las dependencias se resuelvan.

Para ampliar el motivo por el cual desea actualizar en lugar de dist-upgrade , si es administrador de sistemas, necesita previsibilidad. Puede utilizar funciones avanzadas como apt pinning o extraer de una colección de PPAs (quizás tenga un PPA interno), con diversas automatizaciones implementadas para inspeccionar su sistema y las actualizaciones disponibles en lugar de actualizar siempre con entusiasmo todos los paquetes disponibles. Se sentiría muy frustrado cuando apt realiza un comportamiento no guionado, particularmente si esto lleva a un tiempo de inactividad de un servicio de producción.

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.
    
respondido por el rduplain 06.12.2012 - 18:02
111

Sé que esta pregunta ha sido respondida y tiene un año, pero siento que esto debe decirse. Ubuntu 14.04 y posterior (y Debian Jessie y más tarde, para aquellos que lo encuentran de Google) usa APT 1.0, que permite el comando apt en lugar de apt-get y apt-cache para algunas operaciones.

  • apt-get upgrade no cambiará lo que está instalado (solo versiones),
  • apt-get dist-upgrade instalará o eliminará paquetes según sea necesario para completar la actualización,
  • apt upgrade se instalará automáticamente pero no eliminará los paquetes.
  • apt full-upgrade realiza la misma función que apt-get dist-upgrade .
respondido por el Stephen Angelico 22.07.2014 - 07:22
6

La opción upgrade solo instala una nueva versión de los paquetes que ya están instalados en el sistema (y sí, las actualizaciones del núcleo pertenecen a ellos).

Sin embargo, a veces las actualizaciones cambian las dependencias: por ejemplo, una nueva versión de un paquete ya no dependerá de una biblioteca que haya instalado, o requerirá la instalación de bibliotecas adicionales. La opción upgrade nunca eliminará los paquetes instalados que ya no necesite realmente.

Sin embargo, la opción dist-upgrade puede "inteligentemente" manejar cambios en el sistema de dependencias. Esto incluye eliminar paquetes que ya no son necesarios o resolver conflictos entre paquetes que surgieron debido a cambios en las dependencias.

    
respondido por el January 30.09.2012 - 08:17
2

Es posible que los usuarios confíen en los paquetes que se instalaron implícitamente debido a la dependencia de otros paquetes (instalados explícitamente). Por lo tanto, el sistema de empaquetado no puede conocer el deseo del usuario / administrador de retener cierta funcionalidad que de otro modo podría eliminarse mediante dist-upgrade.

    
respondido por el user244474 04.02.2014 - 14:42
-4

No debería ser un problema para los usuarios de Win-Home siempre "dist-upgrade", pero si está ejecutando sistemas complejos, es mejor "nunca (realmente) cambiar un sistema en ejecución" ... Incluso si "debería" no hay problema, "podría" haber problemas, ¡qué te detendrá! USTED debería ser el que tenga el derecho 2 a decidir; -)

    
respondido por el Thorben Kaufmann 12.08.2015 - 14:17

Lea otras preguntas en las etiquetas