在 Fedora ostree 系統(tǒng)上搜索軟件包
基于 Fedora ostree 的系統(tǒng)的主要優(yōu)點(diǎn)之一是系統(tǒng)的不可變性。該鏡像不僅是只讀的,而且是預(yù)先構(gòu)建在 Fedora 服務(wù)器上的。因此,更新正在運(yùn)行的系統(tǒng)會(huì)下載更新增量(即僅差異)并修補(bǔ)系統(tǒng)。這使得許多安裝在默認(rèn)情況下都是相同的。
對(duì)于大多數(shù)人來(lái)說(shuō),預(yù)構(gòu)建的鏡像就足夠了,因?yàn)橥ǔ9膭?lì)用戶(hù)同時(shí)使用 Flatpak 安裝應(yīng)用,使用工具箱進(jìn)行開(kāi)發(fā)任務(wù)。但是,如果特定應(yīng)用不符合此要求并且用戶(hù)需要在主機(jī)系統(tǒng)上安裝應(yīng)用怎么辦?
在這種情況下,可以選擇在系統(tǒng)上覆蓋軟件包,在本地創(chuàng)建一個(gè)新的鏡像,在標(biāo)準(zhǔn)鏡像上添加軟件包。
但是,我如何知道我要安裝哪個(gè)包?搜索功能怎么樣?
老方法(toolbox + dnf search)
雖然始終可以通過(guò)支持 PackageKit 的軟件中心(例如 GNOME “軟件Software” 應(yīng)用 或 KDE “發(fā)現(xiàn)Discover” 應(yīng)用)搜索軟件包,但通過(guò) CLI 來(lái)搜索軟件包有點(diǎn)困難。
由于 rpm-ostree
不曾提供搜索命令,因此常見(jiàn)的搜索方式是使用 toolbox enter
進(jìn)入工具箱并使用 dnf search <搜索詞>
進(jìn)行搜索。這樣做的缺點(diǎn)是需要在工具箱中啟用相同的倉(cāng)庫(kù)才能獲得正確的搜索結(jié)果。
搜索 neofetch
的示例:
$ toolbox enter
<Note that at this point the toolbox command might request creating a toolbox, which might involve downloading a container image>
?[fedora@toolbox ~]$ dnf search neofetch
<snip>
=== Name Exactly Matched: neofetch ===
neofetch.noarch : CLI system information tool written in Bash
=== Summary Matched: neofetch ===
fastfetch.x86_64 : Like neofetch, but much faster because written in c
新方法(rpm-ostree search)
從 version 2023.6 開(kāi)始,rpm-ostree
支持 search
命令,允許用戶(hù)使用 rpm-ostree
搜索可用的軟件包。一個(gè)示例命令是:
rpm-ostree search *kernel
要使用搜索命令,請(qǐng)首先確保你使用的是 rpm-ostree
2023.6 或更高版本:
$ rpm-ostree --version
rpm-ostree:
Version: '2023.8'
Git: 9a99d0af32640b234318815a256a2d11e35fa64c
Features:
- rust
- compose
- container
- fedora-integration
如果滿(mǎn)足版本要求,你應(yīng)該能夠運(yùn)行 rpm-ostree search <搜索詞>
。
這是一個(gè)使用 rpm-ostree search
搜索 neofetch
的示例:
$ rpm-ostree search neofetch
===== Name Matched =====
neofetch : CLI system information tool written in Bash
===== Summary Matched =====
fastfetch : Like neofetch, but much faster because written in c
(題圖:DA/5d27838e-6068-46a6-9bca-4ec486d65c46)