这篇文章将教你如何使用 rpm-ostree
数据库及其子命令检查更新、检查更改的软件包和阅读更新日志。
这些命令将在 Fedora Silverblue 上进行演示,并且应该在任何使用 rpm-ostree
的操作系统上工作。
简介 假设你对不可更改的系统感兴趣。在基于容器技术构建用例时使用只读的基本系统听起来非常有吸引力,它会说服你选择使用 rpm-ostree
的发行版。
你现在发现自己在 Fedora Silverblue (或其他类似的发行版)上,你想检查更新。但你遇到了一个问题。虽然你可以通过 GNOME Software 找到 Fedora Silverblue 上的更新包,但你实际上无法阅读它们的更新日志。你也不能 使用 dnf updateinfo 在命令行上读取它们 ,因为主机系统上没有 DNF。
那么,你应该怎么做呢?嗯,rpm-ostree
有一些子命令可以在这种情况下提供帮助。
检查更新 第一步是检查更新。只需运行:
1 2 3 4 5 6 7 8 9 $ rpm-ostree upgrade --check ...AvailableUpdate: Version: 34.20210905 .0 (2021 -09 -05 T20:59 :47 Z) Commit: d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 GPGSignature: Valid signature by 8 C5BA6990BDB26E19F2A1A801161AE6945719A39 SecAdvisories: 1 moderate Diff: 4 upgraded
请注意,虽然它没有在输出中告诉更新的软件包,但它显示了更新的提交为 d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4
。这在后面会很有用。
接下来你需要做的是找到你正在运行的当前部署的提交。运行 rpm-ostree status
以获得当前部署的 基提交 BaseCommit :
1 2 3 4 5 6 7 8 9 10 11 $ rpm-ostree statusState: idleDeployments: ● fedora:fedora/34 /x86_64/silverblue Version: 34.20210904 .0 (2021 -09 -04 T19:16 :37 Z) BaseCommit: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e GPGSignature: Valid signature by 8 C5BA6990BDB26E19F2A1A801161AE6945719A39 RemovedBasePackages: ... LayeredPackages: ... ...
对于这个例子,基提交是e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e
。
现在你可以用 rpm-ostree db diff [commit1] [commit2]
找到这两个提交的差异。在这个命令中,[commit1]
将是当前部署的基提交,[commit2]
将是升级检查命令中的提交。
1 2 3 4 5 6 $ rpm-ostree db diff e279286 dcd8 b5e231 cff15 c 4130 a4 b1 f5 a03 b6735327 b213 ee474332 b311 dd1 e d8 bab818 f5 abcfb58 d2 c 038614965 bf26426 d55667e52018 fcd295 b9 bfbc88 b4 ostree diff commit from: e279286 dcd8 b5e231 cff15 c 4130 a4 b1 f5 a03 b6735327 b213 ee474332 b311 dd1 e ostree diff commit to : d8 bab818 f5 abcfb58 d2 c 038614965 bf26426 d55667e52018 fcd295 b9 bfbc88 b4 Upgraded: soundtouch 2.1 .1 -6 .fc34 -> 2.1 .2 -1 .fc34
diff
输出显示 soundtouch
被更新了,并指出了版本号。通过在前面的命令中加入 -changelogs
来查看更新日志:
1 2 3 4 5 6 7 8 9 10 11 12 $ rpm-ostree db diff e279286 dcd8 b5e231 cff15 c 4130 a4 b1 f5 a03 b6735327 b213 ee474332 b311 dd1 e d8 bab818 f5 abcfb58 d2 c 038614965 bf26426 d55667e52018 fcd295 b9 bfbc88 b4 --changelogs ostree diff commit from: e279286 dcd8 b5e231 cff15 c 4130 a4 b1 f5 a03 b6735327 b213 ee474332 b311 dd1 e ostree diff commit to : d8 bab818 f5 abcfb58 d2 c 038614965 bf26426 d55667e52018 fcd295 b9 bfbc88 b4 Upgraded: soundtouch 2.1 .1 -6 .fc34 .x 86 _64 -> 2.1 .2 -1 .fc34 .x 86 _64 * dom ago 29 2021 Uwe Klotz <uwe.klotz@gmail.com > - 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 <releng@fedoraproject.org > - 2.1 .1 -7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35 _Mass_Rebuild
这个输出显示了提交说明以及版本号。
总结 使用 rpm-ostree db
,你现在可以拥有相当于 dnf check-update
和 dnf updateinfo
的功能。
如果你想检查你所安装的更新的详细信息,这将非常有用。
via: https://fedoramagazine.org/how-to-check-for-update-info-and-changelogs-with-rpm-ostree-db/
作者:Mateus Rodrigues Costa 选题:lujun9972 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出