Ubuntu: actualizar paquetes específicos o actualizaciones de seguridad
Para actualizar solo paquetes específicos instalados en Ubuntu, usa apt install --only-upgrade PACKAGE. Para seleccionar actualizaciones de seguridad, verifica las fuentes permitidas en unattended-upgrades, simula la actualización y luego aplícala. Dependiendo de las dependencias o configuraciones de los paquetes seleccionados, otros paquetes también pueden cambiarse junto con ellos.
Cosas a verificar antes de actualizar
apt update obtiene la lista de paquetes del repositorio pero no actualiza los paquetes instalados. La instalación y la actualización son tareas separadas. Antes de aplicar la actualización, verifique los métodos de respaldo y recuperación, el espacio en disco y las posibles interrupciones del servicio, y programe el tiempo de operación en los servidores de producción.
sudo apt update
apt list --upgradable
Si el primer comando falla, resuelva los errores del repositorio y de red, luego actualice la lista nuevamente. El segundo comando muestra los paquetes que actualmente se pueden actualizar, pero esto no significa que todos los elementos de la lista sean actualizaciones de seguridad.
Actualizando un Paquete Específico
Los comandos a continuación usan curl como ejemplo, asumiendo que ya está instalado. Reemplácelo con el nombre real del paquete instalado que desea actualizar. Primero, verifique la versión candidata, la fuente y los cambios esperados mediante APT.
apt-cache policy curl
sudo apt-get -s install --only-upgrade curl
-s es una ejecución simulada que no realiza la instalación. --only-upgrade no instalará de manera nueva el paquete especificado si no está ya instalado. Sin embargo, puede sugerir instalar, actualizar o eliminar otros paquetes necesarios para la actualización del paquete objetivo, así que revise todo el resultado. La versión deseada puede no ser seleccionada dependiendo de paquetes retenidos, dependencias y la prioridad del repositorio.
Si los cambios esperados son apropiados, aplíquelos con el siguiente comando. Reconfirme la lista de instalaciones, actualizaciones, eliminaciones y requisitos de espacio sugeridos por APT, y si difiere de lo que espera, deténgase en el paso de confirmación.
sudo apt install --only-upgrade curl
Después de la finalización, verifique la versión instalada con apt-cache policy curl y confirme que el servicio o la aplicación correspondiente funcione correctamente. Dependiendo del paquete, puede ser necesario reiniciar el servicio o reiniciar el sistema.
Verifique las fuentes permitidas para las actualizaciones de seguridad
A diferencia del nombre, unattended-upgrade no siempre selecciona únicamente actualizaciones de seguridad. Dependiendo de las fuentes permitidas configuradas, también pueden instalarse otras actualizaciones. Primero, verifique si el paquete está instalado y la configuración actual de APT.
dpkg-query -W unattended-upgrades
apt-config dump | grep -E 'Unattended-Upgrade::(Allowed-Origins|Origins-Pattern|Automatic-Reboot|Remove-)'
apt-cache policy
Si no está instalado, puede instalarse con sudo apt install unattended-upgrades. Después de la instalación, el programa de actualización automática puede activarse, así que verifique la política del servidor y la configuración existente de /etc/apt/apt.conf.d/20auto-upgrades. Compare la información del repositorio de apt-cache policy con la lista permitida, y también verifique la configuración para reinicio automático o eliminación innecesaria de paquetes. La lista puede combinar valores de múltiples archivos de configuración.
Si se permiten fuentes fuera del alcance de seguridad, como -updates o repositorios externos, debe ajustar la configuración según la política organizacional antes de ejecutar el comando a continuación. El repositorio de seguridad ESM de Ubuntu Pro y los repositorios externos pueden ser fuentes separadas, por lo que debe verificar el alcance de soporte y las fuentes para asegurarse de que no se pierdan los parches de seguridad requeridos. Puede consultar las fuentes predeterminadas y la configuración de reinicio en el documentación de actualizaciones automáticas de Ubuntu.
Ejemplo permitiendo solo los repositorios de seguridad generales de Ubuntu
El siguiente es un ejemplo de configuración que solo permite los repositorios de seguridad estándar de Ubuntu. No incluye ESM ni repositorios externos, por lo que no lo aplique tal cual en entornos que requieran esas actualizaciones. Dado que esta es una configuración persistente que también afecta las actualizaciones automáticas, registre sus políticas existentes y asegúrese de que no entre en conflicto con otras herramientas de gestión de configuración antes de continuar.
En /etc/apt/apt.conf.d/, cree un nuevo archivo llamado 99local-security-only sin sobrescribir un archivo existente, y guarde el siguiente contenido. La lista de APT conserva las entradas existentes cuando simplemente se agregan nuevas, por lo que primero borre ambas listas. #clear es una directiva de configuración de APT, no un indicador de shell.
#clear Unattended-Upgrade::Allowed-Origins;
#clear Unattended-Upgrade::Origins-Pattern;
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Otros archivos pueden volver a agregar fuentes más tarde, así que después de guardar, verifique las fuentes realmente permitidas usando el apt-config dump anterior y los resultados de la ejecución en seco. El repositorio de seguridad debe estar activo, y si las dependencias necesarias no se pueden obtener de las fuentes permitidas, algunos paquetes pueden quedar pendientes. Para revertir esta configuración, solo elimine el archivo creado por esta operación y verifique nuevamente la configuración y los resultados de la ejecución en seco.
Ejecución en seco y verificación posterior a la aplicación
El siguiente comando se utiliza para comprobar las fuentes permitidas y los paquetes que se procesarán sin instalar realmente las actualizaciones. Revise la salida y los registros para detectar fuentes inesperadas, elementos pendientes y errores.
sudo unattended-upgrade --dry-run --debug
La ejecución de la simulación no garantiza los resultados del trabajo real. Revise la fuente y el destino, las políticas de reinicio/eliminación automáticas, y ejecute el siguiente comando solo durante una ventana de mantenimiento adecuada.
sudo unattended-upgrade --verbose
Después de la finalización, verifique los registros en /var/log/unattended-upgrades/ y el estado de los servicios afectados, y si es necesario, reinicie en el momento planificado. Comentar los repositorios en sources.list puede pasar por alto otros archivos fuente y dependencias, por lo que este método no se utiliza aquí. Para opciones y rutas de registros, consulte Manual de unattended-upgrade de Ubuntu.




