我一直很好奇是否有办法让更新管理器可以每隔几个小时而不是每天检查更新。现在,我知道我可以运行sudo apt-get update检查,但是让它更频繁地向我展示它会很好......我喜欢尽可能拥有最新的系统。
我使用两个脚本,一个在登录时在后台运行,另一个可以通过 sudo 无需密码即可 apt-get update 并另外下载软件包。
您可以下载我在这里编写的两个脚本,或者从下面将它们复制并粘贴到 gedit 中: http://ubuntuone.com/0tNctmQnF2peAsUmaqtyo3
这是我编写的两个脚本:
第一个应该称为“background-runner”:
#! /bin/bash
# This will connect and download any new packages every two hours.
# Ideal for use on the development release to save time.
# Downloads almost all packages, not just security releases.
sleep 10m
while true; do
sudo /usr/local/bin/package-downloader update
sleep 120m
done
Run Code Online (Sandbox Code Playgroud)
第二个应该称为“package-downloader”:
#! /bin/bash
# This runs as root and is allowed through sudo to only download packages.
if [ $1 = 'update' ]; then
apt-get update
fi
if [ $1 = 'download' ]; then
apt-get update
apt-get --yes --download-only upgrade
fi
Run Code Online (Sandbox Code Playgroud)
要进行设置,请下载或复制文件并将其粘贴到 gedit 中,并使用上述名称保存文件。cd 到终端中的位置并运行以下命令:
sudo cp package-downloader background-runner /usr/local/bin
sudo chmod +x /usr/local/bin/package-downloader /usr/local/bin/background-runner
Run Code Online (Sandbox Code Playgroud)
现在我们必须通过 sudo 允许包下载器脚本。打开终端并输入
sudo visudo
Run Code Online (Sandbox Code Playgroud)
在文件底部添加以下行,将 MYUSER 替换为您运行时使用的用户名,然后按 ctrl+x,然后 Enter 保存。
MYUSER ALL=(root) NOPASSWD: /usr/local/bin/package-downloader
Run Code Online (Sandbox Code Playgroud)
现在导航到“启动应用程序”。单击添加。将其命名为您喜欢的任何名称,然后输入 /usr/local/bin/background-runner 作为命令。保存并退出。

注销并重新登录后,脚本将每两个小时执行一次 apt-get 更新。您可能希望通过更新管理器的软件源对话框禁用自动检查更新,您可以通过单击左下角的设置来访问该对话框。这样,当脚本已经更频繁地执行更新时,更新管理器将不会检查更新。

默认情况下,此处链接的脚本只会执行 apt-get update。如果您希望他们也下载任何软件包,您只需编辑后台运行程序中的行:
sudo /usr/local/bin/package-downloader update
Run Code Online (Sandbox Code Playgroud)
并说
sudo /usr/local/bin/package-downloader download
Run Code Online (Sandbox Code Playgroud)
同样可以更改更新和下载之间的时间量,只需将 120m 更改为
sleep 120m
Run Code Online (Sandbox Code Playgroud)
以分钟 (m) 小时 (h) 秒 (s) 为单位的所需时间。
仅供参考:如果 /usr/local/bin 的权限已更改,这可能会带来安全风险。因为 package-downloader 是一个脚本,并且通过 sudo 允许,所以请确保只有 root 可以写入它!