Entiendo que en apt
, el comando update
actualiza la lista de paquetes disponibles, pero no actualiza el software que ya estaba instalado desde estos paquetes.
También entiendo que upgrade
actualiza cualquier software que ya instalé desde un paquete que actualicé update
como se describe anteriormente.
¿Cuál fue la razón por la que los desarrolladores de Ubuntu/Debian hicieron esta división update
y upgrade
en 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 update
y upgrade
es 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 update
acciones 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 upgrade
pozo que funcione puede depender de apt-get update
que se haya explotado no hace mucho, ¡pero eso también se aplica a apt-get remove
y apt-get install
tambié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 remove
y apt-get install
también puede depender de apt-get update
que se haya ejecutado recientemente para finalizar con éxito, ¿tiene sentido hacerlo apt-get upgrade
para 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 upgrade
haré.
Respuesta3
Siempre que cambie las fuentes de software, debe ejecutar el comando sudo apt update
para 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 upgrade
es 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 update
y sudo apt upgrade
son comandos separados.
También es menos confuso separarlo sudo apt update
y sudo apt upgrade
porque cuando se ejecuta sudo apt update
correctamente habrá confirmado que tiene conectividad a Internet. Si hay un problema al ejecutarlo sudo apt upgrade
despué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 upgrade
proporcionará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 apt
luego 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.