当前位置: 首页 > news >正文

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 在后台使用带有 zyppertransactional-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原子性更新–示例

换句话说,如果:

  1. 你运行 sudo transactional-update pkg install $pkg1
  2. 然后 sudo transactional-update pkg install $pkg2
  3. 然后重启,
  4. 你会发现新系统安装了 $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

http://www.xdnf.cn/news/1038007.html

相关文章:

  • 数据库期末
  • LangChain开发智能问答(RAG)系统实战教程:从零构建知识驱动型AI助手
  • 推荐一个轻量级跨平台打包工具 PakePlus:重塑前端项目桌面化体验
  • 微软云注册被阻止怎么解决?
  • uniapp 腾讯地图服务
  • 【DSP笔记 · 第3章】数字世界的“棱镜”:离散傅里叶变换(DFT)完全解析
  • 自定义 eslint 规则
  • 基于Java开发的浏览器自动化Playwright-MCP服务器
  • 图表工具 ECharts vs Chart.js 对比
  • 问题记录_如何让程序以root权限启动_如何无视系统的路径问题
  • 从零开始:VMware上的Linux与Java开发环境配置
  • Python训练营-Day31-文件的拆分和使用
  • 自编码模型原理
  • SpringBoot源码解析(十二):@ConfigurationProperties配置绑定的底层转换
  • 【卫星通信】高通提案S2-2504588解读-基于控制平面优化的GEO卫星IMS语音解决方案
  • 介绍常见的图像和视频存储格式以及其优劣势
  • vulnhub-Earth
  • 深度解析JavaScript闭包:从原理到高级应用
  • Java 单例模式实现方式
  • 偶数项收敛半径
  • 地理数据库 gdb mdb sde 名称的由来
  • uni-app项目实战笔记10--设置页面全局渐变线性渐变背景色
  • 深入解析ArrayList源码:从短链项目实战到底层原理
  • windterm no match for method encryption client
  • 盟接之桥EDI软件安全机制及工作原理详解
  • uni-app项目实战笔记11--定义scss颜色变量方便页面引用
  • 论文略读: CITYANCHOR: CITY-SCALE 3D VISUAL GROUNDING WITH MULTI-MODALITY LLMS
  • 容器里有10升油,现在只有两个分别能装3升和7升油的瓶子,需要将10 升油等分成2 个5 升油。程序输出分油次数最少的详细操作过程。
  • 【leetcode】78. 子集
  • 2.2 状态空间表达式的解