偶爾看到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之技術研發