我的Raspbian Debian 7(Wheezy)软件包有一种更新工具吗?

我安装了phplighttpd,并且想要在发现错误时自动对其进行更新。

#1 楼

您需要在命令行中输入一些命令。
首先:

apt-get update  


(这将更新软件源)

apt-get upgrade  


(这会将所有内容升级到最新版本)

评论


这就是全部吗?它会升级我通过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

#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/configsudo 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似乎是自动化更新过程的另一个不错的选择。