官方簡介
Wine官方版項目由 Bob Amstadt 于1993年發起,旨在尋求一種在 Linux 上運行Windows3.1程序的辦法。不久之后,Alexandre Julliard 開始接手領導Wine的開發,從此由他管理這個項目。 多年以來,隨著Windows API和應用為了適應新硬件及軟件而不斷演變,Wine也一直不斷發展來支持新的特性,移植到更多其他系統,并且更加穩定,提供著更好的用戶體驗。
通過確立一個宏偉的目標,在2008年項目到達 v1.0 之前,Wine 一直穩健地持續了 15 年之久,那是第一個穩定版。 多個版本以后,雖然還有許多工作要做,但今天 Wine 仍然在活躍地開發著。 并且有大約數以百萬人計的人們使用 Wine 在他們所選擇的系統上運行 Windows 軟件。
功能介紹
可以做什么
本文中,我們討論的是Wine電腦版在純 Linux 上的安裝,沒有任何 Windows 分區。
1. Windows可執行文件:
Wine 完全支持 Windows可執行文件( .exe 和 DLL)的二進制加載。
2. DLL:
Wine 有幾百個 Windows DLL 的內部實現 -- 不過,其中沒有多少是完全的實現。例如,包含有用戶界面相關函數的 userd32.dll 在開放源代碼的 Wine 中實現了 92%。
3. COM:
這是一種幾乎被所有的大型 Windows應用程序所使用的 Windows 技術,它支持諸如將一個 Excel 電子數據表嵌入到 Word 文檔中等功能。這一技術得到了 Wine 的很好的支持。
4. 注冊表:
這是另一個幾乎任何一個 Windows應用程序都會使用的關鍵技術,Wine 實現了大約 90% 的 Windows 注冊表管理 API。
5. 核心功能:
核心系統功能也得到了特別好的支持。如前面提到的,盡管 Linux 和 Windows 之間存在區別,但是基本的層次上還有很多類似之處,因此與進程、線程、文件和消息隊列相關的核心系統 API 得到了近乎完美的支持。
6. 音頻和視頻:
Wine 支持 Windows 音頻和視頻文件的運行(還可以使用 Windows媒體播放器)。
7. 打?。?/p>
也得到了支持,可以從一個在 Wine 中運行的 Windows應用程序進行打印。
8. ODBC:
Wine 支持那些需要通過 ODBC 訪問數據庫的 Windows 應用程序。
9. 調試:
Wine中文版有一個非常健壯和強大的內置調試器,除了支持標準的調試功能外,它還為調試運行于 Linux 上的 Windows 二進制程序進行了定制。它是 Wine 為其開發者提供的最重要工具之一。Wine 還有一個設計完備的追蹤和記錄日志的模塊,可以幫助調試。我們之所以強調這一點,原因在于,盡管框架是健壯的,但是,當在 Wine 中安裝和運行 Windows應用程序時有很多不確定因素,在使用開放源代碼的 Wine 時遲早會停下來進行調試。
不能做什么
不幸的是,很多用戶發現 Wine 難于使用。誠然,在 Linux 上使用類似于 MS Office 這樣的應用程序可能是困難的;在這里我們來看一些原因,為什么確實是這樣。在開始之前,我們應該指出,CodeWeavers 提供的商用 Wine (CrossOver)已經解決了大部分此類問題(參閱參考資料以獲得鏈接)。假以時日,這些問題將可能在開放源代碼的 Wine 中同樣得到解決。
1. 使用命令行(早期版本)
與大部分 Linux 中的應用程序一樣,在開發早期 Wine 必須在命令行中安裝。用戶必須回到命令行中來在 Wine 下運行應用程序。例如,要運行Internet Explorer,用戶通常需要在 shell 中輸入 wine IEXPLORE.EXE 。盡管經驗豐富的用戶喜歡這樣做,但初學者會發現這比較困難,而且不太可能懂得起別名等快捷方式。不過,在較新的版本中用戶也可以直接雙擊EXE文件運行(如果進行了關聯)。盡管這樣會給查看錯誤信息帶來困難,但這無疑極大地方便了用戶的使用。
2. 配置
Wine 的配置較為復雜。除了命令行,較新的版本已經有了簡體中文的界面,對于初學者來說,配置簡單了不少。
3. 取消對隱藏文件的隱藏
如果掛載 CDROM 時沒有使用專門的 unhide 選項,那么安裝 CD 上的隱藏文件可能會無法找到,從而導致安裝失敗。
4. 額外的調整過程
Wine 安裝很少能直接使用(對它來說也就是從 tarfile 解開)。通常需要進行全面的調整;例如,一個程序的安裝可能與您在配置文件中設置的 Windows 版本不相容;而修改那個版本又可能會影響一些已安裝的應用程序。對很多 DLL 來說也是如此。為此,Wine 提供了一個巧妙的修復,讓您可以設置特定于應用程序的屬性,不過,一般的用戶可能不會像我們一樣滿意。
5. 額外的安裝步驟
大部分應用程序的安裝過程都不是標準的。例如當我們安裝 Internet Explorer 6 時,必須跳過一些步驟,比如 DCOM98 的定位與安裝。對用戶來說,這類事情可能是最大的障礙。
注意,這些并不是病癥,而是舉例說明了是哪些種類的事情導致對一般用戶來說 Wine 看起來復雜而且困難。
更多 Wine 所不能做的
看完 Wine 的可用性問題后,讓我們來總結在嘗試使用 Wine 時一些常見的技術問題。
1. 缺少 DLL
這可能是最常見的問題:很多安裝由于缺少 DLL 而失敗,這時需要熟練使用調試器來決定下一步(稍后將深入討論調試器)。解決問題的最佳方法是由錯誤信息尋找到所需的DLL,并進行安裝。這些都可能難倒初學者。
2. DLL 版本問題
一些安裝程序在開始之前會檢查現有的系統 DLL。Wine 解決這一問題的方法是,創建假 DLL 以滿足安裝程序的需要。不過,有一些安裝程序會更進一步并深入檢查 DLL 以獲得它們的版本。這對假的 DLL 來說要求太高了,會導致安裝失敗。
3. DLL 加載次序
Wine 有對很多 Windows DLL 的實現,而且如果可用,它還可以使用原始的 Windows DLL。如果兩種 DLL 都可用,在初學者看來應該選擇總是使用 Windows 自己的 DLL,但實際上 Windows DLL 有時會包含不能被滿足的依賴。要確定是更應該使用 Wine 的 DLL 還是應該使用本機 DLL,惟一的方法是,基于各個應用程序反復進行試驗。
4. DLL 中的函數
當一個 Wine DLL 沒有實現 Windows 中相應的 DLL 的全部功能時,應用程序可能會遭遇函數調用失敗。由于 DLL 是動態加載的,可能沒有辦法事先知道會發生這樣的事情。這是一個復雜的問題,有一些可做的工作,但最終實際來說它只是取決于應用程序的代碼如何編寫。
有一些因素會減輕這些問題。一方面,您可能會一個一個地遇到這些問題,而不是一次遇到全部問題,這樣處理起來要容易些。另外,您遇到的那些問題可能其他人曾遇到過并已經解決(而且解決方案已經公布出來)。Wine 用戶組非常活躍,會提供許多幫助,每周一次的 Wine 時事通訊(參閱 參考資料)是極好的信息資源。
Wine 中還沒有實現的 Win32 API
在 Wine 中,很多 Win32 API5 的函數是殘缺不全的。最常見的原因是,相當多的 Win32 API 并沒有被文檔化。這就意味著一個特別的應用程序可能會調用某個函數,而完全沒有關于此函數的可用資料。例如,我們在運行一個簡單的 RPC 程序時發現了 RtlAnsiCharToUnicodeChar 這個函數。在 MSDN 上的搜索結果顯示沒有關于這個函數的資料,而且沒有關于所有 RtlXXXX 類別函數的資料。因此,如果它們在 Wine 中的實現對一些應用程序來說至關重要,那么人們可能只有去猜測它們的行為了。
使用方法
Wine可以在絕大多數的Unix/Linux版本下工作,但其現在仍不能完全運行所有的Windows程序。不過由于幾乎每個月都有新版本,越來越多的Windows程序已經能在Wine的幫助下在Linux中運行。
1、直接運行程序
使用命令 wine
[root@localhost root]#wine <程序名>
2、使用程序管理器
[root@localhost root]#progman
啟動管理器窗口,從菜單中選擇 文件(F)-執行(X),就會彈出一個目錄瀏覽器,選擇程序即可。
3、直接雙擊 EXE 程序
一些發行版安裝WINE時會自動關聯EXE程序,這樣直接雙擊可以運行。
某些簡單程序可直接運行,而不需要安裝。大部分Windows軟件的安裝,請由Wine打開安裝包(exe文件)然后和Windows下以同樣的方法安裝程序即可。這樣安裝的程序應當會在桌面環境的程序列表中自動添加快捷方式(和Windows下的快捷方式類似),選擇即可運行程序。
▲注意:Wine運行某些程序,如MS Office、迅雷、QQ、某些游戲等的兼容性仍不完善。要正常使用此類軟件,可以以完全的虛擬機代替(如Virtualbox、VMWare),或者在網上搜索查找已知的解決方法或針對特定軟件的安裝包。
您的評論需要經過審核才能顯示
有用
有用
有用