如何将Raspberry Pi设置为自动更新/升级?


Answers:


47

您可以安装unattended-upgrades,而不是手动的cron,这对于确保安装了最新的内核很有用。它主要是为安全性而设计的。

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

有一些位可以调整/配置,但是默认值可以。


5
对我来说,默认设置不是很好。它什么也没做:/var/log/unattended-upgrades/unattended-upgrades.log文件报告的Allowed origins are: []基本上没有任何更新。在进行更新/etc/apt/apt.conf.d/50unattended-upgrades以包括"origin=Raspbian,codename=${distro_codename},label=Raspbian";更新开始之后
。– Rabarberski

我的骨头库存(截至2017年9月)50unattended-upgrades列出了"origin=Debian,codename=${distro_codename},label=Debian-Security";,并且似乎可以正确找到相关的包裹。当然,它忽略了其中许多。我尚未设置任何白名单或黑名单。
乔恩五世

3
默认50unattended-upgrades确实是愚蠢的,必须对此进行更改才能在Raspian上运行。没有Raspian-Security。安全更新未标记。同时添加这一点很重要"origin=Raspbian,codename=${distro_codename},label=Raspbian";,并"origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";/etc/apt/apt.conf.d/50unattended-upgrades
user643011

23

在终端中,键入:

sudo su

访问根级提示。然后,运行:

crontab -e

要开始编辑crontab,需要在给定时间自动运行的任务表。它将在您首选的文本编辑器中打开。对其进行修改以包括以下几行:

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

要在每个星期一的上午7点自动更新和升级您的应用。在crontab上阅读以了解如何根据自己的喜好进行调整。


2
最好将命令放在同一行,&&因为它们是相关的,并且如果“更新”失败,则没有理由进行“升级”。
tedder42

在crontab中0表示星期日,但是在您的代码中已经放置1了该命令,因此该命令将在星期一而不是星期日运行
rav_kr 2015年

3
dist-upgrade比更好upgrade,您最终只能使用来破坏依赖upgrade。您也不会绕过需要对话框确认的更新。@ tedder42指出了Debian首选的方法(使用unattended-upgrades)。
ryanpcmcquen

添加&&后,您错过了第二个sudo。尽管它仍然在crontab根目录中。
user643011

1
里面不应该有任何sudo东西。您已root通过使用切换到该帐户su。超级用户的crontab以超级用户特权运行。
goldilocks

8

您可以安装和配置cron-apt。通过执行以下操作安装它:

apt-get install cron-apt

主要配置文件是/ etc / cron-apt / config

我添加到配置中的一件事是:

MAILON="always"

这将在每次运行时发送电子邮件,不仅是遇到错误时。

请注意,默认设置不会自动安装更新(有一些很好的理由不这样做),但是您可以对其进行配置。与简单的cron解决方案相比,此程序提供的一个优势是,它使您可以控制安装的内容(仅下载新软件包,安装安全更新或安装所有更新)。

要设置运行时间,请编辑/etc/cron.d/cron-apt文件。

您可以在此处找到更多信息和配置选项

该软件包包括非常好的文档,但是已压缩。要提取文件:

  1. 创建一个工作目录-mkdir cron-apt_documentation
  2. 切换到新目录-cd cron-apt_documentation
  3. 复制压缩文件-cp /usr/share/doc/cron-apt/README.gz。(注意尾随点)
  4. 解压缩文件-gunzip README.gz
  5. 读取文件-cat README | 减

zcat /usr/share/doc/cron-apt/README.gz | less

5

在其默认配置中,unattended-upgrades在Raspbian Buster中已损坏。它不会为内核和其他软件安装重要更新。您的选择是:

推荐选项:

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

为了获得更快的安全更新(但稳定性较低,因为软件包尚未获得rasbian的批准),可以将debian-security软件包添加到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

您可能需要为debian存储库安装新的apt密钥

其他选项:

  • 通过使用cron-apt来解决此问题: sudo apt install cron-apt

  • 其他解决方法。

建议使用无人值守更新并修复程序包,因为它最适合此用途。Cron-apt是您第二好的选择,因为它也是出于类似目的而设计的。我不确定在内核更新后,任何一个都可以自动重启系统。无人值守升级通常具有该选项,但是我不确定它是否可以与上述修复程序一起使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.