nik*_*k90 49 updates automation
我在这里阅读了如何为 Google Chrome 启用静默自动更新。但是,我还有其他存储库,如 Spotify、Docky 和其他我想启用静默更新的存储库。
我正在尝试在我的 Ubuntu 10.04 系统中执行此操作。但是这个问题适用于所有 Ubuntu 版本。我安装了无人值守升级包。
我怎样才能做到这一点?
Bru*_*ira 75
首先,安装gksu
:
sudo apt-get install gksu
Run Code Online (Sandbox Code Playgroud)
使您的系统无人值守更新的最简单的方法是编辑文件50unattended-upgrades
里面/etc/apt/apt.conf.d/
有你喜欢的文本编辑器,例如:
gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades
Run Code Online (Sandbox Code Playgroud)
在其中您需要注释掉Allowed Origins
块的注释部分。
改变:
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
// "${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
Run Code Online (Sandbox Code Playgroud)
到:
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
"${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
Run Code Online (Sandbox Code Playgroud)
对于您想要更新的不在 Ubuntu 存储库上的软件,您需要向文件添加源和存档。要查找 PPA 的内容,请打开文件夹/var/lib/apt/lists/
,这是每个包资源状态信息的存储区域。您要查找的是名称中以Release结尾的文件。
用你的文本编辑器打开一个,例如谷歌浏览器:
gedit /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release
Run Code Online (Sandbox Code Playgroud)
在里面你会看到如下内容:
Origin: Google, Inc.
Label: Google
Suite: stable
Codename: stable
Version: 1.0
Date: Thu, 17 Nov 2011 19:09:01 +0000
Architectures: i386 amd64
Components: main
Description: Google chrome-linux repository.
Run Code Online (Sandbox Code Playgroud)
来源很明显 ( Origin: Google, Inc.
) 并且存档将是线Suite
( Suite: stable
)下的任何内容。
如果Origin
或Suite
缺失,则它们将是空字符串。但请注意,如果两者都缺失,则可能无法在无人值守升级的情况下使用该源,而不包括具有相同问题的其他源。
记下这两行后,您需要编辑50unattended-upgrades
文件并使用此格式添加行"<origin>:<archive>";
,以便为本示例使用"Google\, Inc.:stable";
。
谷歌浏览器的起源有点棘手,因为它有一个空格、一个端点和一个逗号,但大多数Release文件都很容易阅读。
再举一个例子,Node JS 源指定了一个来源 ( Node Source
) 而不是一个存档;所以你可以将它与"Node Source:";
.
Allowed Origins使用 shell 风格的通配符匹配(更具体地说,使用 Python 的fnmatch())。如果您足够小心,不包含冲突的来源,则可以编写类似"Node *:*";
.
50unattended-upgrades
在编辑文件之前不要忘记备份文件。这样做:
sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak
Run Code Online (Sandbox Code Playgroud)
要测试对文件所做的更改,您可以使用sudo unattended-upgrades
参数--dry-run
和--debug
。
--dry-run
将运行无人值守的升级周期,除非它不会真正安装升级,只检查并验证一切正常。
--debug
将启用详细模式。
您可以随时查询日志unattended-upgrades
的/var/log/unattended-upgrades/unattended-upgrades.log
。
您可以通过编辑文件来更改无人值守升级的配置/etc/apt/apt.conf.d/10periodic
。配置选项位于/etc/cron.daily/apt
脚本标题中。阅读它们以配置无人值守升级的频率。
Abh*_*tia 14
@Bruno Pereira 回答的自动化方法:( 如果您觉得答案有用,请考虑在 github 存储库中加注星标。)
代码链接:https : //github.com/abhigenie92/unattended_upgrades_repos
检查要添加的存储库:
$ python automatic_upgrade.py
Add repos:
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
Skipping files due to not present origin or suite. Or origin being a url.:
packagecloud.io_slacktechnologies_slack_debian_dists_jessie_InRelease
tiliado.eu_nuvolaplayer_repository_deb_dists_xenial_InRelease
Run Code Online (Sandbox Code Playgroud)现在编辑/etc/apt/apt.conf.d/50unattended-upgrades
以包含它们:
// Automatically upgrade packages from these (origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial";
};
....
....
Run Code Online (Sandbox Code Playgroud)检查它们是否包括在内:
$ sudo unattended-upgrade --dry-run --debug
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: ['o=Ubuntu,a=xenial-security', 'o=Ubuntu,a=xenial-updates', 'o=Ubuntu,a=xenial-proposed', 'o=Ubuntu,a=xenial-backports', 'o=Ubuntu,a=xenial', 'o=LP-PPA-kubuntu-ppa-backports,a=xenial', 'o=LP-PPA-tuxonice,a=xenial', 'o=LP-PPA-webupd8team-sublime-text-3,a=xenial']
pkgs that look like they should be upgraded:
Fetched 0 B in 0s (0 B/s)
fetch.run() result: 0
blacklist: []
whitelist: []
No packages found that can be upgraded unattended and no pending auto-removals
Run Code Online (Sandbox Code Playgroud)小智 9
编辑/etc/apt/apt.conf.d/50unattended-upgrades
,添加以下内容:
Unattended-Upgrade::Origins-Pattern {
"origin=*";
};
Run Code Online (Sandbox Code Playgroud)
这将允许对所有软件包进行无人值守升级。
归档时间: |
|
查看次数: |
28106 次 |
最近记录: |