[LinuxFocus-icon]
首页  |  站点地图  |  索引  |  搜索

新闻 | 过往期刊 | 链接 | 关于LF
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Turkce  

Georges Tarbouriech
by Georges Tarbouriech
<georges.t(at)linuxfocus.org>

关于作者:

Georges 是位Unix的长期使用者。作为一个NeXTSTEP的爱好者,他非常喜爱这项以提供Unix系统观感(以及其他很多东西)为目标自由项目。


目录:

 

GNUMail.app,可移植性的证明

mail

摘要:

GNUMail.app 是运行在 GNUstep 和 MacOS X 上的NeXT Mail.app 的一个克隆。它的设计允许在各不相同的平台上使用相同的代码。因此,这个伟大的软件是在GNUstep 和 MacOS X之间软件可移植性的绝佳证明。



 

从前...

在80年代末,一个叫做 NeXTSETP 的新的操作系统出现了。这个操作系统提供了我们从未见过的功能。其中,它为用户提供了第一个图形化的邮件客户端,Mail.app。它不仅是图形化的,而且可以处理任何类型的数据:图片、声音等等。
几年过后,NeXT 决定把NeXTSTEP移植到其它平台上去:OpenStep诞生了。
从那以后,一些人开始从事与此有同样哲学的自由软件项目。最大的项目,当然是 GNUstep,因为他的目标是为我们提供可免费运行的OpenStep。虽然这个项目所包容的工作量是巨大的,GNUstep的人确实做得很棒。
另一项伟大的工作是 Window Maker。这个视窗管理器是GNUstep项目的一部分。你把他们两家网站都看一看,就会发现所有关于这些伟大的项目的事情。你也可以看看这些“老”的LinuxFocus的文章:Window Maker, the spirit of NeXTStep and GNUstep, the open source OpenStep。(算了,你这个追求完整的人,题目只提及”Open“:我们都知道GNUstep是免费的软件!)。
在结束历史记录章之前,让我们看看NEXTSTEP的“孩子”是多么的先进,这是NeXTSTEP的创始人Steve Jobs永远不会忘记的。Jobs 把NeXTSTEP卖给了Apple(这个他曾经合伙建立的公司),Jobs 也风光返"朝",并成为Apple的"临时"总裁。这导致了MacOS X的产生,这是个"苹果"味的NeXTSTEP。 我们知道:GNUStep 和MacOS X有很多共通之处。因此,应用程序和源码的兼容性是值得期待的。因为GNUstep可以在很多平台上运行(但稳定程度有差别),这使得移植成为可能。GNUstep可以在大多数的BSD、绝大多数的Linux发行版、Solaris,Irix...甚至还有Windows上工作。
一些其他的项目正在进行:Darwin(OS X 的核心)在ix86体系结构上的移植。详见 http://gnu-darwin.sourceforge.net/.
你也可以浏览 http://www.linuxstep.org.
T在 http://simplygnustep.sourceforge.net/ 上也有一个简单的Simply GNUstep,这是一个可从CD驱动器引导的完整的iso镜像:换句话说,你不需要安装所有的东西。

注意: 在MacOS X 上你不需要GNUstep 或者X Window System。我知道,这是明显的,但因为有人问过我,我就再说一遍;-)
下面是个重点:当我们在各不相同的Unix的X下移植软件时会感到欣慰。就是说,你可以在任何Unix上编译和使用应用程序,无论是自由、私有、BSD、SystemV的...他们都有一些共通之处:X Window System。MacOS X(X指的是10,而不是X Window System)没有X Window System:它有一个漂亮的GUI叫做Aqua (基于Quartz,OpenGL 和QuickTime)。因此,很明显,在使用X与其他有如此不同的图形子系统相连时,问题就变得复杂了。
顺便一提,如果你确实想在MacOS X 下运行X Window System时,请意识到这是可以的:举例来说,你可以从Apple的网站上下载(http://www.apple.com/downloads/macosx/unix_apps_utilities/)。
因此,当我们在谈论GNUstep时,最值得一提的就是它的”可移植性“。下面,让我们开始主题的核心部分:GNUMail.app。如果你需要证据,这就是一个。

 

什么是GNUMail.app?

GNUMail.app 是Ludovic Marcotte(和他的朋友)的作品并以GPL的形式来发布。其中美工的部分(图标)是Andrew Lindesay的杰作。在GNUstep 的网站上你可以看到Andrew 为GNUstep创作的美丽的图标(在User Apps 部分)。
我们前面提起过,GNUMail.app是一个邮件客户端,他是NeXT Mail.app(在现在,可以说是Apple MacOS X Mail.app)的克隆。这是全部系列产品:从左到右依次是父亲、儿子侄子。

NeXTmail MacOS X mail GNUstep GNUMail MacOS X GNUMail

GNUMail.app和NeXT Mail.app的观感相同。当然,也有其他的邮件客户端和NeXTSTEP有着相同的观感,尤其是倾向于工作在Window Maker下的客户端。比如在 http://www.postilion.org/ 的Postilion 和在 http://ucsu.colorado.edu/~nwanua/Aileron/的Aileron 。你可以认为这些项目都已经停止了:这两个项目的作者都认为GNUMail.app 是NeXT step。
GNUMail.app和它们不同:它是用Objective C写的,在Mac上使用InterfaceBuilder 和ProjectBuilder等Apple(NeXT)的开发工具,在不久的将来可能在GNUstep 上使用Gorm 或 ProjectCenter (两者都可以从GNUstep网站上的Developer apps区得到)。然而,最重要的是无论你在MacOS X 或GNUstep上都可以使用相同的源代码去编译它。我写这篇文章的时候版最新版本是1.0.0。它需要一个叫做Pantomime的函数库,这个函数库是个用来处理邮件连接(SMTP、POP、IMAP...)的框架,现在的版本是1.0.2,并且...它的MacOS X 和GNUstep的版本是相同的。两者都可以从http://www.collaboration-world.com/gnumail/上下载。

特征

因为我不想重复前人做过的东西,你可以从GNUMail.app的网站上读到以下的内容:
-带本地缓存支持(为了使信件保留在服务器上)的多POP3(有APOP支持)帐户;
-多重递送代理(SMTP或本地邮递员);
-接收邮件时支持Mail spool file;
-带本地缓存的良好的IMAP支持;
-完全支持RFC822和RFC2822;
-可读、写、拒收、回复、转发邮件;
-以Berkeley mbox 格式管理邮箱(创建、删出、锁定和转移消息);
-个人参数管理;
-MIME 支持(编码和解码);
-各种MIME 类型管理;
-Quted Printable 和 BASE64 支持;
-支持分组地址簿;
-支持正则表达式的查找面板;
-自动或手动美化您的邮件(由用户自己选择);
-支持正则表达式的强大的过滤功能;
Ludovic 希望尽快添加更多的功能上去,如新的参数面板或GPG支持。当你了解他的工作速度后,你就会相信他的话!

下面的介绍会让你感觉到你正在浏览GNUMail.app的网站。;-)

 

编译和安装GNUMail.app

GNUMail.app以源码的方式支持MacOS X 和Linux 以及Pantomime(注意,在两个操作系统下你都需要它)。其实GNUMail.app不仅支持Linux,还包括绝大多数可以运行GNUstep的操作系统。比如说,GNUMail.app可以运行在FreeBSD,NetBSD...
如果你不想编译源码,你可以得到MacOS X的二进制版本,还有Debian包以及“移植”到FreeBSD上的包。但这里我们不打算讨论它们。
若要成功编译使用GNUMail.app,你应满足一些要求。
在MacOS X下,显然你需要开发工具。在GNUstep下,你需要...GNUstep。怎样安装GNUstep超出了这篇文章的范围。但是在GNUstep的网站上你可以找到你所需的一切。建议使用gcc 3.0或以上版本以避免编译出错。你还需要GNUstep”不稳定“版本的make(1.3.0),base(1.3.0),gui(0.7.6) 和xgps(0.7.6)。别急,虽然它们被称作不稳定板,但他们工作得非常好。

MacOS X

首先,如果你没读过FAQ,请注意到你需要在命令行下用tar zxvf archive.tar.gz 之类的命令来解压缩文档。使用诸如Stuff-it之类的自动工具会把文档里一些文件的名字改调,这样你必须重命名他们。
T在docs目录下的README文件讲会告诉你怎样去使用ProjectBuilder 来编译和安装Pantomime 和GNUMail.app(必须先编译PantomimePantomime)。按照步骤,你就会得到你个崭新的GNUMail可执行文件。
如果你喜欢在命令行下工作,你可以使用pbxbuildpbxbuild install。如果你不知道pbxbuild,ProjectBuilder的在线帮主会告诉你这个工具的一切。
作为一个简短的摘要,让我来告诉你当使用ProjectBuilder 不能安装成功(你必须使用pbxbuild install来安装)时该怎么做。就是说,你从ProjectBuilder 得到的可执行文件被连接到你编译程序时所在的目录。如果你把可执行程序移到别处去并删掉了这个目录,这个应用程序将不能正常工作。如果你想删掉源代码所在的目录(就是你编译时所在的目录)并想使程序正常工作,那么必须使用pbxbuild install
当你做完上面所说的,就可以点击他的图标来运行GNUMail可执行程序了。

GNUstep

一旦GNUstep运行起来,就可以用和上面相同的命令解压缩GNUMail。然后,在命令行下输入make 和make install(当然,你必须在GNUMail.app之前编译Pantomime)。运行命令openapp GNUMail.app ,你就可以看见美丽的画面:一个非常漂亮的邮件客户端显示在你的屏幕上。
如果你想保持同步更新,你可以使用CVS 版的GNUMail.app(和Pantomime)。Ludovic 和他的朋友们)惯于编译您的第一个版本。从Apple版的GNUMail.app进行升级可能会需要升级GNUstep(同样是用CVS)或者是开发者工具(如果您有开发者工具)。这样的话,你必须注册成为一个开发者(别急,这是免费的!)。
现在,你得到了一个崭新的程序,你将会喜欢上它。

 

配置GNUMail.app

GNUMail.app为你提供了一个非常好看的控制面板,这是的配置过程非常的容易。这个面板分成不同的几部分:个人(personal),观感(viewing),发送(sending),接受(receiving),撰写(compose),字体(fonts), MIME 和过滤(filtering)。
正如其名字,个人部分允许你提供给GNUMail.app你的个人信息:名字,信箱地址,签名。

personal personal

观感部分让您定义你想要显示的邮件或者在信的正文中高亮显示的链接。

viewing viewing

发送部分包括...发送方法。在这里,你可以定义信件传送的方法,你的用户名,密码等等。

sending sending

接收部分包括如何...接收邮件。你可以在这里定义邮件服务器。

receiving receiving

撰写面板定义签名位置,段首空格等。

compose compose

你可以在字体面板选择显示信件时所用的字体。

fonts fonts

MIME面板允许您定义你想看见的附件(图片、文档如pdf...)

mime mime

最后,但很重要的是,你可以在过滤面板里定义过滤规则。

filters filters

你也许注意到了,配置过程非常的容易和友好。从上面的过程里你可以看见GNUMail.app在GNUstep 和MacOS X里的样子。

 

使用GNUMail.app

GNUMail.app的使用是如此之容易,以至于我们不需要一个特别的章节来说明。在MacOS X,你只须双击图标就行了。如果你愿意,也可以在使图标保留在可见的地方。当程序运行时,在打开信箱(默认是Inbox)的顶部点击图标就可以完成信件的删除、收发邮件、打开不同的信箱、撰写新邮件、恢复和转发邮件、打开地址簿或搜索信箱。
主菜单为你提供了同样的特性以及一些新东西.大部分重要的选项都有快捷键。这个菜单也可以作为弹出式(popup)菜单来运行。
在GNUstep下,在第一次运行程序的时候会有些不同。如果你用过GNUstep,你就会知道你必须输入openapp 和程序路径。如果你使用Window Maker 作为你的视窗管理器 manager(强烈建议!)你将会得到一个快捷方式的图标:这足以把它拖到工具栏...这样,你就不需要在shell下输入命令来运行GNUMail.app了。
最重要的是GNUMail.app看上去很稳定。和以前的版本相比有了很大的改进,尤其是在GNUstep下。用过几个星期后,我没有一次“crash"。作为您日常的邮件客户端,GNUMail.app是非常合适的。
在MacOS X下,在版本1.0之前,就已经非常稳定了。

 

什么是NeXT?

W我们可以认为GNUMail.app是一个可移植性测试的试实验。但他工作的太完美了!是的,很多其他的邮件客户端有着更多的特性。但是,GNUMail.apA是第一个真正可以运行在环境如此不同的MacOS X和GNUMail.app下,而且源码是相同的。Ludovic正在做其他的项目,这些项目同样值得关注。
其中有一个项目是Affiche,是一个“post-it”工具,可运行在MacOS X和GNUstep 下。主页上还有一个项目叫EasyDiff,是一个图形化的diff,由Pierre-Yves Rivaille开发,只能运行在GNUstep 下。
如果有人怀疑MacOS X 和GNUstep 之间的兼容性,Ludovic 提供了有力的证明。当然,在GNUstep 完成之前,还有很长的路要走,虽然改进一直在持续。我们必须祝贺所有参与GNUstep工作的人。谢谢Adam Fedor 和他的朋友们对这个软件所作出的成绩。
显然,他的每一个开发都依赖于GNUstep的进程。同时,还有许多正在进行的软件,尽管他们中的大多数正出在刚开发的阶段。另一个可以加速这个过程的方式是:他们中的大多数是在GNUstep下完成的,但是我们希望更多的开发者有移植到MacOS X下的想法。这是一个真正可移植到多平台的程序的好的开始。
曾经有一段时间“克隆”Windos 很流行,如果现在世界上流行的是open,那么GNUstep 就是一个典范。
Linux社团中的一部分人希望他们的系统在桌面应用上广为传播...或者说是达到”统治世界“!!!千万别这样想,无论一个垄断产品是否免费,它仍旧是垄断的...另一方面垄断会扼杀创造力。多样性是很重要的,因为他创造了竞争,这里的多样性并不是指克隆一个所谓的标准(以及它的程序),就好像它的作者掌握的是真理并把它作为绝对的指导。
大约15年前,NeXTstep在Unix 世界开始了一场革命:它允许人们使用Unix而不需知道其他细节!今天的MacOS X也是这样。而且,作为一个事实,Linux远远走在了前面,尽管它克隆了“错误”的指导。你或许注意到了GNUstep不是一个Windos的克隆(至少,我认为是这样!)。他是具有前所未有创新的操作系统(NeXTstep)的“孩子”(OpenStep)的一个免费的实现。
为了避免混淆,GNUstep 只是一个框架结构,但只要你添加了应用程序...比如GNUMail.app,他就变成了一个(轻量级)的桌面环境。
更重要的是,GNUstep不只局限于Linux。
在80年代中期,有许多不同的操作系统。现在,只剩下Unix 和Windos:这太不幸了。然而,我更喜欢那个可以在不同的操作系统里选择的世界:越多越好。
最后,我们是幸运的:我们有很多不同的Unix,他们中的绝大多数可以运行GNUstep!
下面是一些于主题无关的话,只代表我的个人观点。
回到GNUMail.app上来,我们可以期待它将给许多开发者好的想法。MacOS X 的用户有一个很好的开发工具叫做InterfaceBuilder(以及ProjectBuilder)。发现这个工具将会改变你们的生活。在NeXT 近期的更新中,我们可以期待Gorm 和ProjectCenter 可以和它们的模型工作的一样好,这使得GNUstep 更加必不可少。
多谢Ludovic ,他在领导着潮流。
正如我所说的,我们正生活在一个伟大的时代!

 

链接

GNUMail.app的主页: http://www.collaboration-world.com/gnumail/
关于GNUstep 的一切: http://www.gnustep.org
更多关于GNUstep: http://www.gnustep.net
Nicola Pero 和Pierre-Yves Rivaille写的应用程序、指南、HOWTO : http://www.gnustep.it
Apple MacOS X 开发者工具: http://developer.apple.com/tools/macosxtools.html

 

对这篇文章发表评论

每篇文章都有各自的反馈页面。在这个页面里,您可以提交评论,也可以查看其他读者的评论:
 反馈页面 

主页由LinuxFocus编辑组维护
© Georges Tarbouriech, FDL
LinuxFocus.org

点击这里向LinuxFocus报告错误或提出意见
翻译信息:
en --> -- : Georges Tarbouriech <georges.t(at)linuxfocus.org>
en --> cn: L1ul3o <c_liunix(at)hotmail.com>

2002-05-28, generated by lfparser version 2.27