如何確定你的Linux發(fā)行版中有沒(méi)有某個(gè)軟件包
有時(shí),你可能會(huì)想知道如何在你的 Linux 發(fā)行版上尋找一個(gè)特定的軟件包。或者,你僅僅只是想知道安裝在你的 Linux 上的軟件包有什么版本。如果這就是你想知道的信息,你今天走運(yùn)了。我正好知道一個(gè)小工具能幫你抓到上述信息,下面隆重推薦—— Whohas:這是一個(gè)命令行工具,它能一次查詢(xún)好幾個(gè)軟件包列表,以檢查的你軟件包是否存在。目前,whohas 支持 Arch、Debian、Fedora、Gentoo、Mandriva、openSUSE、Slackware、Source Mage、Ubuntu、FreeBSD、NetBSD、OpenBSD(LCTT 譯注:*BSD 不是 Linux)、Fink、MacPorts 和 Cygwin。使用這個(gè)小工具,軟件包的維護(hù)者能輕而易舉從別的 Linux 發(fā)行版里找到 ebuilds、 pkgbuilds 等等類(lèi)似的包定義文件。
Whohas 是用 Perl 語(yǔ)言開(kāi)發(fā)的自由、開(kāi)源的工具。
在你的 Linux 中尋找一個(gè)特定的包
安裝 Whohas
Whohas 在 Debian、Ubuntu、Linux Mint 的默認(rèn)軟件倉(cāng)庫(kù)里提供。如果你正在使用某種基于 DEB 的系統(tǒng),你可以用如下命令安裝:
$ sudo apt-get install whohas
對(duì)基于 Arch 的系統(tǒng),AUR 里就有提供 whohas。你能使用任何的 AUR 助手程序來(lái)安裝。
使用 Packer:
$ packer -S whohas
或使用Trizen:
$ trizen -S whohas
使用Yay:
$ yay -S whohas
使用 Yaourt:
$ yaourt -S whohas
在別的 Linux 發(fā)行版上,從這里下載源代碼并手工編譯安裝。
使用方法
Whohas 的主要目標(biāo)是想讓你知道:
- 哪個(gè) Linux 發(fā)布版提供了用戶(hù)依賴(lài)的包。
- 對(duì)于各個(gè) Linux 發(fā)行版,指定的軟件包是什么版本,或者在這個(gè) Linux 發(fā)行版的各個(gè)不同版本上,指定的軟件包是什么版本。
讓我們?cè)囋嚳瓷厦娴牡墓δ?,比如說(shuō),哪個(gè) Linux 發(fā)行版里有 vim 這個(gè)軟件?我們可以運(yùn)行如下命令:
$ whohas vim
這個(gè)命令將會(huì)顯示所有包含可安裝的 vim 的 Linux 發(fā)行版的信息,包括包的大小,倉(cāng)庫(kù)地址和下載URL。
你甚至可以通過(guò)管道將輸出的結(jié)果按照發(fā)行版的字母排序,只需加入 sort
命令即可。
$ whohas vim | sort
請(qǐng)注意上述命令將會(huì)顯示所有以 vim 開(kāi)頭的軟件包,包括 vim-spell、vimcommander、vimpager 等等。你可以繼續(xù)使用 Linux 的 grep
命令在 “vim” 的前后加上空格來(lái)縮小你的搜索范圍,直到滿(mǎn)意為止。
$ whohas vim | sort | grep " vim"
$ whohas vim | sort | grep "vim "
$ whohas vim | sort | grep " vim "
所有將空格放在包名字前面的搜索將會(huì)顯示以包名字結(jié)尾的包。所有將空格放在包名字后面的搜索將會(huì)顯示以包名字開(kāi)頭的包。前后都有空格將會(huì)嚴(yán)格匹配。
又或者,你就使用 --strict
來(lái)嚴(yán)格限制結(jié)果。
$ whohas --strict vim
有時(shí),你想知道一個(gè)包在不在一個(gè)特定的 Linux 發(fā)行版里。例如,你想知道 vim 是否在 Arch Linux 里,請(qǐng)運(yùn)行:
$ whohas vim | grep "^Arch"
(LCTT譯注:在結(jié)果里搜索以 Arch 開(kāi)頭的 Linux)
Linux 發(fā)行版的命名縮寫(xiě)為:'archlinux'、'cygwin'、'debian'、'fedora'、 ‘fink'、'freebsd'、'gentoo'、'mandriva'、'macports'、'netbsd'、'openbsd'、'opensuse'、'slackware'、'sourcemage’ 和 ‘ubuntu'。
你也可以用 -d
選項(xiàng)來(lái)得到同樣的結(jié)果。
$ whohas -d archlinux vim
這個(gè)命令將在僅僅 Arch Linux 發(fā)行版下搜索 vim 包。
如果要在多個(gè) Linux 發(fā)行版下搜索,如 'archlinux'、'ubuntu',請(qǐng)使用如下命令。
$ whohas -d archlinux,ubuntu vim
你甚至可以用 whohas
來(lái)查找哪個(gè)發(fā)行版有 whohas 包。
$ whohas whohas
更詳細(xì)的信息,請(qǐng)參照手冊(cè)。
$ man whohas
***的話(huà)
當(dāng)然,任何一個(gè) Linux 發(fā)行版的包管理器都能輕松的在對(duì)應(yīng)的軟件倉(cāng)庫(kù)里找到自己管理的包。不過(guò),whohas 幫你整合并比較了在不同的 Linux 發(fā)行版下指定的軟件包信息,這樣你能輕易的跨平臺(tái)之間進(jìn)行比較。試一下 whohas,你一定不會(huì)失望的。
好了,今天就到這里吧,希望前面講的對(duì)你有用,下次我還會(huì)帶來(lái)更多好東西??!
歐耶!