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