CentOS上运行BeyondCompare

来源:互联网 发布:每天读书 知乎 编辑:程序博客网 时间:2024/06/06 15:44

偶尔看到BeyondCompare这款优秀的Windows平台上的文件对比工具出了Linux版,于是抱着一定要在Linux上运行起来的想法开始了CentOS上的征程。

简单说一下操作系统,我的是CentOS 64bits version。这是最最重要的背景。

首先从http://www.scootersoftware.com/download.php下载Linux下的tar.gz文件包(版本号是3.3.8.16340),然后解压并运行install.sh(最好是root权限),将安装路径设置为/usr/local/bc,安装完毕后将beyondcompare的bin路径加入path, 简单讲就是在.cshrc or .bashrc中加入$path的设置,例如在csh中可以set path=($path /usr/bin/bc/bin)即可

然后迫不及待的去运行bcompare。得到的确实如下信息:

  /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

显然是没有这个文件。一般对付Linux下的错误,就是根据错误提示缺啥补啥。现在缺ld-linux.so.2,那就补一下呗。当时很奇怪为啥是32位库,感觉应该是64bits才对,那个应该是/lib64/ld-linux.so.2之类的文件名才对,没想那么多,先运行yum -y install glibc.i686再说。

这次应该可以看到bc的真面目了吧。再次激动的运行bcompare。这次出来的错误更多

Some Shared Libraries were not found

linux-gate.so.1 =>  (0×00989000)
libz.so.1 => /lib/libz.so.1 (0x00bd5000)
libqtc.so.1 => /home/peter/lib/beyondcompare/libqtc.so.1 (0×00110000)
libX11.so.6 => /usr/lib/libX11.so.6 (0×00626000)
librt.so.1 => /lib/librt.so.1 (0x009d0000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00ed4000)
libdl.so.2 => /lib/libdl.so.2 (0x0075f000)
libc.so.6 => /lib/libc.so.6 (0×00764000)
libqt-mt.so.3 => /home/peter/lib/beyondcompare/libqt-mt.so.3 (0xf708e000)
libXext.so.6 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x009d9000)
libm.so.6 => /lib/libm.so.6 (0x0091d000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00f37000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0×00947000)
/lib/ld-linux.so.2 (0x008fd000)
libXrender.so.1 => not found
libXrandr.so.2 => not found
libXcursor.so.1 => not found
libXinerama.so.1 => not found
libXft.so.2 => not found
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00ac4000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x0098a000)
libXext.so.6 => not found
libSM.so.6 => not found
libICE.so.6 => not found
libXau.so.6 => /usr/lib/libXau.so.6 (0×00967000)
libexpat.so.1 => /lib/libexpat.so.1 (0x00b5c000)

从提示中感觉是缺qt3,于是问了问google,确定一下答案是安装qt3,想yum -y install qt3应该可以work了。however,错误依旧,这是想起刚才的疑惑,直接去file它的可执行文件/usr/local/bc/lib/beyondcompare/BCompare,果然它是32bit的,那就不用多说了,刚才安装的qt3是不匹配的,需要安装qt3.i686才行(yum -y install qt3.i686)。

安装qt3.i686完毕,运行bcomare,终于看到了久违的BeyondCompare。

 

剩下的事情各位看官自行解决吧。

此文中的错误信息提示来自google搜索结果,因为本人的terminal缓存的信息丢失了。最后再总结一下,beyondcompare没有出64bit的linux版本,所以安装所需的包必须是32bit的,这就是为什么必须安装glibc.i686和qt3.i686的原因。希望此文能够解决你遇到的问题。

本文转自blogs.joysight.com之技术研发