¿Por qué existe la separación entre actualización y mejora?

¿Por qué existe la separación entre actualización y mejora?

Entiendo que en apt, el comando updateactualiza la lista de paquetes disponibles, pero no actualiza el software que ya estaba instalado desde estos paquetes.

También entiendo que upgradeactualiza cualquier software que ya instalé desde un paquete que actualicé updatecomo se describe anteriormente.

¿Cuál fue la razón por la que los desarrolladores de Ubuntu/Debian hicieron esta división updatey upgradeen su lugar trabajaron con un comando para realizar ambas tareas?

Esta es más una pregunta sobre la filosofía arquitectónica de los desarrolladores de Ubuntu.

Respuesta1

La historia de la diferencia entre updatey upgradees realmente genial.

Hace mucho, mucho tiempo (digamos alrededor del año 2000, años antes de que Ubuntu existiera), el ancho de banda y el espacio en disco eran mucho más limitados... aunque expansivos en comparación con mediados de los años 1990. La banda ancha apenas estaba comenzando y el acceso telefónico seguía siendo una forma vital de conectarse a Internet. Los discos grandes todavía tenían sólo unos pocos cientos de MB. Apt era brillante y nuevo, radical y revolucionario, construido sobre dpkg.

La base de datos apt, si lo piensas bien, es una maravilla: es una base de datos precisa al minuto detodosoftware detodorepositorios conocidos. Es lo suficientemente detallado como para calcular dependencias e identificar actualizaciones disponibles, pero lo suficientemente pequeño como para transmitir a través de los módems de acceso telefónico de la época y almacenarlo en las pequeñas unidades de disco de la época. Actualizar su base de datos por teléfono puede tardarminutosa través de una buena conexión. Si bien ya es mucho tiempo, buscar actualizaciones de paquetes manualmente (antes de apt) podría consumirhoras.

En aquel entonces, las distribuciones se construían de manera diferente: sin integración continua, sin pruebas de humo (bueno, ¡no muchas pruebas!), las granjas de compilación recién comenzaban. Las actualizaciones tuvieron que revertirse con más frecuencia que ahora. Muchos usuarios optaron pornoactualizar ciertos paquetes por diversos motivos, o seleccionar solo ciertas actualizaciones hoy (para probarlas manualmente) y otras actualizaciones mañana.

Durante los siguientes 15 años aproximadamente, elherramientasNo han cambiado mucho, por eso todavía tenemos updateacciones separadas upgrade. Elflujo de trabajo del usuarioha evolucionado a medida que la confiabilidad de la distribución ha mejorado, y gran parte de la administración de fuentes/actualizaciones/actualizaciones que solía ser manual se ha ido ocultando lentamente detrás de capas de automatización ( software-updater, unattended-upgrades).

La modernización de las herramientas de los paquetes de software es una de las razones por las que Snaps, AppImage y Flatpak han aparecido recientemente, pero ese es el siguiente capítulo.

Respuesta2

Una actualización no es el único momento en el que puede necesitar hacerlo apt-get update, y no quiero actualizar cada vez que simplemente quiero actualizar las listas de paquetes.

Un apt-get upgradepozo que funcione puede depender de apt-get updateque se haya explotado no hace mucho, ¡pero eso también se aplica a apt-get removey apt-get installtambién! ¿Todo esto debería implicar apt-get update? ¡Por supuesto que no! Como una simple cuestión de eficiencia de recursos y limpieza del diseño, si una operación es común a muchas otras operaciones, debe descartarse.

Por el contrario, dado que apt-get removey apt-get installtambién puede depender de apt-get updateque se haya ejecutado recientemente para finalizar con éxito, ¿tiene sentido hacerlo apt-get upgradepara cada ejecución de apt-get update? No, repito, ya que lo que pretendo hacer bien puede entrar en conflicto con lo que apt-get upgradeharé.

Respuesta3

Siempre que cambie las fuentes de software, debe ejecutar el comando sudo apt updatepara actualizar la lista de software disponible. Luego puede buscar paquetes disponibles en la nueva fuente de software que acaba de agregar y/o instalarlos.

El comando sudo apt upgradees el equivalente en terminal a actualizar la lista de paquetes instalados utilizando la aplicación Actualizador de software. Esto es diferente del flujo de trabajo normal de agregar una nueva fuente de software, actualizar la lista de software disponible para incluir paquetes de la nueva fuente de software e instalar nuevos paquetes de la nueva fuente de software que acaba de agregar, por lo que es más conveniente. y menos confuso sudo apt updatey sudo apt upgradeson comandos separados.

También es menos confuso separarlo sudo apt updatey sudo apt upgradeporque cuando se ejecuta sudo apt updatecorrectamente habrá confirmado que tiene conectividad a Internet. Si hay un problema al ejecutarlo sudo apt upgradedespués, es más probable que sea un problema de administración de paquetes que un problema con la conectividad a Internet, y los resultados sudo apt upgradeproporcionarán pistas para diagnosticar y resolver el problema.

Respuesta4

Uno podría preguntarse por qué descargar el programa desde el repositorio formal de Ubuntu y aptluego instalarlo. ¿Qué diferencia habría si primero lo descarga y luego lo instala en lugar de descargarlo e instalarlo en una sola operación?

Bueno después de leer los comentarios y pensar más en esto entiendo que esto se debe a laFilosofía Unix, amodularfilosofía que básicamente dice "Cada programa hace una cosa": primero descargar, luego instalar --- cada acción con su propio programa dedicado.

información relacionada