transactional-update快照变更常用命令
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 不能直接使用 zypper 安装 RPM 包。openSUSE Aeon在后台使用带有 zypper 的 transactional-update。
大多数情况下,你不需要交互使用这些命令,因为 Aeon 通过 transactional-update.service systemd 服务实现了系统自动更新。
安装transactional-update
Opensuse Leap和Opensuse Tumbleweed默认没有安装transactional-update,可以尝试安装,不保证能用
# 安装transactional-update的包
zypper install -y transactional-update transactional-update-zypp-config
# 启动定时器
systemctl enable --now transactional-update.timer
openSUSE MicroOS安装软件包
SLE Micro引入了事务性更新,允许您对根文件系统应用一项或多项更改;
使用transactional-update shell 安装多个软件包,对文件系统的更改并使用该exit命令离开shell后,需要重新启动主机以应用更改.
简单来讲:
就是在每次安装软件时,会自动给系统做快照;
重启操作系统后才能运行新安装的软件.
# 搜索软件
zypper se 包名

transactional-update原子性更新–示例
换句话说,如果:
- 先执行
sudo transactional-update pkg install $pkg1, - 再执行
sudo transactional-update pkg install $pkg2, - 然后
重启, - 你会发现
新系统安装了$pkg2,而不是$pkg1。
第一次变更
一次性把需要的软件安装齐全;每次安装的软件不一样,就是不同的镜像
- 进入
事务性更新 shell
# 进入事务性更新 shell(用于在不影响当前系统的情况下进行软件包修改)
transactional-update shell
- 在
事务性更新shell中执行:
# 安装网络工具
zypper in -y mosh telnet net-tools wget rsync tcpdump iperf bind-utils
# 退出事务性更新 shell,提交更改
exit
# 查看等待重启应用的更改
transactional-update pending
# 重启系统以应用更改
reboot
第二次变更
第二次安装软件包时,第一次的所有软件包就会失效,又变回未安装软件包状态。
所以,如果要增加软件包,要在第一次软件包的基础上追加软件包。
- 进入
事务性更新 shell
# 进入事务性更新 shell(用于在不影响当前系统的情况下进行软件包修改)
transactional-update shell
- 在
事务性更新shell中执行:
# 更新系统到最新
zypper dup
# 安装网络工具
zypper in -y mosh telnet net-tools-deprecated curl wget rsync tcpdump iperf bind-utils proxychains-ng
########### 追加的软件部分###############
# 安装常用工具
zypper in -y htop mlocate bash-completion git vim lrzsz tree screen socat lsof qrencode traceroute jq sysstat
# 性能自动优化
zypper in -y tuned tuned-utils tuned-utils-systemtap
# 选装
zypper in -y wireguard-tools lsb-release
# openSUSE使用zypper来管理软件包--非虚拟机不装
zypper in -y open-vm-tools
# ssh防护
zypper in -y fail2ban ipset trash-cli
# 安装glibc-i18ndata包
## glibc-i18ndata 国际化语言数据库
zypper in -y glibc-i18ndata glibc-locale glibc-locale-base
## wqy-zenhei-fonts wqy-bitmap-fonts wqy-microhei-fonts 安装文泉驿正黑字体
zypper in -y wqy-zenhei-fonts wqy-bitmap-fonts wqy-microhei-fonts
- 按
Ctrl+D保留更改
# 退出事务性更新 shell,保留更改
exit
重启到新环境(新快照)
# 重启系统以应用更改
reboot
放弃变更
- 输入
exit 1丢弃更改
进入事务性更新模式安装软件包
注意:
要一次性把需要的所有软件安装上。
不进入事务性更新模式是不能安装软件包的。

# 进入事务性更新 shell(用于在不影响当前系统的情况下进行软件包修改)
transactional-update shell
# 安装软件包
zypper in -y pkg1
# 退出事务性更新 shell,提交更改
exit
# 重启系统以应用更改
reboot
免交互安装软件包
# 使用 transactional-update 安装 package_1 软件包
# 这会创建一个新的系统快照,并在其中安装该软件包
transactional-update pkg ins patterns-microos-cockpit cockpit-ws cockpit-tukit
热变更–不重启立即可用
- 系统不停机更新到最新–
不重启
# 将系统更新到最新
transactional-update -c dup
# 应用变更(立即可用)
transactional-update apply
- 热安装软件包–
不重启
# -c:基于最新快照继续操作(避免从头开始下载依赖包)
transactional-update -c pkg install pkg1 pkg2
# 应用到默认快照无需重启(适用于紧急修复场景)
transactional-update apply
# 安装的包将立即可用
transactional-update常用命令
下面列出了 transactional-update 的命令。注意:请记住在命令完成后重新启动系统以查看更改!
# 安装 rpm 包
sudo transactional-update pkg install package_name
# 删除 rpm 包
sudo transactional-update pkg remove package_name
# 将系统升级到下一个版本
sudo transactional-update dup
# 回滚到上一个快照并立即重启
sudo transactional-update rollback last reboot
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] 部分下的一行:
这个例子是针对最大5 分钟的随机延迟(默认值是 2 小时)。
# 随机延迟
RandomizedDelaySec=5m
回滚快照
官方文档:https://documentation.suse.com/zh-cn/sles/12-SP5/html/SLES-all/cha-snapper.html
# 查看快照列表
snapper list
# 回滚快照
snapper rollback 快照编号
# 回滚到快照5 并添加备注
snapper rollback 5 -d "Emergency_rollback"
microos-tools:开源自动化工具
microos-tools:开源自动化工具,提升openSUSE MicroOS管理效率.
https://github.com/openSUSE/microos-tools
2842

被折叠的 条评论
为什么被折叠?



