如何用 rpm-ostree 數(shù)據(jù)庫(kù)檢查更新信息和更新日志
這篇文章將教你如何使用 rpm-ostree 數(shù)據(jù)庫(kù)及其子命令檢查更新、檢查更改的軟件包和閱讀更新日志。
這些命令將在 Fedora Silverblue 上進(jìn)行演示,并且應(yīng)該在任何使用 rpm-ostree 的操作系統(tǒng)上工作。
簡(jiǎn)介
假設(shè)你對(duì)不可更改的系統(tǒng)感興趣。在基于容器技術(shù)構(gòu)建用例時(shí)使用只讀的基本系統(tǒng)聽起來(lái)非常有吸引力,它會(huì)說(shuō)服你選擇使用 rpm-ostree 的發(fā)行版。
你現(xiàn)在發(fā)現(xiàn)自己在 Fedora Silverblue(或其他類似的發(fā)行版)上,你想檢查更新。但你遇到了一個(gè)問(wèn)題。雖然你可以通過(guò) GNOME Software 找到 Fedora Silverblue 上的更新包,但你實(shí)際上無(wú)法閱讀它們的更新日志。你也不能 使用 dnf updateinfo 在命令行上讀取它們,因?yàn)橹鳈C(jī)系統(tǒng)上沒有 DNF。
那么,你應(yīng)該怎么做呢?嗯,rpm-ostree 有一些子命令可以在這種情況下提供幫助。
檢查更新
第一步是檢查更新。只需運(yùn)行:
- $ 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
請(qǐng)注意,雖然它沒有在輸出中告訴更新的軟件包,但它顯示了更新的提交為 d8bab818f5abcfb58d2c038614965bf26426d55667e52018fcd295b9bfbc88b4。這在后面會(huì)很有用。
接下來(lái)你需要做的是找到你正在運(yùn)行的當(dāng)前部署的提交。運(yùn)行 rpm-ostree status 以獲得當(dāng)前部署的基提交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: ...
- ...
對(duì)于這個(gè)例子,基提交是e279286dcd8b5e231cff15c4130a4b1f5a03b6735327b213ee474332b311dd1e。
現(xiàn)在你可以用 rpm-ostree db diff [commit1] [commit2] 找到這兩個(gè)提交的差異。在這個(gè)命令中,[commit1] 將是當(dāng)前部署的基提交,[commit2] 將是升級(jí)檢查命令中的提交。
- $ 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 被更新了,并指出了版本號(hào)。通過(guò)在前面的命令中加入 -changelogs 來(lái)查看更新日志:
- $ 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 <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
這個(gè)輸出顯示了提交說(shuō)明以及版本號(hào)。
總結(jié)
使用 rpm-ostree db,你現(xiàn)在可以擁有相當(dāng)于 dnf check-update 和 dnf updateinfo 的功能。
如果你想檢查你所安裝的更新的詳細(xì)信息,這將非常有用。