如何用 rpm-ostree 数据库检查更新信息和更新日志
<p>这篇文章将教你如何使用 rpm-ostree 数据库及其子命令检查更新、检查更改的软件包和阅读更新日志。</p>
<p>
这些命令将在 Fedora Silverblue 上进行演示,并且应该在任何使用 rpm-ostree 的操作系统上工作。</p>
<p>
<img title="如何用 rpm-ostree 数据库检查更新信息和更新日志" alt="如何用 rpm-ostree 数据库检查更新信息和更新日志" border="0" height="auto" src="https://zhuji.jb51.net/uploads/img/202305/49342f242b16ac1e8991cf5f3e5a550f.jpg" width="auto"></p>
<h3>
简介</h3>
<p>
假设你对不可更改的系统感兴趣。在基于容器技术构建用例时使用只读的基本系统听起来非常有吸引力,它会说服你选择使用 rpm-ostree 的发行版。</p>
<p>
你现在发现自己在 Fedora Silverblue(或其他类似的发行版)上,你想检查更新。但你遇到了一个问题。虽然你可以通过 GNOME Software 找到 Fedora Silverblue 上的更新包,但你实际上无法阅读它们的更新日志。你也不能 使用 dnf updateinfo 在命令行上读取它们,因为主机系统上没有 DNF。</p>
<p>
那么,你应该怎么做呢?嗯,rpm-ostree 有一些子命令可以在这种情况下提供帮助。</p>
<h3>
检查更新</h3>
<p>
第一步是检查更新。只需运行:</p>
<ol class="dp-sql">
<li class="alt">
<span><span>$ rpm-ostree upgrade </span><span class="comment">--check</span><span> </span></span>
</li>
<li>
<span>... </span>
</li>
<li class="alt">
<span>AvailableUpdate: </span>
</li>
<li>
<span> Version: 34.20210905.0 (2021-09-05T20:59:47Z) </span>
</li>
<li class="alt">
<span> <span class="keyword">Commit</span><span>: d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 </span></span>
</li>
<li>
<span> GPGSignature: Valid signature <span class="keyword">by</span><span> 8C5BA6990BDB26E19F2A1A801161AE6945719A39 </span></span>
</li>
<li class="alt">
<span> SecAdvisories: 1 moderate </span>
</li>
<li>
<span> Diff: 4 upgraded </span>
</li>
</ol>
<p>
请注意,虽然它没有在输出中告诉更新的软件包,但它显示了更新的提交为 d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4。这在后面会很有用。</p>
<p>
接下来你需要做的是找到你正在运行的当前部署的提交。运行 rpm-ostree status 以获得当前部署的基提交BaseCommit:</p>
<ol class="dp-sql">
<li class="alt">
<span><span>$ rpm-ostree status </span></span>
</li>
<li>
<span>State: idle </span>
</li>
<li class="alt">
<span>Deployments: </span>
</li>
<li>
<span>● fedora:fedora/34/x86_64/silverblue </span>
</li>
<li class="alt">
<span> Version: 34.20210904.0 (2021-09-04T19:16:37Z) </span>
</li>
<li>
<span> BaseCommit: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e </span>
</li>
<li class="alt">
<span> GPGSignature: Valid signature <span class="keyword">by</span><span> 8C5BA6990BDB26E19F2A1A801161AE6945719A39 </span></span>
</li>
<li>
<span> RemovedBasePackages: ... </span>
</li>
<li class="alt">
<span> LayeredPackages: ... </span>
</li>
<li>
<span>... </span>
</li>
</ol>
<p>
对于这个例子,基提交是e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e。</p>
<p>
现在你可以用 rpm-ostree db diff 找到这两个提交的差异。在这个命令中, 将是当前部署的基提交, 将是升级检查命令中的提交。</p>
<ol class="dp-sql">
<li class="alt">
<span><span>$ rpm-ostree db diff e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 </span></span>
</li>
<li>
<span>ostree diff <span class="keyword">commit</span><span> </span><span class="keyword">from</span><span>: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e </span></span>
</li>
<li class="alt">
<span>ostree diff <span class="keyword">commit</span><span> </span><span class="keyword">to</span><span>: d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 </span></span>
</li>
<li>
<span>Upgraded: </span>
</li>
<li class="alt">
<span> soundtouch 2.1.1-6.fc34 -> 2.1.2-1.fc34 </span>
</li>
</ol>
<p>
diff 输出显示 soundtouch 被更新了,并指出了版本号。通过在前面的命令中加入 -changelogs 来查看更新日志:</p>
<ol class="dp-sql">
<li class="alt">
<span><span>$ rpm-ostree db diff e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 </span><span class="comment">--changelogs</span><span> </span></span>
</li>
<li>
<span>ostree diff <span class="keyword">commit</span><span> </span><span class="keyword">from</span><span>: e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e </span></span>
</li>
<li class="alt">
<span>ostree diff <span class="keyword">commit</span><span> </span><span class="keyword">to</span><span>: d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4 </span></span>
</li>
<li>
<span>Upgraded: </span>
</li>
<li class="alt">
<span> soundtouch 2.1.1-6.fc34.x86_64 -> 2.1.2-1.fc34.x86_64 </span>
</li>
<li>
<span> * dom ago 29 2021 Uwe Klotz <uwe.klotz@gmail.com> - 2.1.2-1 </span>
</li>
<li class="alt">
<span> - <span class="keyword">Update</span><span> </span><span class="keyword">to</span><span> new upstream version 2.1.2 </span></span>
</li>
<li>
<span> Bump version <span class="keyword">to</span><span> 2.1.2 </span><span class="keyword">to</span><span> correct incorrect version info </span><span class="op">in</span><span> configure.ac </span></span>
</li>
<li class="alt">
<span> * sex jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-7 </span>
</li>
<li>
<span> - Rebuilt <span class="keyword">for</span><span> https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild </span></span>
</li>
</ol>
<p>
这个输出显示了提交说明以及版本号。</p>
<h3>
总结</h3>
<p>
使用 rpm-ostree db,你现在可以拥有相当于 dnf check-update 和 dnf updateinfo 的功能。</p>
<p>
如果你想检查你所安装的更新的详细信息,这将非常有用。</p>
<p>
原文地址:https://linux.cn/article-13803-1.html</p>
頁:
[1]