寻找 Linux 软件

作者:Erik Troan

在 comp.os.linux Usenet 论坛中,最常见的问题之一是“在哪里可以找到程序来做 在此处插入您最喜欢的任务?”大约一半的此类问题最终演变成关于 WYSIWYG 与标记风格文本编辑优点的为期三个月的讨论,而另一半则在没有任何答案的情况下默默无闻。

在互联网上查找 Linux 软件非常容易,但在开始查找之前,您应该接受关于自由软件的三个原则

1) 存在与您想要的非常接近的东西。互联网上有数千 GB 的匿名 ftp 空间,其中之一将包含您认为有用的东西——如果您能找到它的话。

2) 您找到的任何东西都无法满足您的所有需求。您很快将要涉足的大多数免费程序都是由一到两位程序员编写的,他们编写的程序完全满足了他们的需求。

3) 您找到的任何东西都会超出您的需求。Unix 软件倾向于以惊人的速度积累晦涩的功能。

每个人每年寻找基于 X 的 Ami Pro 克隆的“朝圣之旅”都说明了这些原则。虽然 Linux 确实存在基于 GUI 的、有点 WYSIWYG 的文字处理技术,但它们中的任何一种(ez、idoc、TeX/LaTeX/xdvi/gs 组合或 groff/gs 组合)都无法完全满足您的想法。 但是,您可以一边使用 ez,一边平衡您的支票簿,并使用 TeX 使每个其他字符倒置打印。

查找 Linux 软件的第一个地方是 Linux 软件地图 (LSM),由 Lars Wirzenius (lars.wirzenius@helsinki.fi ) 维护。它是由向主要 Linux 归档站点(sunsite.unc.edu 和 tsx-11.mit.edu)提交文件的人员提供的 lsm 条目的集合。LSM 包括软件包的描述以及在两个站点上可以找到软件包的完整路径名。

搜索 LSM 最简单的方法是通过万维网。许多 Web 搜索引擎可用,例如 siva.cshl.org/lsm/lsm.html。该站点提供通过可搜索索引进行搜索,大多数 Web 浏览器都支持该索引。另一个 Web 搜索引擎位于 harvest.cs.colorado.edu/brokers/lsm/query.html。此界面基于表单,并非所有浏览器都支持它(尽管 lynx、Mosaic 和 Netscape 都支持)。当找到匹配项时,超文本链接使用户能够下载匹配的文件,而无需离开浏览器。

如果您没有 Web 访问权限(或者如果您只是喜欢在命令行上做事),您可以从 sunsite.unc.edu:/pub/Linux/docs/LSM.gz ftp 最新的 LSM 作为大型文本文件。一些基于 Linux 的工具可以更轻松地搜索此文件,可以从 sunsite.unc.edu 的 /pub/Linux/search 目录中通过 ftp 获取。

LSM 中的每个软件包都有描述和关键字字段,为搜索提供了极好的基础。通过科罗拉多州网站搜索“sound mixer”(混音器)找到了 15 个匹配项,显示了搜索 LSM 的有效性。

但是,LSM 很快就会过时。其中的文件名和版本号通常是错误的,所以不要认为您已经完成了。站点名称、目录路径和软件包名称可用于查找您正在寻找的软件,即使特定文件名是错误的。使用 ftp 连接到站点并 cd 到 LSM 提到的目录,您可能会找到几个满足您需求的不同的软件包。

如果搜索 LSM 无法找到您需要的内容,请查看 sunsite.unc.edu 和 tsx-11.mit.edu ftp 站点。这两个站点都有大型 Linux 目录树(分别位于 /pub/Linux 和 /pub/linux 中),其中包含二进制文件和源代码。大多数 Linux CD-ROM 发行商都包含一个或两个站点的 CD-ROM,这提供了 ftp 的快速替代方案。

Sunsite 提供了一个特别方便查找软件的文件——/pub/Linux/INDEX.whole.gz。它包含 sunsite 所有文本 INDEX 文件的串联,这意味着它几乎描述了 sunsite Linux 目录中的所有文件。使用 grep 或文本编辑器在此文件中搜索关键字,您可以非常快速地浏览 sunsite 的所有 2 GB 内容。在此文件中查找单词“mixer”(混音器)找到了 10 行提到该单词,其中一行是一个充满音频混音器的目录的名称!如果 sunsite 有您要查找的内容,此方法肯定会找到它。

Tsx-11.mit.edu 的归档文件没有那么好的搜索方式。它提供了两个文件,ls-lR 和 find-ls.gz,列出了系统中的所有文件。如果您知道(或可以猜测)您想要的文件名,这些文件将帮助您找到它。

如果这些技术都无济于事,那么是时候看看 Linux 世界之外了。我发现 Usenet FAQ 是免费软件的极佳信息来源。comp.compilers FAQ 包含免费语言工具的广泛列表,包括编译器和解释器。同样,rec.sport.football FAQ 介绍了包含足球迷软件的 ftp 站点 (ftp.vnet.com),而 comp.db FAQ 则包含大量免费数据库软件包列表。

查找 FAQ 最困难的部分是找到它已发布到的新闻组的名称。如果您的新闻阅读器允许您通过正则表达式搜索新闻组,那是最好的方法。rn 和 trn 都允许您使用新闻组选择级别的“a”命令来执行此操作。键入“a”后跟正则表达式会返回您可以访问的所有满足该表达式的新闻组的名称。例如,要查找与计算机声音相关的新闻组,“a comp.*sound”(返回 6 个匹配项)将是一个好的开始。如果您不熟悉正则表达式,GNU grep 手册页提供了很好的介绍,《Linux Journal》第 18 期中 grep 的介绍也是如此。如果您的新闻阅读器不允许您搜索新闻组,请尝试 grepping 您主目录中的 .newsrc 文件(如果您有的话)。

一旦您获得您想要仔细阅读其 FAQ 的新闻组的名称,剩下的就很容易了。rtfm.mit.edu 站点收集发布到网络的所有 FAQ,并在新版本发布时自动更新它们。此站点非常繁忙,如果您无法匿名登录,则会提供镜像列表。

/pub/usenet 目录包含每个有一个或多个 FAQ 的新闻组的目录。这些目录包含 FAQ 本身。

如果您找不到可能有用的新闻组的名称,那么一切还没有结束。Rtfm 有一个单独的 FAQ 目录树,与 Usenet 的层次结构相同。如果您 ftp 进入并 cd 到 /pub/usenet-by-hierarchy,您将获得一个目录,其中包含每个顶级新闻域(例如 comp、alt、rec 和 talk)的子目录。这些子目录包含更进一步的子目录。例如,新闻组 comp.sys.ibm.pc.soundcard.misc 的 FAQ 将存储在 rtfm.mit.edu 上的 /pub/usenet-by-hierarchy/comp/sys/ibm/pc/soundcard/misc 目录中。

查找程序的另一个资源是 comp.archives 新闻组。它包含来自各种归档站点的定期帖子,详细说明了它们的内容。通读这些帖子或搜索其归档(例如 ftp://wuarchive.wustl.edu/usenet/comp.archives 中的归档)可以帮助缩小要浏览的站点范围。

最后的选择(也是最难使用的)是 archie 搜索服务。虽然 archie 是为 ftp 搜索而设计的,但它是一项旧服务,并且相当难以使用。网络上各种 archie 数据库都包含来自全球约 1200 个 ftp 站点的文件列表,总共提供约 250 万个可搜索的唯一文件名(整个数据库目前约为 400MB)。如果可以从网络 ftp 文件,archie 就会知道它。

万维网提供了进行 archie 搜索的最简单方法。web 上 archie 网关的庞大列表可在 web.nexor.co.uk/archie.html 获得。虽然其中许多网关支持基于表单的浏览器,但大多数网关也提供可搜索的索引。

还可以从 archie.mcgill.ca 的 /pub/archie-clients 目录获得几个直接 archie 搜索客户端,并随附一些 Linux 发行版。它们允许从命令行或通过 X 搜索引擎进行搜索。

最后,还有几个 telnet 接口连接到 archie 数据库。例如,telnet 到 archie.mcgill.ca 提供交互式 archie 搜索会话。虽然它可能有点神秘,但键入“help”应该可以帮助您弄清楚。

当您搜索 archie 时,重要的是要记住它只是索引了文件路径。如果您知道您要查找的文件名,这不是问题,否则您必须猜测可能的名称是什么。

您会发现,当您搜索找到匹配项的术语时,匹配项会如潮水般涌来。使用其中一个 archie WWW 界面搜索子字符串“mixer”(混音器)找到了 95 个匹配项,这正是我设置的匹配项限制。它找到的所有站点都在欧洲,这表明 archie 尚未开始搜索任何其他大洲!

关于 archie 的最后一件事是它可能非常慢。由于它包含的信息量巨大,它是一种非常流行的网络搜索方式,并且其负载导致搜索时间甚至在深夜也长达数分钟。

Linux 软件地图、主要 Linux ftp 站点、Usenet FAQ、comp.archives 和 archie 都提供了在网络上查找免费 Linux 软件的有用方法。

Erik Troan (ewt@redhat.com) 维护 sunsite.unc.edu /pub/Linux 目录树,并且是 Red Hat Software 的开发人员。

加载 Disqus 评论