Archlinux从3.6.9-1-ARCH升级到3.6.11-1-ARCH后vmware 9不能启动的解决办法

最近pacman -Syu内核版本从3.6.9-1-ARCH升级到3.6.11-1-ARCH后,发现原来可以启动的vmware 9 无法启动,无论是直接点击vmware的图标还是在console下运行vmware都没有反映,也没报任何错误消息。

以为是内核的问题,于是尝试downgrade内核,到目录/var/cache/pacman/pkg下,执行pacman -U linux*3.6.9-1*,把(linux-3.6.9-1,linux-docs-3.6.9-1,linux-headers-3.6.9-1)这个3个pkg又倒回去重启发现还是不行。

无意跑到/tmp目录下发现有个/tmp/vmware-liao目录,感觉有点东西,切进去一看

┌─[root@tp]─[/tmp/vmware-liao]─[6+0]─[99%=]
└─# ls
vmware-apploader-3108.log  vmware-apploader-3435.log  vmware-apploader-3461.log
vmware-apploader-3199.log  vmware-apploader-3448.log  vmware-apploader-937.log


为了验证是否与打开vmware有关,又点了下vmware图标,果然多了一个log文件
┌─[root@tp]─[/tmp/vmware-liao]─[6+0]─[99%=]
└─# ls
vmware-apploader-3108.log  vmware-apploader-3448.log  vmware-apploader-937.log
vmware-apploader-3199.log  vmware-apploader-3461.log
vmware-apploader-3435.log  vmware-apploader-5657.log

打开这个新生成的log,在最后几行发现了问题:

┌─[root@tp]─[/tmp/vmware-liao]─[45+0]─[99%=]
└─# tail vmware-apploader-5657.log
2013-01-11T21:12:45.861+08:00| appLoader| I120: Loading shipped version of libgcr.so.0.
2013-01-11T21:12:45.861+08:00| appLoader| I120: Loading shipped version of libpangox-1.0.so.0.
2013-01-11T21:12:45.861+08:00| appLoader| I120: Loading shipped version of libxml2.so.2.
2013-01-11T21:12:45.861+08:00| appLoader| I120: Loading shipped version of libview.so.3.
2013-01-11T21:12:45.862+08:00| appLoader| I120: Loading shipped version of libsexy.so.2.
2013-01-11T21:12:45.863+08:00| appLoader| I120: Loading shipped version of libsexymm.so.2.
2013-01-11T21:12:45.863+08:00| appLoader| I120: Loading shipped version of libvmwarebase.so.0.
2013-01-11T21:12:45.863+08:00| appLoader| W110: Unable to load libvmwarebase.so.0 from /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0: /usr/lib/libpng15.so.15: version `PNG12_0' not found (required by /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0)
2013-01-11T21:12:45.864+08:00| appLoader| W110: Unable to load dependencies for /usr/lib/vmware/lib/libvmware-modconfig.so/libvmware-modconfig.so
2013-01-11T21:12:45.864+08:00| appLoader| W110: Unable to execute /usr/lib/vmware/bin/vmware-modconfig.

看起来是/usr/lib/libpng15.so.15这个库文件的版本不对

┌─[root@tp]─[~]─[0+1]─[99%=]
└─# ls -l /usr/lib/libpng12.so.0
lrwxrwxrwx 1 root root 18 Jan 10 21:58 /usr/lib/libpng12.so.0 -> /usr/lib/libpng.so


使用ldd命令检查验证libvmwarebase.so.0的依赖关系,得到同样信息

┌─[root@tp]─[~]─[0+1]─[99%=]
└─# ldd /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0
ldd: warning: you do not have execution permission for `/usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0'
/usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0: /usr/lib/libpng12.so.0: version `PNG12_0' not found (required by /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0)
    linux-vdso.so.1 (0x00007fff2d019000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007ffe48224000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007ffe48020000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007ffe47d22000)
    libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007ffe479c5000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00007ffe47798000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007ffe47582000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007ffe4736c000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007ffe46fbf000)
    /usr/lib/ld-linux-x86-64.so.2 (0x00007ffe48c95000)
    liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007ffe46d9c000)


看到这想起前两天为了解决在firefox下使用支付宝安全控件(http://blog.csdn.net/t0nsha/article/details/8491555)的时候,做了一个软链接,这里链接的是libpng15的版本,而vmware需要的是libpng12版。

于是重新安装libpng12

┌─[root@tp]─[~]─[0+1]─[99%=]
└─# pkgfile /usr/lib/libpng12.so.0
community/libpng12
archlinuxcn/libpng12
┌─[root@tp]─[~]─[0+1]─[99%=]
└─# pacman -S libpng12
resolving dependencies...
looking for inter-conflicts...

Targets (1): libpng12-1.2.50-2

Total Installed Size:   0.85 MiB

Proceed with installation? [Y/n]
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
error: failed to commit transaction (conflicting files)
libpng12: /usr/lib/libpng12.so.0 exists in filesystem
Errors occurred, no packages were upgraded.
┌─[✗]─[root@tp]─[~]─[0+1]─[99%=]
└─# mv /usr/lib/libpng12.so.0 /usr/lib/libpng12.so.0_bak
┌─[root@tp]─[~]─[0+1]─[99%=]
└─# pacman -S libpng12
resolving dependencies...
looking for inter-conflicts...

Targets (1): libpng12-1.2.50-2

Total Installed Size:   0.85 MiB

Proceed with installation? [Y/n]
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
(1/1) installing libpng12                          [######################] 100%


再验证下libvmwarebase.so.0的依赖关系,问题库文件已解决

┌─[root@tp]─[~]─[0+1]─[99%=]
└─# ldd /usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0
ldd: warning: you do not have execution permission for `/usr/lib/vmware/lib/libvmwarebase.so.0/libvmwarebase.so.0'
    linux-vdso.so.1 (0x00007fff4653d000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fca6cef6000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fca6ccf2000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007fca6c9f4000)
    libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007fca6c697000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00007fca6c46d000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007fca6c257000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fca6c041000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007fca6bc94000)
    /usr/lib/ld-linux-x86-64.so.2 (0x00007fca6d967000)
    liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007fca6ba71000)
┌─[root@tp]─[~]─[0+1]─[99%=]
└─#

再运行下vmware,熟悉的窗口又跳出来了。


继续pacman -Syu把内核升级到3.6.11-1-ARCH,vmware依然可以正常打开,由此看来这次升级导致vmare不能启动的问题其实内核无关。。。


你可能感兴趣的:(Archlinux从3.6.9-1-ARCH升级到3.6.11-1-ARCH后vmware 9不能启动的解决办法)