¿Cómo configuro mi Raspberry Pi para que se actualice / actualice automáticamente?

34

Actualmente, para actualizar las cosas en mi Raspberry Pi, tengo que escribir sudo apt-get updatey sudo apt-get upgrade. ¿Hay alguna manera de configurarlo para hacer esto automáticamente? Estoy ejecutando Raspbian Jessie.

Isaac Corbrey
fuente

Respuestas:

47

en lugar de un cron manual, puede instalarlo unattended-upgrades, lo cual es útil para garantizar que se instalen los núcleos más recientes. Está diseñado principalmente para la seguridad.

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

Hay algunos bits que se pueden ajustar / configurar, pero el valor predeterminado es correcto.

tedder42
fuente
55
Para mí, el valor predeterminado no estaba bien. No hacer nada: el /var/log/unattended-upgrades/unattended-upgrades.logarchivo notificado Allowed origins are: []por lo que básicamente no estaba tirando de las actualizaciones en Después de la actualización. /etc/apt/apt.conf.d/50unattended-upgradesPara incluir "origin=Raspbian,codename=${distro_codename},label=Raspbian";actualizaciones empezado a entrar.
Rabarberski
Mi inventario de huesos (a partir de septiembre de 2017) aparece en la 50unattended-upgradeslista "origin=Debian,codename=${distro_codename},label=Debian-Security";y parece encontrar paquetes relevantes correctamente. Por supuesto, ignora a muchos de ellos. No he configurado ninguna lista blanca o negra.
Jon V
3
El valor predeterminado 50unattended-upgradeses realmente estúpido y debe cambiarse para que esto funcione en Raspian. No existe Raspian-Security. Las actualizaciones de seguridad no están etiquetadas. Es importante añadir tanto "origin=Raspbian,codename=${distro_codename},label=Raspbian";y "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";a/etc/apt/apt.conf.d/50unattended-upgrades
user643011
23

En una terminal, escriba:

sudo su

Para acceder a un indicador de nivel raíz. Entonces corre:

crontab -e

Para comenzar a editar su crontab, una tabla de tareas para ejecutar automáticamente en un momento dado. Se abrirá en su editor de texto preferido. Modifíquelo para incluir las siguientes líneas:

0 7 * * 1 apt update && apt upgrade -y

Para actualizar y actualizar automáticamente sus aplicaciones a las 7 AM todos los lunes. Lea el crontab para ver cómo adaptarse a su gusto.

Comunidad
fuente
2
probablemente sea mejor poner los comandos en la misma línea &&ya que están relacionados y no hay razón para hacer 'actualizar' si falla 'actualizar'.
tedder42
en crontab 0significa domingo, pero en su código lo ha puesto 1para que el comando se ejecute el lunes, no el domingo
rav_kr
3
dist-upgradees mejor que upgrade, terminarás con dependencias rotas usando solo upgrade. Tampoco recibirá actualizaciones que requieran confirmaciones de diálogo. @ tedder42 señaló el método preferido por Debian (usando unattended-upgrades).
ryanpcmcquen
Te perdiste el segundo sudo después de agregar &&. Aunque de todos modos está en el crontab raíz.
user643011
1
No debería haber ninguno sudoallí; has cambiado a la rootcuenta usando su. El crontab del superusuario se ejecuta con privilegios de superusuario.
Ricitos de oro
8

Puede instalar y configurar cron-apt. Instálelo haciendo lo siguiente:

apt-get install cron-apt

el archivo de configuración principal es / etc / cron-apt / config

Una cosa que agrego a mi configuración es:

MAILON="always"

esto enviará un correo electrónico cada vez que se ejecute, no solo si encuentra un error.

Tenga en cuenta que la configuración predeterminada no instalará automáticamente las actualizaciones (hay algunas buenas razones para no hacerlo), pero puede configurarlo para que lo haga. Una ventaja de este programa sobre una solución cron simple es que le da control sobre lo que se instala (solo descargue nuevos paquetes, instale actualizaciones de seguridad o instale todas las actualizaciones).

Para configurar el tiempo de ejecución, edite el archivo /etc/cron.d/cron-apt.

Puedes encontrar más información y opciones de configuración aquí

El paquete incluye muy buena documentación, sin embargo, está comprimido. Para extraer el archivo:

  1. crear un directorio para trabajar - mkdir cron-apt_documentation
  2. cambiar al nuevo directorio - cd cron-apt_documentation
  3. copie el archivo comprimido: cp /usr/share/doc/cron-apt/README.gz. (tenga en cuenta el punto final)
  4. descomprima el archivo - gunzip README.gz
  5. leer el archivo - cat README | Menos
Steve Robillard
fuente
ozcat /usr/share/doc/cron-apt/README.gz | less
5

En su configuración predeterminada, unattended-upgradesestá roto en Raspbian Buster. No instalará actualizaciones cruciales para el kernel y otro software. Sus opciones son:

Opción recomendada:

sudo apt install unattended-upgrades

echo 'Unattended-Upgrade::Origins-Pattern {
//      Fix missing Rasbian sources.
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Raspbian,codename=${distro_codename},label=Raspbian";
        "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
};' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-raspbian

Para actualizaciones de seguridad más rápidas (pero menos estabilidad, ya que los paquetes no han sido aprobados para rasbian), puede agregar paquetes debian-security a apt:

echo 'deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-security.list

Probablemente necesitará instalar nuevas claves apt para el repositorio de Debian .

Otras opciones:

  • Trabaja alrededor de esto usando cron-apt: sudo apt install cron-apt

  • Otras formas de solucionarlo.

Se recomienda usar actualizaciones desatendidas y arreglar el paquete, ya que es el más adecuado para ese propósito. Cron-apt es su segunda mejor opción, porque también está diseñado para un propósito similar. No estoy seguro de que ninguno pueda reiniciar automáticamente su sistema después de una actualización del kernel. Las actualizaciones desatendidas generalmente tienen esa opción, pero no estoy seguro de que funcione con la solución anterior.

Dej
fuente