Archlinux下即使手动安装了支付宝的linux版安全控件,使用firefox在淘宝/支付宝的付款和确认收货界面还是不能输入支付宝密码进行支付,google之后发现是少一个依赖的共享库文件,本文详细记录了该问题的解决过程。推测该方法亦适合于其他发行版linux,如Fedora/Ubuntu等。
系统版本和firefox版本
┌─[root@tp]─[/home/liao/soft/alipay]─[2+0]─[99%=]
└─# uname -a
Linux tp 3.6.11-1-ARCH #1 SMP PREEMPT Tue Dec 18 08:57:15 CET 2012 x86_64 GNU/Linux
┌─[root@tp]─[/home/liao/soft/alipay]─[2+0]─[99%=]
└─# pacman -Qi firefox
Name : firefox
Version : 17.0.1-1
URL : http://www.mozilla.org/projects/firefox
Licenses : MPL GPL LGPL
Groups : None
Provides : None
Depends On : gtk2 mozilla-common libxt startup-notification mime-types
dbus-glib alsa-lib libnotify desktop-file-utils
hicolor-icon-theme libvpx libevent nss>=3.13.3 hunspell
sqlite
Optional Deps : wireless_tools: Location detection via available WiFi networks
Required By : None
Conflicts With : None
Replaces : None
Installed Size : 45152.00 KiB
Packager : Evangelos Foutras <evangelos@foutrelis.com>
Architecture : x86_64
Build Date : Sat 01 Dec 2012 07:11:17 PM CST
Install Date : Sat 08 Dec 2012 05:09:39 AM CST
Install Reason : Explicitly installed
Install Script : Yes
Description : Standalone web browser from mozilla.org
下载支付宝控件
支付宝安全控件 for Linux下载地址:https://download.alipay.com/alipaysc/linux/aliedit/1.0.3.20/aliedit.tar.gz
┌─[root@tp]─[/home/liao/soft/alipay]─[2+0]─[99%=]
└─# md5sum aliedit.tar.gz
bb3e6270fc85c532beb8ee30b1deb80a aliedit.tar.gz
┌─[root@tp]─[/home/liao/soft/alipay]─[2+0]─[99%=]
└─# tar xzvf aliedit.tar.gz
aliedit.sh
┌─[root@tp]─[/home/liao/soft/alipay]─[2+0]─[99%=]
└─#
安装支付宝控件(建议以普通用户安装)
┌─[liao@tp]─[~/soft/alipay]─[2+0]─[99%=]
└─$ ./aliedit.sh
Restart firefox to complete your changes
Successfully installed Alipay Security Control
Press any key to quit...
┌─[liao@tp]─[~/soft/alipay]─[2+0]─[99%=]
└─$
打印共享库文件libaliedit64.so的依赖,发现少一个依赖库文件
┌─[root@tp]─[~]─[0+1]─[99%=]
└─# ldd /home/liao/.mozilla/plugins/libaliedit64.so | grep 'not found'
libpng12.so.0 => not found
查看少的依赖库文件属于哪个包
┌─[root@tp]─[~]─[0+1]─[99%=]
└─# pkgfile libpng12.so.0
extra/nxclient
community/libpng12
community/sage-mathematics
archlinuxcn/dropbox
archlinuxcn/dropbox-experimental
archlinuxcn/lib32-libpng12
archlinuxcn/libpng12
查看这个包把少的这个文件安装在哪个路径下
┌─[✗]─[root@tp]─[~]─[0+1]─[99%=]
└─# pkgfile -l libpng12 | grep libpng12.so.0
community/libpng12 /usr/lib/libpng12.so.0.50.0
community/libpng12 /usr/lib/libpng12.so.0
archlinuxcn/libpng12 /usr/lib/libpng12.so.0.50.0
archlinuxcn/libpng12 /usr/lib/libpng12.so.0
到找到的路径下创建软链接
┌─[root@tp]─[~]─[0+1]─[99%=]
└─# ls -l /usr/lib/libpng*
-rw-r--r-- 1 root root 282774 Oct 21 18:48 /usr/lib/libpng15.a
lrwxrwxrwx 1 root root 19 Oct 21 18:48 /usr/lib/libpng15.so -> libpng15.so.15.13.0
lrwxrwxrwx 1 root root 19 Oct 21 18:48 /usr/lib/libpng15.so.15 -> libpng15.so.15.13.0
-rwxr-xr-x 1 root root 183272 Oct 21 18:48 /usr/lib/libpng15.so.15.13.0
lrwxrwxrwx 1 root root 10 Oct 21 18:48 /usr/lib/libpng.a -> libpng15.a
lrwxrwxrwx 1 root root 11 Oct 21 18:48 /usr/lib/libpng.so -> libpng15.so
┌─[root@tp]─[~]─[0+1]─[99%=]
└─# ln -s /usr/lib/libpng.so /usr/lib/libpng12.so.0
┌─[root@tp]─[~]─[0+1]─[99%=]
└─# ls -l /usr/lib/libpng*
lrwxrwxrwx 1 root root 18 Jan 10 21:58 /usr/lib/libpng12.so.0 -> /usr/lib/libpng.so
-rw-r--r-- 1 root root 282774 Oct 21 18:48 /usr/lib/libpng15.a
lrwxrwxrwx 1 root root 19 Oct 21 18:48 /usr/lib/libpng15.so -> libpng15.so.15.13.0
lrwxrwxrwx 1 root root 19 Oct 21 18:48 /usr/lib/libpng15.so.15 -> libpng15.so.15.13.0
-rwxr-xr-x 1 root root 183272 Oct 21 18:48 /usr/lib/libpng15.so.15.13.0
lrwxrwxrwx 1 root root 10 Oct 21 18:48 /usr/lib/libpng.a -> libpng15.a
lrwxrwxrwx 1 root root 11 Oct 21 18:48 /usr/lib/libpng.so -> libpng15.so
┌─[root@tp]─[~]─[0+1]─[99%=]
└─#
重启firefox,很重要,所有火狐浏览器的窗口都必须关闭
┌─[root@tp]─[/usr/lib/mozilla/plugins]─[1+0]─[99%=]
└─# killall firefox
至此,应该可以在firefox里面输入支付宝付款密码了。
REF
1. 解决64位Archlinux下支付宝插件不能用的问题
http://www.cnblogs.com/DevPlus/archive/2012/01/07/2315666.html
http://blog.alipay.com/2192.html