wine安裝手記 |
|
來源:
ChinaUnix博客 日期:
2006.04.13 13:31 |
? |
本來不打算寫這篇文章,感覺似乎是雞肋。不過看到我博客上另一篇《Wine模擬器使用手冊(cè)》點(diǎn)擊率很高,忍不住想說兩句,不想讓其它的學(xué)習(xí)者多繞彎子,文筆不好,理解不深,切望指出。
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ——若誨和尚
那一篇《Wine模擬器使用手冊(cè)》,是我轉(zhuǎn)來的文章。不過近日我又找到一個(gè)另一個(gè)翻譯此文的地址。個(gè)人認(rèn)為更好: http://www.bsdmap.com/UNIX_html/Wine_manual/
,看過這些譯文后,我就開始自己安裝和配置wine,我用的是wine-0.9.10和wine-0.9.11兩個(gè)版本,安裝過程沒什么大的問題,不過后來配置的時(shí)候遇到了一些問題,于是上wine的官司方網(wǎng)站上去查資料找到了原文: http://www.winehq.org/site/docs/wineusr-guide/index
才發(fā)現(xiàn)新版本的wine的文檔更新了。這里先將我安裝的過程寫下,現(xiàn)在我在抽空翻譯新文檔的配置方法那一節(jié)。稍后也會(huì)放上來。
配置手記:
Wine全名(Wine Is Not a Emulator,Wine不僅僅是一個(gè)模擬器)
準(zhǔn)備:首先Linux系統(tǒng)里要GCC編譯器,沒有GCC下面的工作無法進(jìn)行。雖然網(wǎng)上有各個(gè)發(fā)行版本的wine
RPM安裝包,但是還是建議自己編譯,不然有很多模windows的庫文件將會(huì)不能調(diào)用,wine的功能等于減半。經(jīng)常有人說為什么別人模擬到的軟件為什
么自己模擬不到,很多時(shí)候就是因?yàn)檫@個(gè)原因做成的。
卸載wine:
如果先前安裝過wine,那么在安裝新版wine前必須拆卸原先的wine。檢驗(yàn)方法:$ wine
--version,如果顯示了wine版本號(hào),那么系統(tǒng)就存要wine。卸載方法:rpm -e
wine,如果原先是源碼安裝的,進(jìn)入原編wine的目錄,執(zhí)行make unistall就O了。
然后要下載wine(非RPM包):
我用的是wine0.9.10,下載wine-0.9.10.tar.bz2。有兩種方法編譯wine。
方法一(簡(jiǎn)單,推薦),用wineinstall安裝:用普通用戶登錄,解壓wine-0.9.10.tar.bz2,解壓后的目錄就是原碼安裝包,進(jìn)入該目錄。運(yùn)行:./tools/wineinstall按提示回答就可以了。
實(shí)際操作:
用普通用戶登錄,將tar包復(fù)制到/home/當(dāng)前user目錄下(我的是gener)
cd /home/gener
tar jxvf wine-0.9.10.tar.bz2
cd wine-0.9.10
./tools/wineinstall
之后它會(huì)運(yùn)行./configure,然后顯示:We need to install wine as root user, do you
want us to build wine,'su root' and install Wine???Enter 'no' to
continue without installing(yes/no)
yes 回車
如果在此處出現(xiàn)錯(cuò)誤,請(qǐng)檢查此命令的輸出,如果他沒有找到一些需要的包,而你又希望使用那個(gè)包提供的功能時(shí),請(qǐng)安裝相應(yīng)的 devel 包。
如果你root用戶設(shè)置了密碼,還會(huì)提示你輸入密碼。
待屏幕上出現(xiàn):
Installation complete for now. Good luck (this is still alpha software).
If you have problems with WINE, please read the documentation first,
as many kinds of potential problems are explained there.
則表示安裝成功了。
方法二:
以root用戶登入。進(jìn)入wine源碼安裝包的目錄,依次執(zhí)行
./configure
make depend
make
make install
實(shí)際操作:
以root登錄,將wine-0.9.10.tar.bz2復(fù)制到/root/目錄下面。
打開終端,運(yùn)行:
cd /root
tar jxvf wine-0.9.10.tar.bz2
cd wine-0.9.10
./configure --prefix=/usr/local/wine
如果在此處出現(xiàn)錯(cuò)誤,請(qǐng)檢查此命令的輸出,如果他沒有找到一些需要的包,而你又希望使用那個(gè)包提供的功能時(shí),請(qǐng)安裝相應(yīng)的 devel 包.
make depend && make && make install
wine
至此,wine安裝成功。
附帶一些筆記:
(1)wine運(yùn)行程序的兩種方式
? ?wine可以用兩種不同的度式運(yùn)行應(yīng)用程序:作為預(yù)編譯的windows二進(jìn)制程序,或者作為本地編譯X11(X
Windows系統(tǒng))應(yīng)用程序。前者使用模擬把一個(gè)windows應(yīng)用程序連接到wine庫上。通過wine安裝或是簡(jiǎn)單的把windows程序復(fù)制到
Linux系統(tǒng)下,就可以直接用模擬器運(yùn)行windows程序。后者運(yùn)wine運(yùn)行windows程序必須有這個(gè)應(yīng)用程序的源代碼。不用本地
windows編譯它,象對(duì)其它UNIX應(yīng)用程序所做的一樣,要用本地Linux編譯它-例如gcc-并連接上Wine庫。這些本地連接的應(yīng)用程序被稱為
Winelib應(yīng)用程序。wine應(yīng)用的重點(diǎn)要前種使用方式。
(2)windows程序的三個(gè)方面
? ?·注冊(cè)表——windows中重要的數(shù)據(jù)庫,作用大,不用說;
? ?·目錄結(jié)構(gòu)——就用程序期望在指定的預(yù)先決定的位置找到或安裝東西,期望這些目錄存在。由于與UNIX目錄結(jié)構(gòu)不同,并且多數(shù)這些位置是硬編(hardcode),然后通過Windows API和注冊(cè)表來查找。在Wine安裝上這是必需注意的一個(gè)方面;
?
?·系統(tǒng)DLL——在windows中它們通常駐留在system(或system32)目錄中。一些windows應(yīng)用程序運(yùn)行時(shí)需要裝載這些DLL,
會(huì)嘗試到上述目錄中去查找并裝載。當(dāng)應(yīng)用程序要求一個(gè)DLL而Wine不能裝載它們自己的內(nèi)部DLL(.so文件)時(shí),Wine不模擬不存在的文件(舍棄
模擬);
? ?
注:wine安裝兩種方法,一是用wine小組制作的自動(dòng)Wine安裝腳本tool/wineinstall,它可以做我們認(rèn)為必要的所有事情。另外一種
是常規(guī)的編譯安裝方式,除非用戶很清楚正在做什么,否則不推薦運(yùn)行常規(guī)的configure&&make
depend&&make
install方式。此時(shí),建議用戶可以使用tools/wineinstall來建立一個(gè)配置文件、安裝注冊(cè)表、并建立自己的目錄結(jié)構(gòu)。
(3)系統(tǒng)DLL的解決方案
?
?·對(duì)于那些在運(yùn)行中只需檢查文件是否存在來確定調(diào)用的程序。Wine的解決方法是建立偽DLL文件來模擬真實(shí)DLL文件使程序運(yùn)行起來。如果存在這樣的
問題,可以在system目錄中建立一個(gè)空文件來讓應(yīng)用程序認(rèn)為它存在,而在實(shí)質(zhì)調(diào)用時(shí)wine裝載它的內(nèi)置DLL替代。(wine原文手冊(cè)寫道:可惜
wineinstll工具不具有建立這種空文件的功能);
? ?·而有些DLL文件,應(yīng)用程序不僅要查詢其是否存在(如DirectX版本),而且還要從原資源文件中查詢資源的版本。這樣空文件不起作用,因此必須有完整版本資源的安裝文件。wine當(dāng)前正處理這個(gè)問題。因此,目前要解決這些問題仍需要真實(shí)的DLL文件。
? ?·對(duì)于另外一些wine目前未很好實(shí)現(xiàn)(或根本未實(shí)現(xiàn))的DLL,如果不擁有一個(gè)真實(shí)的windows,則有的人會(huì)找到所需的DLL。
=================================END================================
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/15744/showart_99270.html |
|
? |
|