我安装了
php
和lighttpd
,并且想要在发现错误时自动对其进行更新。#1 楼
您需要在命令行中输入一些命令。首先:
apt-get update
(这将更新软件源)
apt-get upgrade
(这会将所有内容升级到最新版本)
#2 楼
unattended-upgrades
软件包是在这些debian-family发行版中自动更新OS的方法。请遵循此处的说明。基本上,您必须安装软件包:
sudo apt-get install unattended-upgrades
,并在
/etc/apt/apt.conf.d/10periodic
中添加以下内容:APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
另外(由于似乎软件包的移植不是完美的),请在
/etc/apt/apt.conf.d/50unattended-upgrades
的第一部分更改以下行: "origin=Debian,archive=stable,label=Debian-Security";
到
// "origin=Debian,archive=stable,label=Debian-Security";
"origin=Raspbian";
现在您的系统自动保持最新。
评论
在最新版本的Raspbian中,不再需要最后一步(交换origin = Debian)。
–多尔夫
2014年2月9日在17:25
今天,在Raspbian Wheezy上,似乎仍然有必要,例如:Checking:openssl([“
– astorije
15年7月5日在9:09
糟糕,我误读了。是的,在配置文件中仍需要origin = Raspbian,但是,不,您确实不需要自己做,对不起...
– astorije
15年7月5日在9:12
#3 楼
距离: $ sudo apt-get update
$ sudo apt-get upgrade
第一次pi更新:
安装git和到达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
更新固件
$ sudo rpi-update
$ sudo ldconfig
$ sudo reboot
rpi更新后:
$ sudo rpi-update
$ sudo ldconfig
$ sudo reboot
rpi更新
#4 楼
现在可以直接通过apt-get获取rpi-update,因此无需处理Wget。因此,现在是更新的方式:Dist:
$ sudo apt-get update
$ sudo apt-get upgrade
您需要立即重新启动Raspberry Pi,否则新内核将不会
第一次进行pi更新:
安装Git和证书以访问GitHub。
$ sudo apt-get install ca-certificates
$ sudo apt-get install git-core
$ sudo apt-get install rpi-update
更新固件
/>
$ sudo rpi-update
$ sudo reboot
rpi-update
#5 楼
您也可以编写一个带有易于获取步骤的小脚本,然后按计划每天运行一次,但是我经常这样做,这就是我所做的。如何设置Pi上的cron作业:
http://www.wexoo.net/20130406/running-cron-jobs-on-raspberry-pi-in-raspbmc
如何编写bash脚本:
https://www.linux.com/learn/tutorials/284789-writing-a-simple-bash-script-
我的脚本只是一个简单的
apt-get update
apt-get upgrade -yes
apt-get dist-upgrade -yes
apt-get clean
,我把它的输出记录到每行末尾带有
>>
的文件中,例如apt-get update >> autoupdate.txt
。尽管这样做有多么好主意尚待商!!
评论
您有机会分享有关如何执行这些定时事件的脚本和/或信息。我想如果OP知道如何做到这一点,他就不会发布。
– Phill Healey
13年12月23日在11:05
#6 楼
Web of Art网站上有Debian Wheezy的精彩指南,我只需修改一行就可以在我的测试RPi上工作。该链接将带您到cron-apt
上的指南;下面已经解释了RPi repos系统的修改。 安装cron-apt
sudo apt-get install cron-apt
默认配置,操作和自定义配置可通过
ls -hal /etc/cron-apt/config
找到ls -hal /etc/cron-apt/action.d/
ls -hal /etc/cron-apt/config.d/
将以下内容附加到带有
/etc/cron-apt/config
的sudo tee -a
文件中,以使电子邮件发送有关自动更新过程中所采取措施的详细信息echo 'MAILON="output"' | sudo tee -a /etc/cron-apt/config
echo 'DEBUG="verbose"' | sudo tee -a /etc/cron-apt/config
日志记录转储到:
/var/log/cron-apt/log
制作新的操作文件以仅更新与安全性相关的软件包使用touch命令并使用sudo tee命令添加一行;其他将下载,但等待sys-admin安装非安全更新。更新和输出的所有通知将通过电子邮件发送给root用户或sys-admin,以供进一步检查和/或采取措施。
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
制作新的配置文件以使用上述操作;特意使用
/etc/apt/sources.list.d/security.list
作为安全更新的路径。如果不是完全基于Debian Linux,则文件路径在您的系统上可能会有所不同; RPi现在使用镜像导向器,因此应该改用/etc/apt/sources.list
,但是,对于生产级服务器,建议不要使用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
cron-apt
请等待一天,以便
sudo cat /var/log/cron-apt/log
更新系统并使用以下内容检查本地日志,以查看睡眠时更新的内容unattended-upgrades
这已经在一个RPi上进行了测试,可用于更新每个软件包,以及在Unbuntu PC上仅可更新与安全性相关的软件包。因此,我觉得它是更便携的选项之一。草根建议的另一个用于自动更新的软件包(谢谢,我接下来将对其进行测试),q4312079q似乎是自动化更新过程的另一个不错的选择。
评论
这就是全部吗?它会升级我通过apt-get安装的所有内容,包括OS本身吗?
–米歇尔
13年1月27日在21:33
是的,“ OS本身”是Linux内核。第一次执行此操作时,可能会进行大量更新,因为存储库通常包含比安装映像更新的软件包。
– goldilocks♦
13年1月27日在22:00
也就是说,一切都来自apt回购。通常情况下,除您的数据外,所有内容都是如此,但可能不包含例如在这种情况下是内核或引导程序。如果您从其他地方下载了东西或自己制作了东西,那么显然无法自动升级:)
– XTL
13年1月28日在7:02
是的,仅此而已。对于较大的软件,您可能偶尔需要回答是/否问题,但是基本上,这很容易。
–recantha
13年1月28日在8:30
@Michel:有时“ linux OS”被更广泛地称为“ GNU / Linux”,其中包括内核(严格意义上为“ linux”)和用户空间基础知识,例如C库,shell等, GNU伞。使用Windows,所有这些部分都一成不变地集成在一起,而linux世界则更加异构和模块化,因此可能会有些混乱。我本来会以“操作系统”来指代debian wheezy发行版(包括内核),但是您似乎是在指更具体的东西。
– goldilocks♦
13年1月28日在13:06