PRF:20180607 Find If A Package Is Available For Your Linux Distribution.md

@davidchenliang
This commit is contained in:
Xingyu.Wang 2018-08-29 01:01:56 +08:00
parent a0c247f46e
commit 75bf08adc5

View File

@ -5,174 +5,133 @@
![](https://www.ostechnix.com/wp-content/uploads/2018/06/Whohas-720x340.png)
有时你可能会想知道如何在你的Linux发行版上寻找一个特定的软件包。或者你仅仅只是想知道安装在你的Linux上的软件包有什么版本。如果这就是你想知道的信息你今天走运了。我正好知道一个小工具能帮你抓到上述信息下面隆重推荐--'Whohas'这是一个命令行工具它能一次查询好几个软件包列表以检查的你软件包是否存在。目前whohas支持Arch Debian Fedora Gentoo, Mandriva openSUSE Slackware Source Mage Ubuntu FreeBSD NetBSD OpenBSDLCTT译注*BSD不是Linux Fink MacPorts 和Cygwin. 使用这个小工具软件包的维护者能轻而易举从别的Linux发行版里找到ebuilds, pkgbuilds 等等类似的包定义文件。
'Whohas'是用Perl语言开发的免费开源的工具。
有时,你可能会想知道如何在你的 Linux 发行版上寻找一个特定的软件包。或者,你仅仅只是想知道安装在你的 Linux 上的软件包有什么版本。如果这就是你想知道的信息,你今天走运了。我正好知道一个小工具能帮你抓到上述信息,下面隆重推荐—— Whohas这是一个命令行工具它能一次查询好几个软件包列表以检查的你软件包是否存在。目前whohas 支持 Arch、Debian、Fedora、Gentoo、Mandriva、openSUSE、Slackware、Source Mage、Ubuntu、FreeBSD、NetBSD、OpenBSDLCTT 译注:*BSD 不是 Linux、Fink、MacPorts 和 Cygwin。使用这个小工具软件包的维护者能轻而易举从别的 Linux 发行版里找到 ebuilds、 pkgbuilds 等等类似的包定义文件。
###在你的Linux中寻找一个特定的包
Whohas 是用 Perl 语言开发的自由、开源的工具。
**安装 Whohas**
### 在你的 Linux 中寻找一个特定的包
#### 安装 Whohas
Whohas 在Debian, Ubuntu, Linux Mint的默认软件仓库里提供。如果你正在使用某种基于DEB的系统 你可以用如下命令安装:
Whohas 在 Debian、Ubuntu、Linux Mint 的默认软件仓库里提供。如果你正在使用某种基于 DEB 的系统,你可以用如下命令安装:
```
$ sudo apt-get install whohas
```
对基于Arch的系统[**AUR**][1]里就有提供whohas。你能使用任何的ARU助手程序来安装。
对基于 Arch 的系统,[AUR][1] 里就有提供 whohas。你能使用任何的 AUR 助手程序来安装。
使用 [**Packer**][2]:
使用 [Packer][2]
```
$ packer -S whohas
```
或使用[**Trizen**][3]:
或使用[Trizen][3]
```
$ trizen -S whohas
```
使用[**Yay**][4]:
使用[Yay][4]
```
$ yay -S whohas
```
使用[**Yaourt**][5]:
使用 [Yaourt][5]
```
$ yaourt -S whohas
```
在别的 Linux 发行版上,从[这里][6]下载源代码并手工编译安装。
在别的Linux发行版上从[**here**][6]下载源代码并手工编译安装。
#### 使用方法
**使用方法**
Whohas 的主要目标是想让你知道:
* 哪个 Linux 发布版提供了用户依赖的包。
* 对于各个 Linux 发行版,指定的软件包是什么版本,或者在这个 Linux 发行版的各个不同版本上,指定的软件包是什么版本。
Whohas的主要目标是想让你知道
* 哪个Linux发布版提供了用户依赖的包。
* 对于各个Linux发行版指定的软件包是什么版本或者在这个Linux发行版的各个不同版本上指定的软件包是什么版本。
让我们试试看上面的的功能比如说哪个Linux发行版里有**vim**这个软件?我们可以运行如下命令:
让我们试试看上面的的功能,比如说,哪个 Linux 发行版里有 vim 这个软件?我们可以运行如下命令:
```
$ whohas vim
```
这个命令将会显示所有包含可安装的vim的Linux发行版的信息包括包的大小仓库地址和下载URL。
这个命令将会显示所有包含可安装的 vim 的 Linux 发行版的信息包括包的大小仓库地址和下载URL。
![][8]
你甚至可以通过管道将输出的结果按照发行版的字母排序只需加入sort 命令即可。
你甚至可以通过管道将输出的结果按照发行版的字母排序,只需加入 `sort` 命令即可。
```
$ whohas vim | sort
```
请注意上述命令将会显示所有以**vim**开头的软件包包括vim-spell,vimcommander, vimpager等等。你可以继续使用Linux的grep命令在vim的前后加上空格来缩小你的搜索范围直到满意为止。
请注意上述命令将会显示所有以 vim 开头的软件包,包括 vim-spell、vimcommander、vimpager 等等。你可以继续使用 Linux 的 `grep` 命令在 “vim” 的前后加上空格来缩小你的搜索范围,直到满意为止。
```
$ whohas vim | sort | grep " vim"
$ whohas vim | sort | grep "vim "
$ whohas vim | sort | grep " vim "
```
所有将空格放在包名字前面的搜索将会显示以包名字结尾的包。所有将空格放在包名字后面的搜索将会显示以包名字开头的包。前后都有空格将会严格匹配。
又或者,你就使用‘--strict来严格限制结果。
又或者,你就使用 `--strict` 来严格限制结果。
```
$ whohas --strict vim
```
有时你想知道一个包在不在一个特定的Linux发行版里。例如你想知道vim是否在Arch Linux里请运行
有时,你想知道一个包在不在一个特定的 Linux 发行版里。例如,你想知道 vim 是否在 Arch Linux 里,请运行:
```
$ whohas vim | grep "^Arch"
```
LCTT译注在结果里搜索以Arch开头的Linux
LCTT译注在结果里搜索以 Arch 开头的 Linux
Linux 发行版的命名缩写为:'archlinux'、'cygwin'、'debian'、'fedora'、 'fink'、'freebsd'、'gentoo'、'mandriva'、'macports'、'netbsd'、'openbsd'、'opensuse'、'slackware'、'sourcemage' 和 'ubuntu'。
Linux发行版的命名缩写为'archlinux', 'cygwin', 'debian', 'fedora', 'fink', 'freebsd', 'gentoo', 'mandriva', 'macports', 'netbsd', 'openbsd', 'opensuse', 'slackware', 'sourcemage'和ubuntu
你也可以用**-d**选项来得到同样的结果。
你也可以用 `-d` 选项来得到同样的结果。
```
$ whohas -d archlinux vim
```
这个命令将在仅仅 Arch Linux 发行版下搜索 vim 包。
这个命令将在仅仅Arch Linux发行版下搜索vim包。
如果要在多个Linux发行版下搜索arch linux,'ubuntu',请使用如下命令。
如果要在多个 Linux 发行版下搜索,如 'archlinux'、'ubuntu',请使用如下命令。
```
$ whohas -d archlinux,ubuntu vim
```
你甚至可以用whohas来查找哪个发行版有'whohas'包。
你甚至可以用 `whohas` 来查找哪个发行版有 whohas 包。
```
$ whohas whohas
```
更详细的信息,请参照手册。
```
$ man whohas
```
**最后的话**
当然任何一个Linux发行版的包管理器都能轻松的在对应的软件仓库里找到自己管理的包。不过, whohas帮你整合并比较了在不同的Linux发行版下指定的软件包信息这样你能轻易的跨平台之间进行比较。试一下whohas你一定不会失望的。
#### 最后的话
当然,任何一个 Linux 发行版的包管理器都能轻松的在对应的软件仓库里找到自己管理的包。不过whohas 帮你整合并比较了在不同的 Linux 发行版下指定的软件包信息,这样你能轻易的跨平台之间进行比较。试一下 whohas你一定不会失望的。
好了,今天就到这里吧,希望前面讲的对你有用,下次我还会带来更多好东西!!
欧耶!
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/find-if-a-package-is-available-for-your-linux-distribution/
@ -180,7 +139,7 @@ via: https://www.ostechnix.com/find-if-a-package-is-available-for-your-linux-dis
作者:[SK][a]
选题:[lujun9972](https://github.com/lujun9972)
译者:[DavidChenLiang](https://github.com/davidchenliang)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出