![自动更新和升级?](https://linux22.com/image/1181342/%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E5%92%8C%E5%8D%87%E7%BA%A7%EF%BC%9F.png)
有没有办法使用 apt 或其他包管理器自动执行更新和升级:而不是在下面写下这些命令:sudo apt update sudo apt upgrade sudo apt-dist upgrade。
我的意思是系统自动更新或升级是否会有一些变化?
答案1
Ubuntu 系统已经自动更新/升级。这些功能已包含在常规 Ubuntu 安装中。
Snapd 每天检查四次 snap 软件包更新,并静默下载和安装发现的任何更新。这是 Snaps 的一项关键功能,也是全 Snap Ubuntu Core 自动保持完全更新的方式。请参阅https://snapcraft.io/docs/keeping-snaps-up-to-date有关如何编辑频率和其他设置。
该系统
apt update
每天按计时器运行。计时器每天在随机时间运行,以避免撞击镜子。查看方法示例:$ systemctl list-timers apt-daily NEXT LEFT LAST PASSED UNIT ACTIVATES Thu 2021-04-15 13:49:38 CDT 6h left Wed 2021-04-14 20:50:52 CDT 10h ago apt-daily.timer apt-daily.service
系统运行
apt upgrade
仅用于安全升级每天按计时器 (无人值守升级) 查看方法的示例:$ systemctl list-timers apt-daily-upgrade NEXT LEFT LAST PASSED UNIT ACTIVATES Fri 2021-04-16 06:41:09 CDT 22h left Thu 2021-04-15 07:24:53 CDT 24min ago apt-daily-upgrade.timer apt-daily-upgrade.service
您可以通过编辑配置文件轻松添加 Ubuntu 存储库的 -updates 部分(错误修复和非安全升级)
/etc/apt/apt.conf.d/50unattended-upgrades
。只需取消注释文件中的相应行即可。不建议使用 Ubuntu 存储库的其他部分(-proposed、-backports),因为可能会自动安装破坏系统的软件包。可以将非 Ubuntu deb 源(如 Chrome)添加到同一个自动升级配置中(就是这样),但不建议这样做。许多第三方源不与 Ubuntu 同步更新,导致意外的 apt 冲突。
答案2
请查阅优秀资源:https://help.ubuntu.com/community/AutomaticSecurityUpdates并随意选择任何建议的方法来自动更新:
- 使用 GNOME 更新管理器
- 使用无人值守升级包
- 使用 cron-apt
- 编写自己的 cron 脚本来调用 aptitude
我最喜欢的更新 Ubuntu 机器的方法是使用“unattended-upgrades”包:sudo dpkg-reconfigure --priority=low unattended-upgrades
,它有一个快速交互式对话框,将创建文件:/etc/apt/apt.conf.d/20auto-upgrades
包含以下两行:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
请查阅该文件/etc/apt/apt.conf.d/50unattended-upgrades
,它有很多好东西,比如拒绝升级的软件包列表、自动删除未使用的软件包、升级后自动重启(即使在特定时间),您还可以决定可能要使用哪些其他选项进行更新。祝您更新愉快!!
答案3
编辑配置文件(这里用 nano – 用任何其他文本编辑器替换):
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
配置文件的开头应该是这样的: 按照图片代码
双斜杠“//”后面的所有内容都是注释,没有任何作用。要“启用”一行,请删除行首的双斜杠(将其替换为空或空格以保持对齐)。
最重要的是:通过删除开头的两个斜杠来取消注释“updates”行:
${distro_id}:${distro_codename}-updates
建议:删除未使用的内核包和依赖项,并通过取消注释和调整以下行来确保系统在需要时自动重新启动:
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true"; // check for semicolon in Ubuntu 18.04
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:38";
要在 nano 中保存更改,请使用Ctrl+ ,O然后按Enter。要退出,请使用Ctrl+ X。