作者:天外闲云 @ www.chinaunix.net
注意,这篇文章只是一个笔记类的东西,如果您是新手可能很难按照本文的内容,安装gaim,对于新手我推荐您使用您的发行版官方编译的gaim,毕竟这gaim官方faq也这么说。
最近把gaim0.8了,碰到了两个问题:
1、ssl库支持问题。
2、声音问题。
查阅了官方faq之后,总算解决了问题。
1、ssl库支持问题。
1.1概述
刚开始这个问题的确很让我困惑,我一看是ssl,第一件事就是
代码:
rpm -qa | grep ssl
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版都不能成功编译,前者编译时找不到什么模块,而且也没有编译规则,后者,编译过程中对某个文件的定位不对,导致无法编译成功。
1.2安装GnuTLS
方案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
注意:
一定要下载alpha目录下的软件,我刚开始以为alpha下面的软件是测试版的,所以没有从里面下载,结果最后安装GnuTLS时出现语法错误,不得不重头再来。opencdk可以不装,应该不影响使用,但是我装了的。
这几个软件的编译都一样:
代码:
./configure && make
su
make install
如果没有意外,应该不会出错。
安装好之后在gaim8.0的目录中./configure,configure最后会输出ssl使用的是哪个软件作为其ssl库支持,所以要注意查看,还可以在该根目录下查看config.log文件来确定。如果在安装了上述软件之后gaim还没有检测到gnutls,那么你可能需要去查看官方的faq-ssl进行修改。
到这里msn的ssl库支持问题就已经解决了,如果你的gaim声音工作正常,就不用看下面部分了。
2、声音问题
2.1概述
原来用的是gaim0.78,0.79也用过,但是都没有办法发出声音。
查了一下官方的faq才知道gaim是使用libao来播放声音的。
解决方案有两个:
1、安装libao
2、在首选项->声音->声音方式里,把方式改为“命令”,在声音命令里输入"esdplay %s" 或者 "artsplay %s"(不要引号)。
测试了一下第二个方案,使用esdplay %s可以正常播放声音,artsplay因为没有安装所以不能播放,如果是您不想继续,在rpmfind.net搜一下这两个软件,装上就行了。
2.2安装libao
虽然方案二已经能够解决问题,但是我是个狂热的人,所以把方案一也测试了一下。
要想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
安装很简单
代码:
./configure && make
su
make install
但是gaim需要devel包,所以我们必须把一些文件也拷贝到系统里。
代码:
cp -r libao-0.8.5/include/ao /usr/include/
可以把该目录里的两个makefile删掉。
代码:
cp libao-0.8.5/ao.pc /usr/lib/pkgconfig
cp -r libao-0.8.5/src/.libs /usr/lib
这个.libs是要make之后才会有的。
这时在gaim0.80的目录下./configure,没有错误的话,就已经成功给gaim添加上了libao支持。
然后编译并装上这个新编译的gaim。
这时在在首选项->声音->声音方式里就多出了三个选项,自动,ESD,Arts。选择自动就可以了,测试一下,是不是听到声音了?
附:对于普通用户(那些不象我这么疯狂的用户),推荐使用你们发行版自带的gaim,毕竟 gaim的官方faq也是这么推荐的,从源码编译很多时候是一件劳心劳力的事情,更重要的是,基本上是简单劳动的机械重复,除非你有能力修改源码, install脚本,makefile,一般没有什么意义,至于所谓的,自己编译的软件效率更高的说法在目前动则几G的cpu上,基本上看不出来,特别是家用机,如果是服务器那就令当别论。
至于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