当前,要使Raspberry Pi保持最新状态,我必须输入sudo apt-get updatesudo apt-get upgrade。有没有办法将其设置为自动执行此操作?我正在运行Raspbian Jessie。

#1 楼

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

评论


对我来说,默认设置不是很好。它什么也没做:/var/log/unattended-upgrades/unattended-upgrades.log文件报告了允许的来源是:[]因此,基本上没有进行任何更新。更新/etc/apt/apt.conf之后.d / 50unattended-upgrades包括“ origin = Raspbian,codename = $ {distro_codename},label = Raspbian”;更新开始出现。

– Rabarberski
17年5月18日在20:10

我的骨干股票(截至2017年9月)有50个无人参与的升级,其中列出了“ origin = Debian,codename = $ {distro_codename},label = Debian-Security”;并且似乎可以正确找到相关的软件包。当然,它忽略了其中许多。我尚未设置任何白名单或黑名单。

–乔恩五世
17年9月15日在13:11

默认的50unattended-upgrade实际上是愚蠢的,必须更改才能在Raspian上工作。没有树莓派安全。安全更新未标记。重要的是同时添加“ origin = Raspbian,codename = $ {distro_codename},label = Raspbian”;和“ origin = Raspberry Pi Foundation,代号= $ {distro_codename},label = Raspberry Pi Foundation”;到/etc/apt/apt.conf.d/50unattended-upgrades

–user643011
18年4月8日,0:37



我只想澄清一下,我应该添加这些行,而不是替换“ origin = Debian,codename = $ {distro_codename},label = Debian”;和“ origin = Debian,codename = $ {distro_codename},label = Debian-Security”;用新的线?

–林德
20-10-3在9:13

#2 楼

在终端中,键入:

sudo su


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

crontab -e


要开始编辑crontab,要在给定时间自动运行的任务表。它将在您首选的文本编辑器中打开。对其进行修改以包括以下行:在crontab上阅读以了解如何根据自己的喜好进行调整。

评论


最好将命令与&&放在同一行,因为它们是相关的,并且如果'update'失败,则没有理由进行'upgrade'。

–tedder42
2015年12月5日,下午2:36

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

– rav_kr
2015年12月5日在21:14

dist-upgrade比upgrade更好,仅使用upgrade就会导致依赖关系破裂。您也不会绕过需要对话框确认的更新。 @ tedder42指出了Debian首选的方法(使用无人值守的升级)。

–ryanpcmcquen
16年1月31日在18:51

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

–user643011
18年4月12日在11:41

那里不应该有任何须藤。您已经使用su切换到了根帐户。超级用户的crontab以超级用户特权运行。

– goldilocks♦
18年4月12日在12:34



#3 楼

在其默认配置中,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




其他选项:


通过使用cron-apt可以解决该问题: sudo apt install cron-apt


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

#4 楼

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

apt-get install cron-apt

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

我要添加的一件事我的配置是:

MAILON="always"


它每次运行时都会发送一封电子邮件,不仅是遇到错误时。

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

设置运行时间/etc/cron.d/cron-apt文件。

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

该软件包包含非常好的文档,但已将其压缩。提取文件:


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


评论


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

–user67475
19年4月2日在15:29