如何获得自动升级以在Ubuntu Server上工作?


8

我遵循了在Ubuntu服务器中启用自动升级文档,但实际上根本没有更新任何内容。

我的/etc/apt/apt.conf.d/50unattended-upgrade看起来几乎像默认值。

// Automatically upgrade packages from these (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
        "Ubuntu karmic-security";
        "Ubuntu karmic-updates";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
//      "vim";
//      "libc6";
//      "libc6-dev";
//      "libc6-i686";
};

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. The package 'mailx'
// must be installed or anything that provides /usr/bin/mail.
Unattended-Upgrade::Mail "pupeno@example.com";


// Automatically reboot *WITHOUT CONFIRMATION* if a 
// the file /var/run/reboot-required is found after the upgrade 
//Unattended-Upgrade::Automatic-Reboot "false";

目录/ var / log / unattended-upgrades /为空。运行/etc/init.d/unattended-upgrades start并不是很好:

root@mozart:~# /etc/init.d/unattended-upgrades start
Checking for running unattended-upgrades: root@mozart:~#

似乎有些问题,但是我不确定为什么。

我有待处理的更新,尚未应用:

root@mozart:~# aptitude safe-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initializing package states... Done
The following packages will be upgraded:
  linux-libc-dev 
1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/743kB of archives. After unpacking 4096B will be used.
Do you want to continue? [Y/n/?]

在我拥有的所有服务器中,无人值守升级似乎已被禁用:

root@mozart:~# apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade
root@mozart:~#

有什么想法我想念的吗?


libc是一个主要软件包。我不会让任何服务器自己更新它!
Antoine Benkemoun 2010年

安托万,我没问题。此外,libc-dev是devel软件包,可能是一堆.h之类的东西。而且,这只是现在待解决的问题,现在将要待解决的问题,因此讨论此特定程序包并不会增加很多问题。
pupeno 2010年

Answers:


4

您检查/etc/apt/apt.conf.d/10periodic吗?

它应该有最后一行

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

5
这些设置并非全部以10个周期存在,而是分布在10个周期,20个自动升级和50个无人值守的升级中。如果将它们放在错误的位置,将来的APT升级可能会覆盖它们。20auto-upgrades是设置APT :: Periodic :: Unattended-Upgrade“ 1”的地方;和50unattended-upgrade来调整行为,如《 Ubuntu Server指南》中所述。
daff

您能否在此处输入详细信息或链接?我找不到他们。
塔纳里


《 Ubuntu 10.04(官方)服务器指南》似乎已过时。请参阅我的答案以获取更多信息。
Hendy Irawan 2012年

2
该文档的最新URL是:help.ubuntu.com/lts/serverguide/automatic-updates.html,它说所有这四个都应以Tanari qrote的形式用10个周期表示。无人值守升级页面并不矛盾,尽管它添加了一些其他有用的信息:help.ubuntu.com/community/AutomaticSecurityUpdates
SamGoody 2015年

8

在此处查看您的Ubuntu版本的实际文档:

/usr/share/doc/unattended-upgrades/README.gz

对于Ubuntu 11.10,要启用它,请执行以下操作:

sudo dpkg-reconfigure -plow unattended-upgrades

(这是一个交互式对话框),它将创建/etc/apt/apt.conf.d/20auto-upgrades以下内容:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

因此,确实Ubuntu 10.04服务器指南中的信息已过时。

如果您像在BippoSoluvas一样使用Puppet,则可以使用类似这样的方法来自动执行正确的无人值守升级配置:

# Unattended upgrades
package { unattended-upgrades: ensure => present }
file { '/etc/apt/apt.conf.d/50unattended-upgrades':
  content => template('bipposerver/50unattended-upgrades'),
  mode    => 0644,
  require => Package['unattended-upgrades'],
}
file { '/etc/apt/apt.conf.d/20auto-upgrades':
  source  => 'puppet:///bipposerver/20auto-upgrades',
  mode    => 0644,
  require => Package['unattended-upgrades'],
}
service { unattended-upgrades:
  enable    => true,
  subscribe => [ Package['unattended-upgrades'],
                 File['/etc/apt/apt.conf.d/50unattended-upgrades',
                      '/etc/apt/apt.conf.d/20auto-upgrades'] ],
}

确保提供模板/文件50unattended-upgrades20auto-upgrades并且您认为合适。

我也在更新Ubuntu Wiki页面以反映这一点。


1
+1 FWIW,13.04服务器指南仍然过时。
deizel

6

我没发现您的问题/etc/apt/apt.conf.d/50unattended-upgrades。我的看上去几乎和您的一样,但我只允许自动应用安全升级,没有别的。我还将其设置为仅将邮件发送到“ root”(Postfix处理其余部分)。

但是:init脚本/etc/init.d/unattended-upgrades不适用于运行无人值守的升级。它仅检查无人参与的升级过程是否正在运行,并等待直到退出。我真的不知道为什么需要它,或者为什么要这样做(它在以前的Ubuntu版本中甚至不存在),但这不是进行无人值守升级的方法。

取而代之的是,在Ubuntu上有一个名为Python的程序unnattended-upgrades可以完成这项工作。尝试手动运行,看看会发生什么。同时检查命令的输出

apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade 

应该说UnattendedUpgradeInterval='1',表示您已正确配置APT以允许无人参与的升级。

Ubuntu /etc/cron.daily/apt每天从cron 运行。如果您查看该脚本,就会发现它执行了许多与APT相关的事情,其中​​包括无人值守的升级。我的猜测是您以某种方式禁用了cron脚本,因此无人值守。

就是这样,或多或少,从我头顶上消失了。如果您尝试了我的想法但没有成功,请发表后续报告。

高温超导


2
谢谢你的回答。我在问题中添加了“ apt-config shell UnattendedUpgradeInterval APT :: Periodic :: Unattended-Upgrade”的输出。我所有的服务器都没有打印任何内容。
pupeno 2010年
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.