Entiendo que en apt
el comando update
, se 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, en su upgrade
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.
package-management
upgrade
updates
architecture
history-of-ubuntu
usuario9303970
fuente
fuente
alias
todos modos. La forma de Unix es que un comando hace una sola cosa de todos modos, por lo que la separación encaja mejor con la forma de Unix si los argumentos 'teológicos / filosóficos' son lo tuyo también.apt dist-upgrade
y presiono "n" para cancelar, entonces cambio de opinión, ahorraré ancho de banda porque no se 'actualizará' para volver a hacer miapt dist-upgrade
comando ... Incluso si 'dist-upgrade' hizo la actualización automáticamente, hay razones para 'actualizar' que no incluyen 'instalar', 'actualizar' o 'dist-actualizar', por lo que el comando 'actualizar' existiría de todos modos ..apt update
debería ejecutarse automáticamente cuando sea necesario.Respuestas:
Una actualización no es la única vez que puede necesitar
apt-get update
, y no quiero actualizar cada vez que simplemente quiero actualizar las listas de paquetes.Un
apt-get upgrade
trabajo bien puede depender deapt-get update
que se ejecute no hace mucho tiempo, pero entonces eso es cierto deapt-get remove
yapt-get install
, así! ¿Deberían implicar todo estoapt-get update
? ¡Por supuesto no! Como una simple cuestión de la eficiencia de los recursos y la limpieza del diseño, si una operación es común a muchas otras operaciones, debe ser eliminada.Por el contrario, dado que
apt-get remove
yapt-get install
puede depender también deapt-get update
ser puesto en funcionamiento recientemente con éxito hasta el final, ¿tiene sentido queapt-get upgrade
para cada ejecución deapt-get update
? No, una vez más, ya que lo que pretendo hacer puede entrar en conflicto con loapt-get upgrade
que hará.fuente
Cada vez que cambie las fuentes de software, debe ejecutar el comando
sudo apt update
para actualizar la lista de software disponible. Luego, puede buscar los paquetes disponibles en la nueva fuente de software que acaba de agregar y / o instalarlos.El comando
sudo apt upgrade
es el terminal equivalente a actualizar la lista de paquetes instalados utilizando la aplicación Software Updater. 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 esosudo apt update
ysudo apt upgrade
son comandos separados.También es menos confuso separarse
sudo apt update
ysudo apt upgrade
porque cuando ejecuta consudo apt update
éxito ha confirmado que tiene conectividad a Internet. Si hay un problema cuando se ejecutasudo 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 resultadossudo apt upgrade
proporcionarán pistas para diagnosticar y resolver el problema.fuente
La historia de la diferencia entre
update
yupgrade
es realmente genial.Hace mucho, mucho tiempo, digamos alrededor de 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 noventa. La banda ancha apenas comenzaba y el acceso telefónico seguía siendo una forma vital de conectarse. Los discos grandes solo tenían unos pocos cientos de MB. Apt era brillante y nuevo, radical y revolucionario, construido sobre dpkg.
La base de datos de apt, cuando lo piensas, es una maravilla: es una base de datos precisa al minuto de todo el software de todos los repositorios 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 para almacenar en las unidades pequeñas de la época. La actualización de su base de datos por teléfono puede llevar minutos con una buena conexión. Si bien eso es mucho tiempo ahora, buscar actualizaciones de paquetes manualmente (antes de apt) podría consumir horas .
En aquel entonces, las distribuciones se construían de manera diferente: sin integración continua, sin pruebas de humo (bueno, ¡no hay muchas pruebas en absoluto!), Las granjas de construcción apenas comenzaban. Las actualizaciones tuvieron que revertirse más a menudo que ahora. Muchos usuarios optaron por no actualizar ciertos paquetes por varias razones, o seleccionar solo ciertas actualizaciones hoy (para probar manualmente) y otras actualizaciones mañana.
Durante la posterior de 15 o tan años, las herramientas no han cambiado mucho, por lo que aún nos queda por separado
update
yupgrade
acciones. El flujo de trabajo del usuario ha evolucionado a medida que la fiabilidad de la distribución ha mejorado, y gran parte de la gestión de fuente / actualización / actualización que solía ser manual se ha ocultado lentamente detrás de las capas de automatización (software-updater
,unattended-upgrades
).Modernizar las herramientas del paquete de software es una de las razones por las que Snaps y AppImage y Flatpack han aparecido recientemente, pero ese es el próximo capítulo.
fuente
Hacen cosas separadas por muchas razones.
Un ejemplo es una pregunta que publiqué y respondí por mi cuenta: ¿Cómo se pueden eliminar los PPA usando la GUI? . En esta pantalla, queremos eliminar los PPA y no actualizar el software:
Después de eliminar un PPA, el software GUI se ejecuta automáticamente
sudo apt update
. Si fuera a eliminar un PPA de la línea de comando, debe ejecutarlosudo apt update
después de eliminar un PPA de la lista de fuentes.Sin una
apt update
función separada , no hay forma de eliminar un PPA.Otro ejemplo es que necesita ejecutar
sudo apt update
desde la línea de comandos para actualizar las fuentes. Luego puede averiguar qué se puede actualizar sin actualizar realmente:Si observa el resultado, puede decidir que un paquete dado "esté anclado" o "retenido" y no se actualice la próxima vez que se ejecute "sudo apt upgrade". Si hubiera un solo proceso de "actualización / actualización", perdería esta capacidad .
¡Sin un separado
apt update
no puedes ver qué se actualizaría!fuente
yum
ydnf
ejecuta automáticamente el equivalente de una actualización al realizar operaciones relevantes. Por ejemplo, el equivalente deapt list --upgradable
esyum check-update
, que actualiza la lista de paquetes si no se actualizó recientemente. Ciertamente es posible que esto funcione, como se puede ver en otros administradores de paquetes.sudo apt update
después de eliminar un repositorio.yum
/dnf
again, la operación de actualización es automática, por lo que una fuente deshabilitada se elimina automáticamente de la siguiente operación. De nuevo, algo que es completamente posible.yum
tampocodnf
están instalados. Instalar uno de ellos para reemplazar unapt update
aumentaría la sobrecarga del sistema y el tiempo de aprendizaje.Uno podría preguntarse por qué descargar el programa desde el repositorio formal de Ubuntu y
apt
luego instalarlo. ¿Qué diferencia harí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 sobre esto, entiendo que esto se debe a la filosofía de Unix , una filosofía modular que básicamente dice "Cada programa hace una cosa": primero descarga, luego instala --- cada acción con su propio programa dedicado .
fuente
En ninguna distribución, hay un comando de actualización-actualización, si está allí, no es más que alias predefinidos, como supongo. Esos alias también se pueden configurar fácilmente en Ubuntu, editando ~ / .bashrc.
La actualización se utiliza para resincronizar los repositorios y solucionar cualquier problema allí. Luego, cuando actualiza, en realidad actualiza los paquetes instalados. Pero cuando Dist-Upgrade, se actualiza por completo. En Arch Linux, hacen hincapié en la actualización completa con Syu. Puedes hacer lo mismo en Ubuntu. En la actualización completa, en realidad resuelve cualquier problema de dependencia del sistema, que pueda surgir en la actualización parcial.
Espero eso ayude. Disculpe el texto en bruto como escrito en el teléfono.
fuente
yum
ydnf
automáticamente hace el equivalente de unupdate
en la mayoría de las operaciones si los datos en caché son lo suficientemente antiguos. Vea, por ejemplo, la discusión sobre cómo