这篇文章将教你如何使用 rpm-ostree 数据库及其子命令检查更新、检查更改的软件包和阅读更新日志。这些命令将在 Fedora Silverblue 上进行演示,并且应该在任何使用 rpm-ostree 的操作系统上工作。

简介

假设你对不可更改的系统感兴趣。在基于容器技术构建用例时使用只读的基本系统听起来非常有吸引力,它会说服你选择使用 rpm-ostree 的发行版。

你现在发现自己在 Fedora Silverblue(或其他类似的发行版)上,你想检查更新。但你遇到了一个问题。虽然你可以通过 GNOME Software 找到 Fedora Silverblue 上的更新包,但你实际上无法阅读它们的更新日志。你也不能 使用 dnf updateinfo 在命令行上读取它们,因为主机系统上没有 DNF。

那么,你应该怎么做呢?嗯,rpm-ostree 有一些子命令可以在这种情况下提供帮助。

检查更新

第一步是检查更新。只需运行:

$ rpm-ostree upgrade --check
...
AvailableUpdate: Version: 34.20210905.0 (2021-09-05T20:59:47Z) Commit: d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39 SecAdvisories: 1 moderate Diff: 4 upgraded 

请注意,虽然它没有在输出中告诉更新的软件包,但它显示了更新的提交为 d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4。这在后面会很有用。

接下来你需要做的是找到你正在运行的当前部署的提交。运行 rpm-ostree status 以获得当前部署的基提交BaseCommit:

$ rpm-ostree status
State: idle
Deployments:
● fedora:fedora/34/x86_64/silverblue Version: 34.20210904.0 (2021-09-04T19:16:37Z) BaseCommit: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39 RemovedBasePackages: ... LayeredPackages: ... 

对于这个例子,基提交是e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e。

现在你可以用 rpm-ostree db diff [commit1] [commit2] 找到这两个提交的差异。在这个命令中,[commit1] 将是当前部署的基提交,[commit2] 将是升级检查命令中的提交。

$ rpm-ostree db diff e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
ostree diff commit from: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e
ostree diff commit to:   d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
Upgraded: soundtouch 2.1.1-6.fc34 -> 2.1.2-1.fc34 

diff 输出显示 soundtouch 被更新了,并指出了版本号。通过在前面的命令中加入 -changelogs 来查看更新日志:

$ rpm-ostree db diff e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 --changelogs
ostree diff commit from: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e
ostree diff commit to:   d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
Upgraded: soundtouch 2.1.1-6.fc34.x86_64 -> 2.1.2-1.fc34.x86_64 * dom ago 29 2021 Uwe Klotz  - 2.1.2-1 - Update to new upstream version 2.1.2 Bump version to 2.1.2 to correct incorrect version info in configure.ac * sex jul 23 2021 Fedora Release Engineering  - 2.1.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild 

这个输出显示了提交说明以及版本号。

总结

使用 rpm-ostree db,你现在可以拥有相当于 dnf check-update 和 dnf updateinfo 的功能。

如果你想检查你所安装的更新的详细信息,这将非常有用。

用 rpm-ostree 数据库检查更新信息和更新日志的方法相关推荐

  1. 新的mysql如何使用_如何使用新的MySQL更新日志

    使用新的MySQL更新日志的方法未必人人都会,下面就教您如何使用新的MySQL更新日志的方法,希望对您能够有所帮助.如果你只使用一 使用新的MySQL更新日志的方法未必人人都会,下面就教您如何使用新的 ...

  2. 使用数据库维护计划SQL Server更新统计信息

    This article explores SQL Server Update Statistics using the database maintenance plan. 本文探索使用数据库维护计 ...

  3. SQL Server 数据库统计信息更新对性能优化的切身体会

    年底前在开发一个SQL Server BI项目的过程中,我们测试SSIS包的时候,发现有好几天晚上取数的时间都超出了以前的 取数时间,刚开始我们以为是换了服务器,服务器硬件的性能有差异导致,后来我们仔 ...

  4. Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)

    1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...

  5. go监听mysql事件更新,有没有一种方法可以“监听”数据库事件并实时更新页面?...

    我正在寻找一种创建简单的HTML表的方法,该表可以在数据库更改事件发生时进行实时更新.特别是添加了新记录. 换句话说,将其视为执行人员仪表板.如果进行了销售并且在数据库中添加了新行(在本例中为MySQ ...

  6. 数据库-统计信息相关资料

    前言:最近数据库突然变得卡顿,查看了相关日志后,推测可能是索引碎片以及统计信息的问题,索引碎片很久之前已经写了个job定时处理,应该是跟统计信息的有关,所以写个随笔记录下相关的资料. 什么是统计信息 ...

  7. java查询到更新之前的数据_Java对数据库的查询和更新操作详解

    这篇文章主要介绍了使用Java对数据库进行基本的查询和更新操作,是Java入门学习中的基础知识,需要的朋友可以参考下 数据库查询 利用Connection对象的createStatement方法建立S ...

  8. sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息

    sql 获取数据库字段信息 In the series of articles on DBATools, (see TOC at the bottom) we are exploring useful ...

  9. Springboot 从数据库读取数据库配置信息,动态切换多数据源 最详细实战教程

    以前写过一篇教程,Springboot AOP方式切换多数据源(主从两库类似情况使用最佳): https://blog.csdn.net/qq_35387940/article/details/100 ...

最新文章

  1. 浅谈RPA 在银行领域的十个场景应用
  2. CANOE入门(一)
  3. junit5 与 surefire 对接使用
  4. 质量故事(4)---割草的男孩
  5. mysql因计算机丢失vcr_Missvcr100.dll丢失的原因和快速修复解决方案
  6. 单片机c51交通灯c语言程序,c51单片机交通灯程序
  7. 键盘映射keybmap工具使用
  8. python爬取豆瓣电影top250网络响应_python使用requests+re爬取豆瓣电影top250简单入门爬虫...
  9. 新宝资讯3000亿资金候场A股
  10. python re subn_python中的正则re.sub re.subn
  11. PDF转长图,用illustrator把PDF转长图,不需要代码
  12. GNN在推荐系统的应用——>GC-MC与STAR-GCN
  13. 建模语言UML在软件开发中的应用
  14. 项目1在线交流平台-7.构建安全高效的企业服务-2.使用Security自定义社区网页认证与授权
  15. win10隐藏recovery盘
  16. spring Boot 报错Failed to introspect Class [xxx] from ClassLoader
  17. 【工具使用】Win10/Win11 系统下获得管理员权限
  18. 音视频学习-h264裸流的解析
  19. c语言curses小游戏,基于curses库实现弹球游戏
  20. 运动必备的气传导耳机有哪些,推荐四款运动气传导耳机

热门文章

  1. 武汉大学:全校本科毕业论文答辩,以线上方式进行!
  2. 我用Python分析了翟天临的论文,学术还是要认真做啊!
  3. 【每日一算法】删列造序
  4. 规格表管理之更新规格表数据
  5. 汇编语言的div指令 ax dx bx
  6. python unsupported operand type(s) for /: 'str' and 'str' can only concatenate str (not int) to s
  7. OpenCV中图像修复技术介绍与演示
  8. 10 个开源 Python OpenCV 小项目,YouTube热门
  9. 伯克利大神一人投中16篇!ICLR 2021论文接收统计出炉
  10. Lambda表达式关于like问题(未解决)