第21章 其他文件系统
附录 D. OpenPGP 密钥
4.3.寻找所需的应用程序
FreeBSD 的可用应用程序列表一直在增加。有很多方法可以找到要安装的软件:
  • FreeBSD 网站维护着一份最新的可搜索的所有可用应用程序的列表,网址是 https://www.FreeBSD.org/ports/。可以通过应用程序名称或软件类别来搜索这些 ports。
  • Dan Langille 维护着 FreshPorts.org,它提供了一个全面的搜索工具,并跟踪 Ports Collection 中应用程序的变化。注册用户可以创建一个自定义的观察列表,以便在他们所观察的 被更新时收到一封自动的电子邮件。
  • 如果找到一个特定的应用程序变得具有挑战性,可以尝试在 SourceForge.net 或 GitHub.com 这样的网站上搜索,然后再到 FreeBSD 网站上看看这个应用程序是否被移植了。
  • 要为一个应用程序搜索二进制包库:
1
# pkg search subversion
2
git-subversion-1.9.2
3
java-subversion-1.8.8_2
4
p5-subversion-1.8.8_2
5
py27-hgsubversion-1.6
6
py27-subversion-1.8.8_2
7
ruby-subversion-1.8.8_2
8
subversion-1.8.8_2
9
subversion-book-4515
10
subversion-static-1.8.8_2
11
subversion16-1.6.23_4
12
subversion17-1.7.16_2
Copied!
软件包名称包括版本号,如果是基于 python 的 port,则包括软件包所使用的 python 版本的版本号。一些 ports 也有多个版本。在 Subversion 的情况下,有不同的版本,以及不同的编译选项。在这种情况下,Subversion 的静态链接版本。在指出要安装哪个软件包时,最好是通过port origin来指定应用程序,也就是 ports 树中的路径。用-o重复 pkg 搜索来列出每个软件包的来源:
1
# pkg search -o subversion
2
devel/git-subversion
3
java/java-subversion
4
devel/p5-subversion
5
devel/py-hgsubversion
6
devel/py-subversion
7
devel/ruby-subversion
8
devel/subversion16
9
devel/subversion17
10
devel/subversion
11
devel/subversion-book
12
devel/subversion-static
Copied!
在安装了 ports-mgmt/pkg 或 ports-mgmt/pkg-devel 之后,pkg 搜索也支持通过 shell globs、正则表达式、完全匹配、通过描述或版本库数据库中的任何其他字段进行搜索。请参阅 pkg-search(8) 了解更多细节。
  • 如果已经安装了 Ports Collection,有几种方法可以查询本地版本的 ports 树。要想知道某个 port 在哪个类别中,请输入whereis 文件,其中文件是要安装的程序。
1
# whereis lsof
2
lsof: /usr/ports/sysutils/lsof
Copied!
另外,也可以使用 echo(1)语句:
1
# echo /usr/ports/*/*lsof*
2
/usr/ports/sysutils/lsof
Copied!
请注意,这也将返回任何下载到/usr/ports/distfiles目录中的匹配文件。
  • 另一种寻找软件的方法是使用 Ports Collection 的内置搜索机制。要使用这个搜索功能,请cd/usr/ports,然后运行make search name=program-name,其中program-name是软件的名字。例如,要搜索lsof
1
# cd /usr/ports
2
# make search name=lsof
3
Port: lsof-4.88.d,8
4
Path: /usr/ports/sysutils/lsof
5
Info: Lists information about open files (similar to fstat(1))
7
Index: sysutils
8
B-deps:
9
R-deps:
Copied!
提示:
内置的搜索机制使用一个索引信息文件。如果有消息表明需要 INDEX,运行make fetchindex来下载当前的索引文件。有了 INDEX 的存在,make search就能执行所要求的搜索。
Path: 指出在哪里可以找到该 port。
要想收到更少的信息,请使用快速搜索功能:
1
# cd /usr/ports
2
# make quicksearch name=lsof
3
Port: lsof-4.88.d,8
4
Path: /usr/ports/sysutils/lsof
5
Info: Lists information about open files (similar to fstat(1))
Copied!
要进行更深入的搜索,可以使用make search key=stringmake quicksearch key=string,其中string是要搜索的一些文本。这些文本可以是注释、描述或依赖关系,以便在程序名称不详的情况下找到与特定主题有关的 port。
在使用搜索或快速搜索时,搜索字符串是不区分大小写的。搜索LSOF将产生与搜索lsof相同的结果。
Copy link
Edit on GitHub