¿Cómo puedo mantener mi Raspbian "Wheezy" actualizado?

45

¿Existe algún tipo de herramienta de actualización para mi paquete Raspbian Debian 7 (Wheezy)?

Instalé phpy lighttpdquiero mantenerlos actualizados automáticamente cuando se encuentran errores.

Michel
fuente

Respuestas:

48

Debe ingresar algunos comandos en la línea de comandos. Ante todo:

apt-get update  

(esto actualizará las fuentes de software)

apt-get upgrade  

(esto actualizará todo a la última versión)

recantha
fuente
¿Eso es todo? ¿Se actualizará todo lo que instalé a través de apt-get, incluido el sistema operativo en sí?
Michel
1
El "sistema operativo en sí" es el núcleo de Linux, sí. La primera vez que haga esto probablemente habrá un montón de actualizaciones ya que el repositorio generalmente contendrá paquetes más nuevos que la imagen de instalación.
Ricitos de oro
Todo lo que vino del repositorio apto, eso es. Lo que normalmente es todo excepto sus datos, pero podría no incluir, por ejemplo, el kernel o el gestor de arranque en este caso. Si ha descargado cosas de otro lugar o ha creado algunas propias, eso obviamente no se puede actualizar
automáticamente
Sí, eso es todo lo que hay que hacer. Es posible que tenga que responder la pregunta ocasional sí / no para piezas de software más grandes, pero básicamente, es así de fácil.
retrantha
1
@Michel: A veces, "el sistema operativo Linux" se conoce más ampliamente como "GNU / Linux", que incluiría el núcleo ("Linux" en sentido estricto) y los fundamentos del espacio del usuario, como la biblioteca C, el shell, etc., que están bajo El paraguas GNU. Con Windows, todas estas partes están integradas de manera inmutable, mientras que el mundo de Linux es más heterogéneo y modular, por lo que puede haber cierta confusión. Hubiera tomado "el sistema operativo" aquí para referirme a la distribución debian wheezy (incluido el kernel), pero parece que te refieres a algo más específico.
Ricitos de oro
41

El unattended-upgradespaquete es la forma de automatizar la actualización del sistema operativo en estas distribuciones de la familia Debian. Siga las instrucciones que se encuentran aquí .

Básicamente tienes que instalar el paquete:

sudo apt-get install unattended-upgrades

y agregue a /etc/apt/apt.conf.d/10periodiclo siguiente:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Además (dado que parece que la transferencia del paquete no ha sido perfecta), cambie la siguiente línea en la primera sección de /etc/apt/apt.conf.d/50unattended-upgrades:

        "origin=Debian,archive=stable,label=Debian-Security";

a

//        "origin=Debian,archive=stable,label=Debian-Security";
        "origin=Raspbian";

Ahora su sistema se mantiene actualizado automáticamente.

base
fuente
3
El último paso (intercambio origin=Debian) ya no es necesario en la última distribución de Raspbian.
Dolph
En Raspbian Wheezy, hoy, parece ser necesario, ya que, por ejemplo:Checking: openssl (["<Origin component:'main' archive:'oldstable' origin:'Raspbian' label:'Raspbian' site:'mirrordirector.raspbian.org' isTrusted:True>"])
astorije
Vaya, lo he leído mal. Sí, origin=Raspbiantodavía es necesario en el archivo de configuración, pero no, ya no tienes que hacerlo tú mismo, lo siento ...
astorije
26

Dist:

 $ sudo apt-get update
 $ sudo apt-get upgrade 

Rpi-update por primera vez: instala git y certificaciones para reach github.

$ sudo apt-get install ca-certificates
$ sudo apt-get install git-core
$ sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update
$ sudo chmod +x /usr/bin/rpi-update

actualice el firmware

$ sudo rpi-update
$ sudo ldconfig
$ sudo reboot

Rpi-actualización después de:

$ sudo rpi-update
$ sudo ldconfig
$ sudo reboot

rpi-update

István Simon
fuente
5

rpi-update ahora se puede obtener directamente a través de apt-get, por lo que no sería necesario tratar con Wget . Así que aquí está la forma actualizada:

Dist:

 $ sudo apt-get update
 $ sudo apt-get upgrade 

Necesita reiniciar la Raspberry Pi ahora, de lo contrario no se usaría el nuevo núcleo.

Rpi-update por primera vez: instale Git y certificaciones para llegar a GitHub .

$ sudo apt-get install ca-certificates
$ sudo apt-get install git-core
$ sudo apt-get install rpi-update

Actualice el firmware

$ sudo rpi-update
$ sudo reboot

rpi-update

BastianW
fuente
3

También puede escribir un pequeño script con sus pasos apt-get allí y ejecutarlo en un horario una vez al día / como quiera que quiera, eso es lo que he hecho.

Cómo configurar un trabajo cron en el Pi:

http://www.wexoo.net/20130406/running-cron-jobs-on-raspberry-pi-in-raspbmc

Cómo escribir un script bash:

https://www.linux.com/learn/tutorials/284789-writing-a-simple-bash-script-

Mi guión fue simplemente un simple

apt-get update
apt-get upgrade -yes
apt-get dist-upgrade -yes
apt-get clean

y tuve que registrar el resultado en un archivo >>al final de cada línea, por ejemplo apt-get update >> autoupdate.txt.

¡Sin embargo, es discutible lo buena idea que es hacer esto!

Steji
fuente
Cualquier posibilidad de que pueda compartir el script y / o información sobre cómo hacer estos eventos cronometrados. Me imagino que si el OP supiera cómo hacer esto, no habría publicado.
Phill Healey
1

El sitio Art of Web tiene una guía maravillosa para Debian Wheezy que solo tuve que modificar una línea para que funcione en mi RPi de prueba. El enlace lo llevará a su guía cron-apt; que se ha explicado a continuación con modificaciones para el sistema RPi repos explicado.

Instalar cron-apt

sudo apt-get install cron-apt

La configuración predeterminada, las acciones y las configuraciones personalizadas se pueden encontrar con

ls -hal /etc/cron-apt/config

ls -hal /etc/cron-apt/action.d/

ls -hal /etc/cron-apt/config.d/

Agregue lo siguiente al /etc/cron-apt/configarchivo sudo tee -apara permitir que se envíen correos electrónicos con información detallada sobre las acciones tomadas durante la actualización automatizada

echo 'MAILON="output"' | sudo tee -a /etc/cron-apt/config

echo 'DEBUG="verbose"' | sudo tee -a /etc/cron-apt/config

El registro se volca a: /var/log/cron-apt/log

Cree un nuevo archivo de acción para actualizar solo los paquetes relacionados con la seguridad con el comando táctil y agregue una línea con el comando sudo tee; otros se descargarán pero esperarán a que sys-admin instale actualizaciones que no sean de seguridad. Alertas de actualizaciones y resultados serán enviadas por correo electrónico al usuario root o sys-admin para una revisión adicional y / o acciones a tomar.

sudo touch /etc/cron-apt/action.d/5-security

echo 'upgrade -y -o APT::Get::Show-Upgraded=true' | sudo tee -a /etc/cron-apt/action.d/5-security

Cree un nuevo archivo de configuración para usar la acción anterior; usando específicamente /etc/apt/sources.list.d/security.listcomo la ruta para las actualizaciones de seguridad. La ruta del archivo puede ser diferente en su sistema si no está completamente basada en Debian Linux; RPi ahora usa Mirror Director, por lo que /etc/apt/sources.listdebe usarse en su lugar, sin embargo, esto no se puede recomendar para servidores de nivel de producción porque también actualizará actualizaciones que no sean de seguridad.

sudo touch /etc/cron-apt/config.d/5-security

echo 'OPTIONS="-o quiet=1 -o APT::Get::List-Cleanup=false -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list -o Dir::Etc::SourceParts=\"/dev/null\""' | sudo tee -a /etc/cron-apt/config.d/5-security

Espere un día para cron-aptactualizar su sistema y verifique los registros locales con lo siguiente para ver qué se actualizó mientras dormía

sudo cat /var/log/cron-apt/log

Esto se ha probado en un RPi para que funcione para actualizar cada paquete, así como en una PC Unbuntu que solo actualiza los paquetes relacionados con la seguridad. Así que creo que es una de las opciones más portátiles disponibles. El otro paquete para actualizaciones automáticas, sugerido por la base (gracias, lo unattended-upgradesprobaré a continuación), parece otra gran opción para automatizar el proceso de actualización.

S0AndS0
fuente