全面解决amule容易崩溃和中文显示、输入的问题
amule是一个类似windows下的emule的ed2k客户端。ed2k是一种类似于Bittorrent的点对点文件传输协议。它现对BT的最大优点就是有搜索功能,资源比较丰富。
然而amule在某些环境下工作有些问题,下面一一解决。当然如果官方的amule在你那里工作良好,你就没有必要往下看了。
1. 首先,amule2很容易崩溃。这个问题是“稳定分支“的wxGtk-2.4引起的。amule开发者推荐amule工作在最新的“非稳定分支”wxGtk-2.5下。但是Arch官方的源里面只有稳定分支的wxGtk,于是我们手动编译wxGtk-2.5:PKGBUILD:
# $Id: PKGBUILD,v 1.9 2004/09/10 16:28:52 tobias Exp $
# Maintainer: tobias
# Original Contributor: Tom Newsom
# New Version - Contributor: Bob Finch
# with help from J. Santiago Hirschfeld aka Angelus
# fix by tx-cary
pkgname=wxgtk
pkgver=2.5.4
pkgrel=1
pkgdesc="wxGTK - GTK+ implementation of wxWidgets API for GUI"
depends=('gtk2' 'gcc' 'libpng')
source=("http://puzzle.dl.sourceforge.net/sourceforge/wxwindows/wxGTK-$pkgver.tar.gz")
url="http://wxwidgets.org"
md5sums=('bf14358daa76dca8b270d81a02d55f9b')
build() {
# Building and installing wxgtk
cd $startdir/src/wxGTK-$pkgver
./configure --prefix=/usr /
--enable-gui -with-gtk --enable-gtk2 --without-opengl
make || return 1
make prefix=$startdir/pkg/usr install
# Installing wxWidgets contribs
cd $startdir/src/wxGTK-$pkgver/contrib
cd src
make || return 1
make prefix=$startdir/pkg/usr install
# fix a link file
cd $startdir/pkg/usr/bin
rm wx-config
ln -s /usr/lib/wx/config/gtk2-ansi-release-2.5 ./wx-config
}
2. 将上面代码保存为PKGBUILD文件,然后运行makepkg -c。编译完毕后,会在当前目录下生成一个wxgtk的pkg包。用pacman -A安装或pacman -U升级它。安装完后检查/usr/bin/wx-config这个连接文件,看看是否指向 /usr/lib/wx/config/gtk2-ansi-release-2.5(ls -l /usr/bin/wx-config),没有则修改之。
注意:如果你升级了wxGtk,那么依赖wxGtk的现有软件可能将无法工作!
你可以用'pacman -Qi wxgtk' 来查看包信息,看"Required By"一段,看看什么软件依赖wxgtk。升级之后要重新编译它们,这个后面会说。
3. 下面开始重新编译amule。先运行'abs'来同步一下最新版本的官方PKGBUILD。如果运行'abs'报错,请搜索相关帖子。
4. 同步完毕后,将“/var/abs/extra/network/amule/PKGBUILD”这个文件考到任何一个其它位置,运行makepkg -c。如果编译错误,请重新查看一下第二步。如果编译完成,在当前目录下会产生amule的pkg包,安装或升级之。
5. 运行一下amule,看看是不是稳定多了。我这里挂多久都不会崩溃了。但是,也许新问题又出来了--无法显示中文?无法在搜索栏输入中文?别着急,请看下一步。
6. 退出amule。在控制台下输入:‘env LC_ALL=zh_CN.UTF-8 GTK_IM_MODULE=scim amule’,其中将scim改为你用的输入法,比如fcitx(fcitx没有测试过,这个方法针对本地环境变量是gb2312或者gbk还有 GTK_IM_MODULE=xim的情况,如果你的环境变量没问题,当然就不用改了)。看看,问题是否解决了?
7. 下面到其它依赖wxgtk的问题了。我用的软件只有vlc和amule两个依赖wxgtk。你可以用编译amule同样的方法编译这些软件。vlc的 PKGBUILD在这里"/var/abs/extra/multimedia/vlc/PKGBUILD"。如果还有其它软件,可以用" find /var/abs -name 'vlc' "来查找,将vlc替换成你的软件名。