在 MacOS X 上的开源软件主要有这几个来源

原文出处:

http://exaos.livejournal.com/7958.html

目前,在 MacOS X 上的开源软件主要有这几个来源:
1. GNU MacOS X Public Archive --- http://www.osxgnu.org/
由于大部分的 OS X 用户习惯于用 GUI 工具来安装软件,该网站提供了 OS X 的包创建与
安装工具,用于移植那些自由或开源软件到 OS X 系统中来。我没有使用过这个网站提供
的工具,因为我比较熟悉 Linux 下的操作,对于类似 rpm/dpkg 的包管理也算比较熟练。
简单浏览了这个网站提供的一些工具,大多数比较老了。好象它的负责人又生病住院了,
很是不幸。如果你比较喜欢图形,对于命令行式的操作不太熟悉,可以去这个网站试试。

2. Fink Homepage --- http://fink.sourceforge.net/
Fink 工程的目的是把所有 Unix 下的开源软件都移植到 Darwin 和 MacOS X 上来。它修
改源代码,使它们可以在 MacOS X 上进行编译,并提供关联下载。所谓的关联下载,也就
是说,如果你需要编译安装 gnome-games,而 gnome-games 这个软件包同时又需要 libg
nome2 等软件包,fink 系统会自动帮助你编译安装所依赖的一切库、其它软件等。Fink
使用 Debian 的工具,比如 dpkg 和 apt-get 来管理编译好的二进制包。你可以选择使用
已编译好的二进制包或者从源代码重新编译。
我使用的就是 Fink,感觉挺好。我不太常从源代码编译,主要是太耗时间。使用别人编译
好的包很方便的。虽然有人说 Fink 的稳定版中的包有点旧,但绝大部分的软件只不过差
一个 minor 发行号,比如最新的是 21.3.50,它提供的是 21.3.48,我想这足够你使用的
。对于想尝鲜的人,何不自己动手从 CVS 中编译呢?
对于关联下载再多说两句。对于从 Windows 平台或者旧的 MacOS Classic 平台过来的人
,他们安装软件基本上都是点点鼠标,很少去关心软件是否还依赖其它的东西等问题。对
于从 Linux/Unix 下过来的人,常常比较了解,当你使用一个软件的时候,通常它会依赖
许多其它的库。这并不是说 Windows 或者 MacOS Classic 上的软件不依赖其它的东西,
而是因为在 Windows 平台或者 MacOS Classic 平台,你所安装的软件需要的库基本都是
由系统提供了,即使系统没有提供的,在你的安装包里也会自带一份。Linux/Unix 的设计
哲学可以在 Eric Steven Raymond 的著作 The Art of Unix Programming 中找到:Basi
cs of the Unix Philosophy。根据 Unix 的设计哲学,每个程序只专注于一件事情,程序
之间提供相互可使用的接口。只专注于一件事情的程序会变得很小巧很精致,把这些小巧
精致的程序组合起来就可以做许多事情。同样,每个 Unix 下的库也只提供它所要提供的
功能,善于利用这些库,你就可以开发出很小巧但功能很强大的程序出来。所以, Linux
/Unix 下的库就显得很多,当你安装一个程序的时候,你就会需要同时安装许多它所依赖
的东西。当然,许多经常被使用的库早就会集成在系统之中,因此你所要安装的依赖库也
不会很多。关联下载,更是解决了你去寻找软件包之间相互依赖关系的麻烦。
3. DarwinPorts Homepage --- http://darwinports.opendarwin.org/
DarwinPorts 提供从源码编译软件的 ports ,即移植软件时所要做的一些必要的修改,比
如修改针对指定平台的编译选项、修改编译时的参数定义等。熟悉 BSD 系统管理的人肯定
都熟悉 ports 的使用。我只简单尝试过 FreeBSD ,不太了解 ports ,因此不便多言。这
儿提供的 ports 都是要求你从源码编译起,因此比较耗时间,这也是我最初安装完 Darw
inPorts 之后又转向 Fink 的原因。如果你总是喜欢一切从头开始,建议你使用它,因为
源码总会是最新的。
4. i-Installer --- http://www.rna.nl/ii.html
使用 BSD 授权的 i-Installer 是一个软件安装与设置的应用程序,它可以安装与管理 i
-Packages,即以 .ii2 结尾的那些软件包。有许多网站提供在线的 i-Packages 包信息,
只要你连网,就可以非常方便地升级与安装所需要的 i-Packages: 与 TeX 相关的包、Gh
ostscript 、各种图形格式及转换程序、字体转换等。
在设置 TeX 系统时,我曾经想用这个 i-Installer,但由于我更习惯于 Fink 的方式,i
-Installer 对于我来说没有太大的必要,因此没有使用。有许多在线的 i-Packages 资源
,比如:
(1). http://tug.org/i-packages/iid/gwrelative.iid (i-Installer 的默认地址)
(2). http://www.ntg.nl/macosx-tex/i-packages/iid/gwrelative.iid
(3). http://www.math.utah.edu/ftp/pub/i-packages/iid/gwrelative.iid
(4). http://bloch.ling.yale.edu/i-packages/iid/gwrelative.iid
在这些资源中,你可以找到非常多的开源软件。

以上谈到许多为什么要用开源软件、如何在 MacOS X 上找到开源软件等。现在来谈谈我们
常用的商业软件有哪些可用的开源替代,按应用分几个方面进行。

一、办公类
这类软件恐怕是大家使用最多的:写文章、简单的统计、做幻灯、做报表、画流程图、画
示意图等等。在 MacOS 平台,大家最常提到的仍然是微软的 Office v.X for Mac 或者
Office 2004 等。相关的商业软件也非常多:AppleWorks、MS Office、OmniOutliner、O
mniGraffle Pro、Keynote、Adobe Acrobat、专门为剧作开发的 Final Draft 等等。也儿
也是种商业软件的竞争最激烈的场所。不知道国内的永中 Office 是不是也想在 MacOS X
上再争一席之地,他们的永中 Office 是基于 Java 开发的,而 Java 环境是 MacOS X
的基本组成之一,移植是没有太大问题的。这儿也是大家用盗版最多的地方。我们真的不
得不用盗版吗?

1. 字处理程序
1.1 TeX/MetaPost 系统
作为科研人员,写论文是最基本的日常工作,而许多国际著名的杂志是只接收 TeX/LaTeX
投稿的,倒是国内有些杂志非要接受 Word 文档。Word 并不是一种在科技界通用的文档
格式,PDF/PS 远比它要流行得多,我们为什么非要用它呢?对于写论文,在 MacOS X 上
使用 TeX 可以很好地生成 PDF 这种通用的格式(关于如何在 MacOS X 上配置中文的 Te
X 环境,我将另文阐述),并且可以结合 pp4slide 等 TeX 包生成很漂亮的 PDF 格式的
幻灯片。
1.2 所见即所得(WYSIWYG)
对于习惯于 Word 操作模式的人,可以使用 OpenOffice.org。有一个 NeoOffice (http
://www.neooffice.org/),是基于 OpenOffice.org 开发的软件包,不需要使用 X11 fo
r Mac 系统,目前也进展得很好。可以见这个屏幕截图:http://www.planamesa.com/neo
java/en/sample.jpg。
对于写英文文章来说,还可以选择 LyX for Mac (http://www.lyx.org/):这是一个基于
TeX 的 WYSIWYG 字处理软件。另外,使用 X11 系统,还可以选择 TeXmacs (http://ww
w.texmacs.org/):它可以生成 tex 文档,也可以生成 pdf 等。TeXmacs 还可做许多程序
的前端,比如在你的文档中可以直接调用 octave、maxima、R 等程序,运行结束后,这些
程序的输出结果就直接留在了你的文章中。
2. 幻灯片
2.1 TeX + ConTeXt / pp4slide 等
使用 TeX 系统可以生成 PDF 格式的演示文档,加上 pp4slide 等程序,可以生成具有动
态效果的 PDF 幻灯。 PDF 文档中可以内嵌入 JavaScript 程序、QuickTime 媒体等,其
表现力非常之强,你需要的实在只是你的想象力罢了。
2.2 NeoOffice 套件之一:impress
3. 统计表格
NeoOffice 套件之一:math
4. 示意图、统计图等
NeoOffice 套件之一: Draw

二、媒体设计类
对于多媒体设计,如果你是专业人员,没有什么话说,那点买软件的投入也是必需的。对
于非专业人士,有这些开源软件可供选择:
1. 类似于 Photoshop 的图片处理软件 ---- gimp
GIMP(http://gimp.org/macintosh/) 是 Linux/Unix 下一个非常经典的程序,有很多的插
件可用,处理日常的图片戳绰绰有余。
2. 类似于 Maya 的三维场景设计软件 ---- blender3D
Blender: http://blender.org/

三、网页编辑与网站设计
在 Fink 中有许多,比如 quanta (http://fink.sourceforge.net/pdb/package.php/qua
nta)、amaya(http://fink.sourceforge.net/pdb/package.php/amaya) 等。另外,可以编
辑 HTML 文件的程序真是太多,比如 Mozilla 中就自带有 HTML 编辑器。实在不需要多举
例。至于网站设计,普通用户可能用得不多,个人主页的服务提供商一般也同时会提供现
成的模板和在线编辑功能。如果你是从头开始设计网站,你的计算机水平已经不需要我来
多嘴了。

四、数学、工程设计类工具
1. 矩阵计算
scilab: http://fink.sourceforge.net/pdb/package.php/scilab,主页为 http://www-
rocq.inria.fr/scilab/
octave: http://fink.sourceforge.net/pdb/package.php/octave,主页为 http://www.
octave.org/
2. 符号推演
maxima: http://fink.sourceforge.net/pdb/package.php/maxima,主页为 http://maxi
ma.sourceforge.net/
3. 统计
R: Fink 的版本在这里 --- http://fink.sourceforge.net/pdb/package.php/r,主页在
这里 --- http://www.r-project.org/。由于 R-project 提供了 MacOS X 的版本,其实
Fink 中的 R 已经没有必要的。
4. 机械设计
Qcad: http://www.ribbonsoft.com/qcad.html

五、个人助理
1. 财务管理
GnuCash: 我很喜欢的一个 GNU 的软件,Fink 版本在这里 --- http://fink.sourceforg
e.net/pdb/package.php/gnucash,主页为 http://www.gnucash.org/。可惜没有 OS X 的
本地化版本,即 Acqua 界面的。

在 Fink 中有非常丰富的软件。其实 OS X 平台的开源软件不少,需要的是发现。如果大
家能够读完此文之后,在需要用软件时,首先想到的是能不能找到对应的开源软件,我的
目的也就达到了。