transactional-update原子性更新常用命令
transactional-update快照变更常用命令
- transactional-update介绍
- transactional-update常用命令
- 打开下一个快照的shell
- transactional-update原子性更新--示例
- 在不重启的情况下对同一快照进行多项更改
- transactional-update-自动更新
- 调整 transactional-update.timer
- microos-tools:开源自动化工具
transactional-update介绍
参考:https://suse.org.cn/%E7%A4%BE%E5%8C%BA%E6%96%B0%E9%97%BB/2023/05/27/opensuse-aeon.html
openSUSE Aeon 没有像 openSUSE Tumbleweed 或 Leap 那样直接使用 zypper
安装 RPM
包。Aeon 在后台使用带有 zypper
的 transactional-update
。
大多数情况下,你不需要交互使用这些命令,因为 Aeon 通过 transactional-update.service
systemd 服务实现了系统自动更新。
transactional-update常用命令
下面列出了 transactional-update
的命令。注意:请记住在命令完成后重新启动系统以查看更改!
# 安装 rpm 包
sudo transactional-update pkg install package_name # 删除 rpm 包
sudo transactional-update pkg remove package_name # 将系统升级到下一个版本
sudo transactional-update dup
打开下一个快照的shell
# 打开下一个快照的shell
sudo transactional-update shell# 退出下一个快照的shell
exit# 查看等待重启应用的更改
transactional-update pending # 重新启动到下一个快照
reboot
transactional-update原子性更新–示例
换句话说,如果:
- 你运行
sudo transactional-update pkg install $pkg1
, - 然后
sudo transactional-update pkg install $pkg2
, - 然后重启,
- 你会发现新系统安装了
$pkg2
,而不是$pkg1
。
在不重启的情况下对同一快照进行多项更改
--continue
允许在不重启系统
的情况下向指定事务快照
中添加额外的更改
(这里是安装一个软件包)。
在运行 sudo transactional-update pkg install $pkg1
之后,
运行
# 在当前活动的快照中添加额外的更改
sudo transactional-update --continue pkg install $pkg2# 查看等待重启应用的更改
transactional-update pending
这将安装 $pkg1
,然后在包含 $pkg1
的同一快照中安装 $pkg2
,并将该组合快照标记为下一个启动目标。
然而,如果出现问题,也不会有额外的复杂性,因为用户需要回滚到 $pkg1
安装前的快照,返回到最后已知的良好状态,从而弄清楚是 $pkg1
还是 $pkg2
破坏了什么东西。
# 进行多项更改而无需重新启动, 其中包含上一个快照的所有更改以及您的新更改,需要重新启动主机以应用更改transactional-update --continuetransactional-update pkg install package_1transactional-update --continue 13 pkg install package_2reboot
transactional-update-自动更新
默认情况下,用于处理系统的自动更新的 transactional-update.timer
被设置为每天更新,即更新任务将在每天的 00:00:00 执行。
如果正赶上计算机关闭的时候,因为 timer
被设置为 persistance=true
,那么更新将在第一时间发生。
# 查看日志排错
sudo journalctl -u transactional-update.service
你还可以使用带有 -f
标志的 journalctl
来实时追踪日志。
调整 transactional-update.timer
根据你的日常使用情况,即使在 persistent=true
的情况下,定时器也可能无法成功触发自动更新过程,因为它会在每次启动时使用 RandomizedDelaySec=
添加随机延迟。
如果你想每天自动更新你的系统,你可能会发现你需要调整所述的延迟。
编辑 transactional-update.timer
(创建 override.conf 文件):
# sudo systemctl edit transactional-update.timer
编辑 [Timer]
部分下的一行:
# 随机延迟
RandomizedDelaySec=5m
上面的例子是针对最大5 分钟的随机延迟
(默认值是 2 小时)。
microos-tools:开源自动化工具
microos-tools
:开源自动化工具,提升openSUSE MicroOS
管理效率.
https://github.com/openSUSE/microos-tools