如何在64位的Linux中運(yùn)行32位的應(yīng)用程序
大部分Linux發(fā)行套件都有針對(duì)x86_64處理器的版本。比較典型的x86_64的處理器有ADM Athlon II和英特爾Xeon。因?yàn)檫@些Linux發(fā)行套件都有自己專(zhuān)用的軟件源,這些軟件源會(huì)為提供所有它所支持的應(yīng)用軟件的二進(jìn)制包。如果你滿(mǎn)足于Linux的安裝方式,你可能不會(huì)需要運(yùn)行32位的程序。
一些Linux商業(yè)軟件,尤其是游戲,只提供32的版本。因?yàn)槟承┨厥獾睦碛?,你可能需要配置你的電腦來(lái)運(yùn)行32位的軟件。
安裝32位的支持庫(kù)
因?yàn)閤86_64處理器是為x86技術(shù)涉及,所以它也是支持32位程序的。在Linux里,你所需要做的就是為這些軟件安裝必要的軟件庫(kù)。幸運(yùn)的是,大部分Linux發(fā)行版本已經(jīng)將這些打包好了。比方在Ubuntu里,這個(gè)包就叫做ia32-libs。為了安裝它,你可以打開(kāi)一個(gè)終端,然后輸入下面的內(nèi)容:
sudo apt-get install ia32-libs
在Kubuntu中,你也可以通過(guò)Synaptic和Kpackagekit在圖形界面下安裝。一旦安裝了之后,像游戲之類(lèi)的軟件就不再需要更多的配置。
圖形問(wèn)題
當(dāng)你在一個(gè)64位的環(huán)境中運(yùn)行32位的軟件時(shí),Ubuntu仍然會(huì)去尋找默認(rèn)的GTK引擎。這樣導(dǎo)致一個(gè)wrong ELF class的報(bào)錯(cuò)。這種情況在你運(yùn)行某些特定的軟件的時(shí)候特別惱人,比方說(shuō)Chrome,一款新的谷歌瀏覽器開(kāi)源版本。Ubuntu確實(shí)已經(jīng)將32位版本的GTK引擎安裝在了 /usr/lib32/gtk-2.0,但是我所使用的GTK項(xiàng)目并沒(méi)有在這個(gè)位置找到??焖俚慕鉀Q方法如下:
1、為你現(xiàn)在用的主題找到32位包。比方說(shuō)我,我查找了ubuntu packages
2、下載包,然后將包解壓縮
3、為主題找到庫(kù)文件
4、將庫(kù)拷貝到lib32路徑:
sudo cp ~/download-directory/usr/lib/gtk-2.0/2.10.0/engines/libqtcurve.so /usr/lib32/gtk-2.0/2.10.0/engines/
比方說(shuō)Chrome,它的需要可以設(shè)置在啟動(dòng)腳本里: /user/lib32/gtk-2.0如果程序的啟動(dòng)腳本在你運(yùn)行的時(shí)候沒(méi)有去看,而是去尋找 /user.lib/gtk-2.0,你可能需要修改啟動(dòng)腳本或者在終端里輸出并設(shè)置一個(gè)環(huán)境變量:
export GTK_PATH=/usr/lib32/gtk-2.0 command-to-start-app
如果一個(gè)程序沒(méi)有啟動(dòng)腳本,你可以像上面那樣設(shè)置下環(huán)境變量。
其他的錯(cuò)誤
我已經(jīng)發(fā)現(xiàn)了像Boxee這樣的應(yīng)用程序,不能很好地在任何情況運(yùn)行在64位系統(tǒng)下,即使在安裝了32位的庫(kù)文件也不行。這時(shí)候唯一可行的辦法就是在根下運(yùn)行了。
【編輯推薦】