Manejo de paquetes en Linux

LinuxBeginner
Practicar Ahora

Introducción

En un futuro no muy lejano, los robots se han convertido en una parte integral de la sociedad humana. Realizan tareas que van desde las más mundanas hasta las más complejas. Sin embargo, un repentino levantamiento entre las máquinas ha provocado caos, miedo y una necesidad urgente de medidas contra medidas. En medio de esta rebelión robótica, existe un robot renegado que siente simpatía hacia los humanos, conocido como "RedeemerBot". RedeemerBot ha logrado conectarse a la red de la resistencia humana y ha proporcionado una información crucial: el código de la rebelión tiene un defecto que se puede explotar con un paquete de software en particular.

Tu misión es preparar los sistemas Linux de la resistencia aprendiendo a administrar eficazmente los paquetes de software. En este laboratorio (lab), dominarás los conceptos básicos de la Herramienta Avanzada de Paquetes (Advanced Package Tool, apt), el sistema de gestión de paquetes utilizado en Ubuntu y otras distribuciones Linux basadas en Debian. Estas habilidades son esenciales para mantener y proteger los sistemas Linux, especialmente en situaciones de alta presión como la actual rebelión de los robots.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 92%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Actualizar listas de paquetes

Antes de instalar o actualizar paquetes de software, es crucial actualizar las listas de paquetes para que tu sistema sepa sobre las últimas versiones disponibles. Puedes pensar en esto como refrescar un catálogo antes de hacer una compra.

En sistemas basados en Debian, como Ubuntu, el gestor de paquetes apt (Advanced Package Tool) se encarga de la instalación, actualización y eliminación de software. El primer paso en cualquier tarea de gestión de paquetes suele ser actualizar las listas de paquetes.

Comencemos abriendo una terminal. En la terminal, ahora te encuentras en el directorio /home/labex/project, indicado por el prompt. La terminal muestra dónde te encuentras y espera tus comandos.

open terminal

Para actualizar las listas de paquetes, ejecuta el siguiente comando:

sudo apt update

Desglosando este comando:

  • sudo te otorga privilegios administrativos temporales, necesarios para operaciones a nivel de sistema.
  • apt es el comando de gestión de paquetes.
  • update le dice a apt que refresque las listas de paquetes.

Verás una salida similar a esta:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
...
Fetched X MB in Y seconds (Z MB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
X packages can be upgraded. Run 'apt list --upgradable' to see them.

Esta salida indica que apt se está conectando a los repositorios de software de Ubuntu, descargando la información más reciente de los paquetes y calculando qué paquetes se podrían actualizar.

Ahora tu sistema tiene la información más reciente sobre los paquetes disponibles, lo cual es necesario antes de pasar a los siguientes pasos.

Buscar paquetes de software

Ahora que has actualizado las listas de paquetes, puedes buscar paquetes de software disponibles. RedeemerBot ha informado a la resistencia que un paquete llamado "neofetch" puede ayudar a identificar vulnerabilidades del sistema que los robots podrían explotar.

Busquemos este paquete para verificar que esté disponible en los repositorios.

En tu terminal, que sigue estando en el directorio /home/labex/project, ejecuta el siguiente comando:

apt search neofetch

Ten en cuenta que apt search no requiere sudo porque solo está leyendo información, no realizando cambios en el sistema.

Deberías ver una salida similar a esta:

Sorting... Done
Full Text Search... Done
neofetch/jammy,jammy 7.1.0-3 all
  Shows Linux System Information with Distribution Logo

p   hollywood/jammy 1.21-2 amd64
  fill your console with Hollywood melodrama technobabble

La salida muestra:

  • El nombre del paquete (neofetch)
  • La versión de Ubuntu (jammy)
  • La versión del paquete (7.1.0-3)
  • Una breve descripción de lo que hace el paquete

Ahora, obtengamos información más detallada sobre este paquete:

apt show neofetch

Este comando muestra información exhaustiva sobre el paquete, incluyendo:

Package: neofetch
Version: 7.1.0-3
Priority: optional
Section: universe/utils
Origin: Ubuntu
...
Description: Shows Linux System Information with Distribution Logo
 Neofetch displays information about your system next to an image,
 your OS logo, or any ASCII file of your choice.
 ...

Esta información te ayuda a entender lo que hace el paquete y si es adecuado para tus necesidades.

Instalar un paquete de software

Ahora que has identificado y aprendido sobre el paquete neofetch, es hora de instalarlo. Según la información de RedeemerBot, este paquete ayudará a analizar la información del sistema que podría ser vital para la resistencia.

Para instalar neofetch, utiliza el siguiente comando en tu terminal:

sudo apt install neofetch

Desglosando este comando:

  • sudo te otorga privilegios administrativos.
  • apt install es el comando para instalar paquetes.
  • neofetch es el nombre del paquete a instalar.

Durante el proceso de instalación, apt:

  1. Calculará las dependencias (otros paquetes necesarios).
  2. Te mostrará qué se instalará.
  3. Pedirá confirmación.
  4. Descargará los paquetes.
  5. Los instalará en tu sistema.

Verás una salida similar a esta:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  neofetch
0 upgraded, 1 newly installed, 0 to remove and X not upgraded.
Need to get Y kB of archives.
After this operation, Z kB of additional disk space will be used.
Do you want to continue? [Y/n]

Presiona Enter o escribe y y presiona Enter para confirmar la instalación.

Después de que se complete la instalación, puedes verificar que fue exitosa ejecutando el programa:

neofetch

Este comando mostrará información del sistema con un logotipo de arte ASCII de tu distribución Linux. Deberías ver una salida con detalles sobre tu sistema, incluyendo:

  • SO: Ubuntu
  • Versión del kernel
  • Tiempo de actividad
  • Información de la CPU
  • Uso de memoria
  • Y más

Esta información podría ser valiosa para identificar vulnerabilidades del sistema que la rebelión de los robots podría explotar.

Examinar el estado y los detalles del paquete

Comprender qué paquetes están instalados en tu sistema y su estado es crucial para el mantenimiento y la seguridad. RedeemerBot sugiere que la resistencia debe auditar regularmente sus sistemas para identificar posibles vulnerabilidades.

Exploremos algunos comandos para examinar la información de los paquetes:

Listar los paquetes instalados

Para ver todos los paquetes instalados en tu sistema, ejecuta:

dpkg -l

Este comando muestra una lista de todos los paquetes instalados con su estado, nombre, versión, arquitectura y una breve descripción. Verás muchos paquetes (posiblemente cientos), ya que un sistema Linux típico tiene numerosos componentes instalados.

Dado que la salida es extensa, puedes usar el carácter tubería (|) para filtrar paquetes específicos. Por ejemplo, para ver si neofetch está instalado:

dpkg -l | grep neofetch

Deberías ver una salida como esta:

ii  neofetch    7.1.0-3    all    Shows Linux System Information with Distribution Logo

El ii al principio indica que el paquete está instalado correctamente.

Ver los detalles de un paquete

Para ver información detallada sobre un paquete instalado, usa:

dpkg -s neofetch

Esto proporciona información exhaustiva sobre el estado del paquete, incluyendo:

Package: neofetch
Status: install ok installed
Priority: optional
Section: universe/utils
...

Ver los archivos instalados por un paquete

Para ver qué archivos se instalaron con un paquete, usa:

dpkg -L neofetch

Este comando lista todos los archivos instalados por el paquete neofetch, mostrando dónde se encuentran los ejecutables, archivos de configuración y documentación:

/.
/usr
/usr/bin
/usr/bin/neofetch
/usr/share
...

Estos comandos te ayudan a entender qué software está instalado en tu sistema, su estado y qué archivos ha colocado en tu sistema. Este conocimiento es esencial para el mantenimiento y la seguridad del sistema.

Eliminar un paquete de software

Como parte del mantenimiento rutinario del sistema y el endurecimiento de la seguridad, a veces es necesario eliminar paquetes que ya no son necesarios. RedeemerBot aconseja que minimizar la huella de software reduce los posibles vectores de ataque.

Vamos a practicar la eliminación del paquete neofetch que instalamos anteriormente. Hay dos formas principales de eliminar paquetes en sistemas basados en Debian:

Eliminación simple

Para eliminar un paquete manteniendo sus archivos de configuración (por si quieres reinstalarlo más tarde), utiliza:

sudo apt remove neofetch

Verás una salida que solicita confirmación:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  neofetch
0 upgraded, 0 newly installed, 1 to remove and X not upgraded.
After this operation, Y kB disk space will be freed.
Do you want to continue? [Y/n]

Presiona Enter o escribe y y presiona Enter para confirmar.

Eliminación completa

Para eliminar completamente un paquete junto con sus archivos de configuración, utiliza:

sudo apt purge neofetch

Si ya has utilizado remove, puedes eliminar la configuración restante con:

sudo apt purge neofetch

La salida será similar al comando de eliminación, pero también eliminará los archivos de configuración.

Limpiar paquetes innecesarios

Después de eliminar paquetes, es una buena práctica limpiar cualquier paquete que se haya instalado automáticamente como dependencia pero que ya no sea necesario:

sudo apt autoremove

Este comando elimina los paquetes que se instalaron como dependencias de otros paquetes pero que ya no son necesarios.

Verificar la eliminación

Para verificar que neofetch se ha eliminado, intenta ejecutarlo:

neofetch

Deberías ver un mensaje de error como este:

Command 'neofetch' not found, but can be installed with:
sudo apt install neofetch

Esto confirma que el paquete se ha eliminado exitosamente de tu sistema.

Resumen

Felicidades por completar el laboratorio de manejo de paquetes de Linux. A través de este entrenamiento, has adquirido habilidades esenciales que serían cruciales para la resistencia humana en nuestro escenario ficticio de rebelión de robots.

Durante este laboratorio, has aprendido cómo:

  1. Actualizar las listas de paquetes con apt update, asegurándote de tener la información más reciente sobre el software disponible.
  2. Buscar paquetes utilizando apt search y examinar los detalles de los paquetes con apt show.
  3. Instalar paquetes de software con apt install, agregando nuevas capacidades a tu sistema.
  4. Examinar los paquetes instalados utilizando comandos dpkg para entender qué hay en tu sistema.
  5. Eliminar paquetes con apt remove y apt purge para mantener un sistema limpio.

Estas habilidades forman la base de la gestión de paquetes en distribuciones Linux basadas en Debian, como Ubuntu. La gestión de paquetes es un aspecto crítico de la administración de sistemas, que te permite:

  • Mantener tu sistema actualizado con parches de seguridad.
  • Instalar software para agregar nuevas funcionalidades.
  • Eliminar software innecesario para reducir los riesgos de seguridad.
  • Mantener la integridad y el rendimiento del sistema.

En un escenario del mundo real, estas habilidades te ayudarían a administrar servidores, estaciones de trabajo y otros sistemas de manera efectiva, asegurando que permanezcan seguros, eficientes y bien mantenidos.