Cuando era un completo principiante y necesitaba instalar algo en mi máquina Ubuntu, Me conecté a Internet y escribí «Cómo instalar <nombre del software> en Ubuntu» y me llevó a una página con algunos comandos que se parecían a esto
sudo apt updatesudo apt upgradesudo apt install <software name>
¡Me alegré de poder escribir algo en la Terminal y que realmente funcionara! No presté mucha atención a lo que realmente escribí. Supongo que para los principiantes, ¡se siente como un hechizo mágico para conseguir instalar algo!
Con el paso del tiempo, muchas de mis búsquedas en Google me llevaron a utilizar patrones muy similares de comandos «apt update» y «apt upgrade» para instalar cosas.
En inglés sencillo, update y upgrade tienen casi el mismo significado, por lo que puede resultar confuso para un principiante entender lo que estos comandos realmente hacen. Veamos la diferencia entre estos 2 comandos y lo que sucede internamente una vez que se ejecutan estos comandos.
¿Cuál es la diferencia entre apt update y apt upgrade? «apt-get update» actualiza la lista de fuentes de paquetes para obtener la última lista de paquetes disponibles en los repositorios y «apt-get upgrade» actualiza todos los paquetes actualmente instalados en nuestro sistema Linux a sus últimas versiones.
Esta es la versión corta de la respuesta. Permítanme ampliar lo escrito anteriormente con algunos detalles más.
Vamos a echar un segundo vistazo a las siguientes palabras
«apt update» actualiza la lista de fuentes de paquetes para obtener la última lista de paquetes disponibles en los repositorios
Primero, tratemos de entender qué es apt y luego veamos qué contienen estas listas y por qué hay que actualizarlas cada cierto tiempo.
¿Qué es apt?
APT significa Advanced Packaging Tool que es una herramienta que se utiliza para gestionar el software en nuestro sistema y apt no es más que un comando utilizado para comunicar esta herramienta de gestión de software APT. Las palabras «gestionar software» se refieren simplemente a estas 5 tareas básicas
- instalar software
- eliminar software
- actualizar software
- actualizar el sistema y
- mantener la lista de software que está instalado en nuestro sistema
- El hardware
- El Kernel de Linux y
- Los paquetes de software que trabajan con el Kernel para darnos un Sistema Operativo completo
- Binarios o los programas ejecutables
- Archivos de metadatos que contienen la versión, dependencias, firmas y otra información relevante
- documentación y manuales
- ficheros de configuración
- repos oficiales de tu distro en particular (algunos tienen soporte garantizado mientras que otros no tienen soporte completo) y
- repos de terceros
Si eres un completo principiante te recomiendo encarecidamente que leas el artículo del siguiente enlace antes de continuar con este.
Introducción para principiantes a los gestores de paquetes de Linux: apt, yum, dpkg & rpm
También vale la pena mencionar que apt es sólo la versión mejorada de apt-get, que esencialmente hace que la experiencia del usuario sea un poco mejor al mantener las cosas más simples. La mayoría de las distribuciones que soportan apt también soportan apt-get, ya que la funcionalidad es casi la misma. apt-get todavía tiene algunas características que apt no tiene, lo que lo hace una buena opción para propósitos de scripting.
¿Qué son los paquetes en un sistema Linux?
Comencemos con esta pregunta más básica. El Sistema Operativo Linux se compone básicamente de 3 partes
El hardware, como sabemos, es la CPU, el HDD, el SSD, la RAM todos los componentes que conforman tu sistema.
El kernel actúa como interfaz entre el software y el hardware.
Los paquetes de software pueden ser software de aplicación como editores de texto, procesadores de texto, etc. o pueden ser las utilidades GNU como bash, cron, dd, etc., o pueden ser controladores de dispositivos para hablar con el hardware.
A continuación, vamos a echar un breve vistazo a lo que se incluye en estos «Paquetes»
Contenido de los paquetes
El contenido de los paquetes gestionados por estos gestores de paquetes implica los siguientes 4 componentes principales
Estos paquetes se almacenan en lugares llamados repositorios.
¿Qué son los repositorios?
Esta es la siguiente cuestión que debemos abordar. Los repositorios (o repos para abreviar) son básicamente un lugar donde se almacenan los paquetes verificados para facilitar su recuperación e instalación. Pueden estar en línea como el repositorio de APT o pueden estar en una carpeta local o en un DVD donde tengas una colección especial de software que necesites.
Puede tener varios repositorios desde los que puede descargar e instalar estos paquetes. Estos pueden ser
¿Qué es una lista de fuentes de paquetes?
Es una lista de paquetes disponibles para instalar en una distro determinada. Esta lista es mantenida por su máquina Linux. La información de esta lista suele incluir las ubicaciones de varios repositorios desde los que se puede instalar el software. Estas ubicaciones suelen estar en Internet.
Esta lista suele estar almacenada en el directorio /etc/apt. Puede ver y editar esta lista de la misma manera que puede ver cualquier otro archivo de texto utilizando uno de sus editores de texto favoritos como gedit o nano o vim.
También puede ver esta lista escribiendo el siguiente comando en el terminal de Linux
cat /etc/apt/sources.list
La captura de pantalla siguiente muestra la salida del comando anterior.
Como puedes ver en la captura de pantalla de arriba, esta lista contiene básicamente algunas URLs a localizaciones en internet. Desde estas ubicaciones, se puede recopilar más información como
- las últimas actualizaciones de corrección de errores
- la última versión de cada paquete disponible en el repo principal
- la última versión de cada paquete en los repos
Puedes usar el siguiente comando para hacer cambios en esta lista
sudo apt edit-sources
¡Recomiendo no editarla a menos que estés seguro de lo que haces!
Si una determinada URL tiene «#» delante, será ignorada como comentarios. Vamos a visitar uno de estos repos para ver qué contiene realmente. Puedes probar a ir a este enlace. La captura de pantalla de abajo muestra su contenido.
Al descargar y extraer el archivo Sources.gz se obtiene un archivo llamado «Source» sin extensión. Puedes abrirlo con cualquier editor de texto y revela un archivo enorme, ¡de más de 28.000 líneas!
Al descargar y extraer el archivo Sources.gz se obtiene un archivo llamado «Source» sin extensión. Puedes abrirlo con cualquier editor de texto y revela un archivo enorme, ¡de más de 28.000 líneas!
La captura de pantalla anterior muestra uno de los paquetes llamado zsh (una alternativa de shells bash), y la información que contiene. ¡Como podéis ver contiene información como
- la última versión del software
- las dependencias de este software en particular, etc.
Así que básicamente lo que estamos haciendo cuando introducimos este comando «apt update» es que estamos pidiendo a nuestra máquina Linux que vaya a buscar estas listas y copie la última versión de las mismas y las ponga en su máquina local!
Ahora veamos el comando «apt upgrade»
«apt upgrade» actualiza todos los paquetes actualmente instalados en nuestro sistema Linux a sus últimas versiones.
Así que cuando introducimos el comando «apt upgrade» le decimos a nuestra máquina Linux que compare las versiones de todos los paquetes actualmente instalados con los de la lista que acabamos de descargar a través de «apt update» y que actualice los paquetes que están atrasados en cuanto a número de versión!
Por ejemplo, consideremos esta situación. Supongamos que todos los paquetes del sistema están actualizados con sus números de versión iguales a los presentados en la lista, excepto uno, llamémoslo «Paquete-X», que tiene un número de versión 2.4 mientras que la lista dice que está disponible la versión 3.0. En este escenario, una vez que introducimos el comando «apt upgrade», su máquina sólo actualiza este «Paquete-X» a la versión 3.0. Espero que hayas entendido el punto!
¿Por qué estos 2 comandos están separados si deben usarse juntos todo el tiempo?
¡La respuesta es que hay situaciones en las que no necesitamos usarlos juntos! Tal vez usted necesita para instalar un software específico recién lanzado y dejar el resto del sistema sin tocar. En ese caso, basta con introducir los siguientes comandos
sudo apt updatesudo apt install <package name>
¡Vea cómo nos saltamos el comando de actualización!
Si realmente necesitas actualizar todos los paquetes de tu sistema en una sola línea de comando, también puedes introducir algo como
sudo apt update && sudo apt upgrade
¡Esto se adelantará y hará ambas cosas!
¿Cómo actualizar el Kernel de Linux?
¡El Kernel es una parte especial del SO y estropearlo puede significar estropear todo el sistema! De ahí que tengamos un comando especial para actualizarlo
sudo apt full-upgrade
¡El comando anterior básicamente actualizará todo en su sistema, todos los paquetes y el kernel a las últimas versiones soportadas por sus repositorios!
¡Lo hace de una manera inteligente para que elimine automáticamente los paquetes innecesarios sobrantes para liberar su disco duro como un bono!
¿Cómo actualizar a la última versión de Ubuntu?
Por ejemplo, si actualmente está utilizando Ubuntu 18.04 y Ubuntu 19.04 es la última versión de Ubuntu y desea ser actualizado a 19.04 entonces el comando a utilizar es
sudo do-release-upgrade
Esto transformará completamente tus paquetes y kernel a la última versión!
Y con esto, concluyo este artículo!
Espero que os haya gustado este artículo y hayáis aprendido algo útil.