![在 apt 和 snap 中自动更新是一个好主意吗?](https://linux22.com/image/953271/%E5%9C%A8%20apt%20%E5%92%8C%20snap%20%E4%B8%AD%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%B8%BB%E6%84%8F%E5%90%97%EF%BC%9F.png)
为了节省每次更新时的输入,我创建了以下脚本:
#!/usr/bin/env bash
set -e
patching(){
apt-get update -y;
DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y;
snap refresh
apt autoremove -y
};
patching;
(问题零:剧本贯穿始终,但是否存在明显的疏漏或需要改进的地方?)
问题 1:这是个好主意吗?如果是,为什么不update
默认使用呢autoremove
?dist-upgrade
问题2:与单独执行命令相比,运行脚本时是否会出现问题?
答案1
只要你的来源在控制之下,这应该没问题。
我每周都会在自己的服务器上运行类似的脚本:
apt-get update
apt-get dist-upgrade -y
apt-get autoremove -y
apt-get clean
snap refresh
它已经运行了 3 年多,没有出现重大问题。
但是,您应该偶尔查看apt
日志以查看安装了哪些内容。有一次,一些依赖项发生了变化,并安装了许多新软件包(几周后又被删除)。
在 中apt
,命令update
、upgrade
和autoremove
是分开的,只是为了允许更多控制。
如果您想要完全确保脚本将按计划运行,您可以运行进行试运行的“预脚本”,并将输出保存到日志中,如下所示:
apt-get update >> /path/to/logfile
apt-get dist-upgrade -y --dry-run >> /path/to/logfile
apt-get autoremove -y --dry-run >> /path/to/logfile
apt-get clean --dry-run >> /path/to/logfile
snap refresh >> /path/to/logfile
然后,您可以在实际脚本运行之前检查所有内容。在这种情况下,请忽略apt-get update
实际脚本。