371 votos

¿Cómo puedo instalar sólo las actualizaciones de seguridad desde la línea de comandos?

sudo apt-get upgrade instala todas las actualizaciones, no sólo las actualizaciones de seguridad. Sé que puedo usar el Gestor de Actualización para seleccionar sólo las actualizaciones de seguridad importantes, pero hay una manera de hacerlo desde la línea de comandos?

344voto

Arnold Zokas Puntos 4086

El paquete unattended-upgrades de proporciona funcionalidad de instalar las actualizaciones de seguridad automáticamente.

Usted podría utilizar esto, pero en lugar de la configuración de la parte automática se le puede llamar de forma manual. Para este caso, el siguiente debe hacer es:

sudo unattended-upgrade

Esto supone que el paquete está instalado por defecto, lo que probablemente es. Si no, basta con hacer:

sudo apt-get install unattended-upgrades

Véase también /usr/share/doc/unattended-upgrades/README.md.

134voto

ILIV Puntos 421

Un Par De Consejos Sobre Cómo Administrar Las Actualizaciones

Esto se aplica tanto para Debian y Ubuntu, pero más instrucciones específicas para Ubuntu siga.

• Mostrar únicamente las actualizaciones de seguridad:

apt-get -s dist-upgrade |grep "^Inst" |grep -i securi 

or

unattended-upgrade --dry-run -d

or

/usr/lib/update-notifier/apt-check -p

• Mostrar todos los paquetes actualizables

apt-get -s dist-upgrade | grep "^Inst"

• Instalar las actualizaciones de seguridad sólo

apt-get -s dist-upgrade | grep "^Inst" | grep -i securi | awk -F " " {'print $2'} | xargs apt-get install

• Comprobar qué servicios necesita ser reiniciado después de las actualizaciones de los paquetes. Averiguar lo que los paquetes que se va a actualizar de antemano y programar su reinicia/reinicios. El problema aquí es que, a menos de reiniciar un servicio aún puede ser utilizando una versión anterior de una biblioteca (la razón más común) que se ha cargado en la memoria antes de instalar un nuevo paquete que corrige una vulnerabilidad de seguridad o lo que sea.

checkrestart -v

Sin embargo, tenga en cuenta que checkrestart de mayo de lista de procesos que no deben necesariamente ser reiniciado. Por ejemplo, el servicio de PostgreSQL se puede mantener en su memoria de referencia a un ya eliminado xlog archivo, que no es una razón válida para reiniciar el servicio.

Por lo tanto, otra, más confiable, la forma de verificar esto usando el estándar utils es el siguiente pequeño script en bash que me robó descaradamente https://locallost.net/?p=233

Comprueba si los procesos en ejecución en un sistema que todavía están eliminados utilizando las bibliotecas de la virtud de conservar las copias de aquellos en la memoria activa.

ps xh -o pid \
| while read PROCID; do
       grep 'so.* (deleted)$' /proc/$PROCID/maps 2> /dev/null
       if [ $? -eq 0 ]; then
               CMDLINE=$(sed -e 's/\x00/ /g' < /proc/$PROCID/cmdline)
               echo -e "\tPID $PROCID $CMDLINE\n"
       fi
done

A veces Ubuntu muestra las actualizaciones de seguridad como si proceden de $release-repositorio de actualizaciones. Esto es lo que me dijo, porque los desarrolladores de Ubuntu empuje actualizaciones de seguridad a $release-repositorio de actualizaciones así como para acelerar su disponibilidad.

Si ese es el caso, se podría hacer lo siguiente para tratar únicamente las actualizaciones de seguridad:

sudo sh -c 'grep ^deb /etc/apt/sources.list |grep securi >> /etc/apt/sources.security.repos.only.list'

apt-get -s dist-upgrade -o Dir::Etc::SourceList=/etc/apt/sources.security.repos.only.list |grep "^Inst" | awk -F " " {'print $2'} | xarg apt-get install

46voto

Coincoin Puntos 12823

reemplace el /etc/apt/preferences con lo siguiente:

Package: *
Pin: release a=lucid-security
Pin-Priority: 500

Package: *
Pin: release o=Ubuntu
Pin-Priority: 50

ahora un simple apt-get upgrade será la actualización de todas las actualizaciones de seguridad solamente.

Por qué (y cómo) funciona esto: El archivo de preferencias de le pin todos los paquetes de la distribución ubuntu de prioridad de 50, lo que hará que sean menos deseables que ya los paquetes instalados. Los archivos procedentes de seguridad repositorio dado el incumplimiento (500) prioridad por lo que se consideran para la instalación. Esto significa que sólo los paquetes que se consideran más deseables que actualmente instalados son actualizaciones de seguridad. Más información acerca de la fijación en la apt_preferences manual.

Temporalmente se puede promover una cierta distribución de actualizaciones con la ... con el objetivo de liberación de la opción que trabaja con apt-get y aptitude (al menos) lo que permitirá que usted pin ciertas versiones para que sean elegibles para la actualización.

Si desea utilizar este para secuencias de comandos y no lo hacen por defecto para el sistema, usted puede colocar las reglas en alguna otra ubicación y el uso de este lugar:

 apt-get -o Dir::Etc::Preferences=/path/to/preferences_file upgrade

Esto hará que apt busque el archivo de preferencias de una ubicación no predeterminada.

El archivo de preferencias dado como un ejemplo no se aplica a los repositorios de terceros, si usted desea pin también puede utilizar apt-cache policy , para determinar fácilmente las claves necesarias para la fijación.

5voto

Jere.Jones Puntos 146

A pesar de su muy feo, puede desactivar todos los repositorios aparte de la seguridad del repositorio y, a continuación, hacer:

sudo apt-get update && sudo apt-get upgrade

Yo no lo he probado, pero en teoría lo único que haría sería buscar actualizaciones en la seguridad de la repo y aplicarlos...

4voto

fuser Puntos 21
  • apt-get update: acabo de leer las entradas en el repositorio de acuerdo a la lista existente. Necesarios para comprobar lo que es nuevo.
  • apt-get upgrade: todas las actualizaciones para los paquetes instalados sin los módulos del núcleo. La liberación de No actualizar.
  • apt-get dist-upgrade: todas las actualizaciones para los paquetes instalados también con los módulos del kernel. La liberación de No actualizar.
  • apt-get con el parámetro -s: de prueba solamente, no de los cambios realizados.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X