解决gaim+msn的ssl库及不能发出提示音问题的指南

发表于:2007-07-04来源:作者:点击数: 标签:
[color=green:496993ca9b][size=24:496993ca9b]解决gaim+msn的ssl库及不能发出提示音问题的指南[/size:496993ca9b][/color:496993ca9b] [size=18:496993ca9b][color=red:496993ca9b]作者:天外闲云[/color:496993ca9b][color=green:496993ca9b]@[/color:4969

[color=green:496993ca9b][size=24:496993ca9b]解决gaim+msn的ssl库及不能发出提示音问题的指南[/size:496993ca9b][/color:496993ca9b]


[size=18:496993ca9b][color=red:496993ca9b]作者:天外闲云[/color:496993ca9b]  [color=green:496993ca9b]@[/color:496993ca9b]  [color=blue:496993ca9b]www.chinaunix.net[/color:496993ca9b][/size:496993ca9b]


[color=green:496993ca9b]注意,这篇文章只是一个笔记类的东西,如果您是新手可能很难按照本文的内容,安装gaim,对于新手我推荐您使用您的发行版官方编译的gaim,毕竟这gaim官方faq也这么说。[/color:496993ca9b]



最近把gaim0.8了,碰到了两个问题:

1、ssl库支持问题。
2、声音问题。

查阅了官方faq之后,总算解决了问题。



[size=24:496993ca9b]1、ssl库支持问题。[/size:496993ca9b]


[size=18:496993ca9b]1.1概述[/size:496993ca9b]
刚开始这个问题的确很让我困惑,我一看是ssl,第一件事就是

[code:1:496993ca9b]rpm -qa | grep ssl[/code:1:496993ca9b]

openssl我是装了的,但是偏偏gaim不认,后来照着它的提示,在官方的ssl faq上才知道,原来openssl不能作为gaim的ssl库支持来使用。


        按照官方的说法gaim的ssl库支持,可以使用两个方法:

            1、安装Mozilla NSS & NSPR
2、安装GnuTLS

    方案1在论坛精华里也有,但是,不管是3.8版还是最新的3.92版都没有该文中所描述的目录结构,而且nss和nspr是打包在一起的,没弄明白该文作者到底怎么实现的用nss+nspr解决msn ssl库支持的。怀疑ing?难道因为该文时间太久,所以有了变动?(该文发帖时间是2004年三月)

按照官方的安装方法,不管是3.8版和最新的3.92版都不能成功编译,前者编译时找不到什么模块,而且也没有编译规则,后者,编译过程中对某个文件的定位不对,导致无法编译成功。


[size=18:496993ca9b]1.2安装GnuTLS[/size:496993ca9b]

方案1已经是不可能了,试用了一下方案2,经过几番周折,总算是成功了:

软件准备:
libgpg-error (needed by libgcrypt):ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/libgpg-error-0.7.tar.gz

libgcrypt (needed by GnuTLS):ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/libgcrypt-1.1.94.tar.gz

libtasn1 (needed by GnuTLS):ftp://ftp.gnupg.org/gcrypt/alpha/gnutls/libtasn1/libtasn1-0.2.10.tar.gz 

GnuTLS (needed by Gaim):ftp://ftp.gnupg.org/gcrypt/alpha/gnutls/gnutls-1.0.16.tar.bz2

opencdk:ftp://ftp.gnupg.org/gcrypt/alpha/gnutls/opencdk/opencdk-0.5.5.tar.bz2

[color=red:496993ca9b]注意:
一定要下载alpha目录下的软件,我刚开始以为alpha下面的软件是测试版的,所以没有从里面下载,结果最后安装GnuTLS时出现语法错误,不得不重头再来。opencdk必须安装。[/color:496993ca9b]

这几个软件的编译都一样:
[code:1:496993ca9b]./configure && make 
su
make install[/code:1:496993ca9b]

如果没有意外,应该不会出错。

安装好之后在gaim8.0的目录中./configure,configure最后会输出ssl使用的是哪个软件作为其ssl库支持,所以要注意查看,还可以在该根目录下查看config.log文件来确定。如果在安装了上述软件之后gaim还没有检测到gnutls,那么你可能需要去查看官方的faq-ssl进行修改。

到这里msn的ssl库支持问题就已经解决了,如果你的gaim声音工作正常,就不用看下面部分了。


[size=24:496993ca9b]2、声音问题[/size:496993ca9b]

[size=18:496993ca9b]2.1概述[/size:496993ca9b]
原来用的是gaim0.78,0.79也用过,但是都没有办法发出声音。
查了一下官方的faq才知道gaim是使用libao来播放声音的。
解决方案有两个:
1、安装libao
2、在首选项->声音->声音方式里,把方式改为“命令”,在声音命令里输入"esdplay %s" 或者 "artsplay %s"(不要引号)。

测试了一下第二个方案,使用esdplay %s可以正常播放声音,artsplay因为没有安装所以不能播放,如果是您不想继续,在rpmfind.net搜一下这两个软件,装上就行了。

[size=18:496993ca9b]2.2安装libao[/size:496993ca9b]

虽然方案二已经能够解决问题,但是我是个狂热的人,所以把方案一也测试了一下。


要想gaim能够获得libao支持,必须得安装上libao-devel和audiofile-devel,要使用libao就需要libao和audiofile,这里说的是预编译的包。我的fedora core 2上已经有了audiofile和audiofile-devel包,所以我只需要安装libao和libao-devle包。但是我没有下载rpm包安装,而是用的tarball安装的。

在这里下载我使用的版本:http://www.xiph.org/ao/src/libao-0.8.5.tar.gz

安装很简单
      [code:1:496993ca9b]./configure && make
su
make install[/code:1:496993ca9b]

但是gaim需要devel包,所以我们必须把一些文件也拷贝到系统里。

[code:1:496993ca9b]cp -r libao-0.8.5/include/ao /usr/include/[/code:1:496993ca9b]
可以把该目录里的两个makefile删掉。

[code:1:496993ca9b]cp libao-0.8.5/ao.pc /usr/lib/pkgconfig

cp -r libao-0.8.5/src/.libs /usr/lib 
这个.libs是要make之后才会有的。[/code:1:496993ca9b]

这时在gaim0.80的目录下./configure,没有错误的话,就已经成功给gaim添加上了libao支持。

      然后编译并装上这个新编译的gaim。

这时在在首选项->声音->声音方式里就多出了三个选项,自动,ESD,Arts。选择自动就可以了,测试一下,是不是听到声音了?

[color=green:496993ca9b]附:对于普通用户(那些不象我这么疯狂的用户),推荐使用你们发行版自带的gaim,毕竟gaim的官方faq也是这么推荐的,从源码编译很多时候是一件劳心劳力的事情,更重要的是,基本上是简单劳动的机械重复,除非你有能力修改源码,install脚本,makefile,一般没有什么意义,至于所谓的,自己编译的软件效率更高的说法在目前动则几G的cpu上,基本上看不出来,特别是家用机,如果是服务器那就令当别论。[/color:496993ca9b]

至于openQ的问题,我测试了一下,把0.79版的放在gaim0.8下编译了,但是编译的模块不能被gaim0.8检测到,即使添加了路径也一样,但是openQ0.79+gaim.79工作得很不错,因为自己不怎么用QQ,所以也没仔细研究gaim0.8上是否能够安装openQ0.79,所以想要使用openQ0.79的朋友请不要使用gaim0.8,但是windows版除外,由openQ0.79编译的for windows 插件在windows版gaim0.8下能工作,不知道为什么?也许是我的linux编译方法不对?哪位朋友在linux下成功编译过openQ0.79到gaim0.8下使用的,能不能告知一声。

我的msn: landrew.cloud@qq.com

 天外闲云 回复于:2004-08-02 23:57:57
不求加精,但求斑斑保留,因为这是坛子唯一一篇像样点的gaim+msn的ssl库解决方案帖子了。


论坛里面的老帖子我看过,用的是mozilla nss+nspr,但是完全行不通。该文连nss都没有编译就可以直接拷贝出.so文件,我觉得很诧异。而且该文所说的nss3.8的目录结构也完全不是那样的,而且nss和nspr都是打包在nss3.8,tarball中了。

本着对大家负责的精神从头打造了这个帖子,希望后来者不走弯路。

目前还在研究mozilla nss+nspr解决gaim+msn ssl库问题的方案。苦于网上找不到能够成功的先例,哪位有资料请提供一下。

[size=24:368e900499][color=red:368e900499]我的MSN: [/color:368e900499]landrew.cloud@qq.com[/size:368e900499]

 好好先生 回复于:2004-08-03 08:10:30
支持这种精神,加精以鼓励!

 platinum 回复于:2004-08-03 17:21:05
经典中的经典
鼓励!!

 天外闲云 回复于:2004-08-03 17:27:52
[quote:88b9582b13="platinum"]经典中的经典
[/quote:88b9582b13]

这个有点夸张了吧?

谢谢,鼓励。

 superhxl 回复于:2004-08-08 10:11:51
好象opencdk必须要装,我没有装时编译出错,装完再编就pass了!

 天外闲云 回复于:2004-08-08 11:43:11
[quote:4d94d53ffe="superhxl"]好象opencdk必须要装,我没有装时编译出错,装完再编就pass了![/quote:4d94d53ffe]

谢谢你的提醒,不知道你用的什么系统,实际上官方网站上还说使用opencdk可能导致无法编译。

 superhxl 回复于:2004-08-08 22:51:59
我用的是linuxfans的Magic Linux。但是非常遗憾,因为我是通过学校http代理上网的,结果还是上部了msn!郁闷!

 vovi 回复于:2004-10-25 16:11:55
那几个地址的包.我怎么都不能解压呢.

 vovi 回复于:2004-10-25 16:14:42
tar zxvf lib........gz

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error exit delayed from previous errors

 vovi 回复于:2004-10-25 16:18:38
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Error exit delayed from previous errors

 deadcat 回复于:2004-12-06 00:58:24
搂主你的内核是不是2。6的?好像没有支持2.6的nss,所以你无法编译通过,我也在为这个发愁~~正在找解决办法ing~觉得还是装mozilla的方便一点

前面文章介绍的都是2.4内核编译好的直接把库文件拷贝过去就可以~~羡慕ing

原文转自:http://www.ltesting.net