為了回應最近網友的一些普遍問題,特此作以下說明:
1、如果發現wine的注冊表沒有相應的鍵值,要自己創建。有時候用命令不行的話,只能手動一個個添加。
2、wine還是一個不成熟的軟件,經常出現bug,一切使用的問題和風險都只能自己承擔。
3、wine并不完善,不是所有程序都能用wine解決,有些甚至根本無法解決(反作弊,凡外掛,虛擬光驅等)。
一直苦于沒有一篇像樣的使用指南,原來外國有朋友跟我有同感,既然他捷足先登了,那我只好翻譯了。
原文作者說會保持更新,這篇文章是很新的,介紹了很多實用的Wine設置方法,非常全面,無論新手還是老鳥都值得一讀。
原文:
http://sudan.ubuntuforums.com/showthread.php?t=497332 我收集到的關于Wine的一些資料
如果你像我一樣的話,當你第一次使用Wine的時候,就會被Wine的幫助文章現狀所困擾。互聯網上確實有很多的HOWTO文章來教你使用一些程序或游戲,但是我找不到一個全面的“Wine初學者教程”來讓我真正懂得實際了解和使用Wine所需的基本知識。我不需要一個教我如何運行半條命2的文章,我需要的是一篇能實實在在教我怎樣使用Wine的文章。最后,我整理了從眾多的Wiki、指南、帖子和HOWTO搜集來的資料,寫成這篇文章。雖然這篇文章主要針對在Wine下運行游戲,但是它包括的幾乎所有的信息都可以應用到用Wine來運行其它的程序。
一般資料
“winecfg”的使用資料
特殊配置資料
安裝資料
一般使用資料
第三方軟件資料
高級設置資料 1一般資料 1.1Wine is not an emulator 這個我就不翻譯了,沒有多少技術介紹。
1.2使用最新的Wine 記住最新版的Wine會包含一些舊版本里沒有的bug。在feisty的軟件倉庫里包含了0.9.33,而最新的Wine是0.9.44(我翻譯文章時)。0.9.33更加穩定,但是最新的版本包含重大的DirectX改進。有一些不能在0.9.33下運行的游戲能夠在0.9.44中很好地運行。在使用0.9.37到0.9.40之間的某些版本運行KotOR2時,聲音在我的系統上崩潰了。那是最好的有關使用最新版導致棘手問題的好例子。
(譯者:我個人還是推薦使用最新版,使用新版本會有更好的運行速度,而且基本上每個bug都會在未來的2~3個版本中被修復)
1.3不要從源碼編譯安裝Wine (譯者:作者沒有說為什么,可能是因為編譯要解決的依賴性問題太多了。
我個人還是推薦編譯安裝,這樣安裝完后問題少一點,性能好一點。)
1.4使用終端 如果正確安裝的話,wine會把它自己關聯到exe文件,所以你只要雙擊exe文件就可以運行。無論怎樣,這都不是我們所推薦的使用wine的方法(譯者:我也不推薦)。使用終端會比較好,因為這樣可以正確地設定程序的路徑,否則程序就會找不到所需要的文件。另外,使用終端還可以顯示出錯誤信息,這對于解決問題是非常有用的。
1.5準備對付挫折 Wine并不完美。不會所有的事情都能順利發展,有時候甚至需要你自己去解決問題。但你現在是一個linux用戶了,你就要準備著去應付。
2“winecfg”的使用資料 2.1運行“winecfg” 你至少需要運行一次winecfg來設置wine的目錄和硬件。
2.2虛擬桌面 使用這個選項可以使軟件的安裝更加流暢。我發現在不使用這個選項的時候,使用某些程序會導致已經激活的對話框、CDKEY輸入窗口或更換光盤的確認窗口不能出現在前端。讓我以為程序卡死了,就kill掉了進程。選擇這個選項還能夠避免程序鎖死你的桌面或者把你的屏幕分辨率改成難看的模式。
2.3使用Application Settings 你可以在winecfg的Application標簽里的Application Settings對話框對個別的程序進行自定義設置。那里只允許你進行windows兼容運行模式設置(譯者:像windows下的exe屬性里的兼容性標簽)、某些顯示設置和DLL的設置。
當你只需要設置某個程序使用某些特定的windows自帶的DLL,不希望其它程序(包括wine)使用這些native的DLL的時候(而其它程序使用這些DLL會導致問題),(譯者:wine自帶的DLL叫做builtin,windows下原生的DLL叫做native)這個選項就會變得十分有用。在進行DLL設置時我都用這個方法,就是為了防止某些對wine的運行存在潛在威脅的nativeDLL被wine調用(譯者:在一般情況下,wine只調用自帶的builtinDLL,而不會使用native的DLL,版權問題,除非經過設置,如上所述)。這樣我就只是修改了那些可執行的配置文件,當我不需要時,可以改回來而不會損壞整個Wine。(譯者:設置這些東西之前,保證已經將一個程序的exe文件添加到Application標簽的白框中,并且反色選中。不是default的那個,是你所需要設置的那個exe文件。)
2.4Windows版本 對不同的程序嘗試不同的Windows版本。這就是說一個為了XP而設計的游戲可能會在wine的98模式的支持下能更好地運行。在做這個之前確認你已經把程序添加到Application的白框中,并且選中,反色顯示。
2.5使用ALSA驅動 有些游戲是需要OSS才能運行,但是OSS已經不會再繼續開發了。
(譯者:推薦只是獨立聲卡使用ALSA,集成的還是使用OSS最好)
2.6不要總是選擇allow the window manager to control the windows(winecfg里的) 使用這個選項有時候會使游戲在全屏幕運行時出現問題。當前的wine版本0.9.39+已經修正了多數游戲的全屏問題,但是引入了一個新的問題:當不使用這個選項時,會使鍵盤不能游戲中輸入。在使用一個單獨的X server來運行游戲時,這個問題可以得到解決。(見“高級設置資料”)
2.7謹慎對待DLL winecfg可以讓你用native的DLL替換builtin的DLL。下面的這些DLL是絕對不能被替換的。kernel32.dll,gdi32.dll,user32.dll,和ntdll.dll。有些nativeDLL也可能使一些程序不能運行。記得永遠不要覆蓋wine自帶的dll,如果native的用不了就用builtin的換回來。有些MS的DLL要得到許可才能用,如果你沒有許可,就不要用。
3特殊配置資料 3.1建立一個到CD的鏈接 Wine會建立一個到你掛載CD的文件夾的鏈接,但是建立一個到真正的/dev里的設備的鏈接會更好。我發現如果不這樣做,Wine會自己建立到/dev的鏈接,把CD認成E:盤,而我的掛載目錄卻鏈接為D:盤。我認為這個可能會導致某些使用CD安裝的程序出現問題。修改/dev/hdc以適應你的系統(譯者:7.04一般都是/dev/scd0)。
代碼:
ln -s /dev/hdc ~/.wine/dosdevices/d\:\:
3.2實用注冊表鍵值有些設置是不能通過winecfg來進行設置的,但是可以在注冊表中進行設置。在wine的wiki中有一篇保持更新的文章
http://wiki.winehq.org/UsefulRegistryKeys有兩個鍵值是非常有用的,一個是Alsa Driver的UseDirectHW,可以解決一些聲音跳頓的問題;還有Direct3D的VideoMemorySize,你應該設置成你的顯卡的準確顯存,默認wine會設置成64MB。
3.3WINEPREFIXCREATE這個我暫時不翻譯
3.4安裝Wine Gecko IE engine有些程序的運行依賴于IE,但是,安裝IE會嚴重地破環Wine。所以可以安裝Wine Gecko IE engine作為替代品。
1、在終端下運行下面的命令:
代碼:
wine iexplore http://www.winehq.org
2、當出現安裝提示時回答yes
3、打開http://wiki.winehq.org/UsefulRegistryKeys,找到HKEY_LOCAL_MACHINE板塊
4、把所有有關Internet Explorer的鍵值加到注冊表中
安裝完成后,運行
代碼:
wine iexplore http://www.winehq.org
成功的話就會出現winehq的主頁。
3.5中文支持設置把下面的代碼保存為zh.reg,然后終端執行regedit zh.reg。從Windows目錄下的Fonts里的simsun.ttc復制到/home/user/.wine/drive_c/windows/fonts里面。
代碼:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial"="simsun"
"Arial CE,238"="simsun"
"Arial CYR,204"="simsun"
"Arial Greek,161"="simsun"
"Arial TUR,162"="simsun"
"Courier New"="simsun"
"Courier New CE,238"="simsun"
"Courier New CYR,204"="simsun"
"Courier New Greek,161"="simsun"
"Courier New TUR,162"="simsun"
"FixedSys"="simsun"
"Helv"="simsun"
"Helvetica"="simsun"
"MS Sans Serif"="simsun"
"MS Shell Dlg"="simsun"
"MS Shell Dlg 2"="simsun"
"System"="simsun"
"Tahoma"="simsun"
"Times"="simsun"
"Times New Roman CE,238"="simsun"
"Times New Roman CYR,204"="simsun"
"Times New Roman Greek,161"="simsun"
"Times New Roman TUR,162"="simsun"
"Tms Rmn"="simsun"
4安裝資料4.1不要在CD的目錄下安裝程序(譯者:就是不要cd到CD的掛載目錄運行安裝程序)
如果這樣做的話,就會在換CD時出現CD不能推出的問題,用下面的命令來安裝CD:
代碼:
wine /media/cdrom0/setup.exe
4.2需要用到“wine eject”如果安裝程序需要你換CD,而系統卻說不能推出CD,那就打開一個新終端,輸入:
代碼:
wine eject d:
4.3安裝InstallShield的bug補丁安裝http://support.installshield.com/kb/files/Q108322/IkernelUpdate.exe
這個補丁可以解決一些CD安裝問題。
4.4使用uninstaller使用命令“uninstaller”來卸載安裝的程序,不要使用程序在菜單里面創建的卸載快捷方式,他們有時候不能正常工作,而uninstaller可以。
4.5安裝.msi文件有些windows的安裝程序是使用msi來安裝的,那就用下面的命令來安裝:
代碼:
wine msiexec /i install.msi
或者
代碼:
wine start install.msi
4.6不要安裝DirectXWine有它自己的DirectX庫,安裝微軟的DirectX會破壞wine的DirectX庫和Wine。
但是,d3dx9_##.dll和d3dx10_33.dll可以從Windows復制過來使用,可能會在啟動某些游戲時有所幫助。使用這些dll你需要微軟的授權證書。
5一般使用資料5.1如何用wine來運行程序代碼:
wine application.exe
5.2運行程序前cd到程序的安裝目錄cd到程序的安裝目錄再運行程序。
5.3關掉WINEDEBUG一般情況下,wine會不斷地產生一些debug信息(那些“fixme”的東西)。那些信息在很多情況下是沒有用的,尤其你已經可以正常地運行一個程序。你可以使用下面的命令來避免debug信息,節省資源:
代碼:
WINEDEBUG=-all game.exe
5.4不要使用root或者sudo來運行wine可能會損壞系統文件。
5.5其他wine的命令wineboot 模擬windows的重新啟動
wine control 運行控制面板
wineserver wineserver會隨著wine的命令自動啟動,但也能通過終端啟動來達到不同的目的。
wineserver的一些參數
1、-d# 設置終端中debug的顯示級別。
2、-h 顯示wineserver幫助文件
3、-k kill掉當前的wineserver,當程序失去響應而你要結束它時使用。
4、-p 讓wineserver一直運行,也就是說即使程序退出了,wineserver還繼續運行。當你需要運行連續的程序時可以使用,這樣可以縮短程序的啟動時間。
5、-w 讓wineserver一直運行直到當前已激活的wineserver退出。
5.6讓Wine運行更流暢當出現程序運行緩慢或性能起伏不定的問題時,可以通過提高進程的優先級來解決。啟動游戲后,可以使用“renice”命令來改變進程的優先級。“renice”命令可以改變當前進程的優先級,“nice”的值是優先級級別的標志,(高優先級=低nice值,低優先級=高nice值)。這個命令把程序優先級的值設置為從-20(最高優先級)到19(最低優先級)之間的任何一個整數值,而默認的值是0。在啟動游戲以后,你需要打開另外一個終端輸入下面的命令來改變程序的優先級:
代碼:
sudo renice -10 -n game.exe
在用Wine運行游戲時,我不推薦直接把程序的優先級設置到-20,最好是從-10開始,如果效果提升不明顯,可以一步步嘗試小幅度的提高(-11,-12,……)。你會發現絕大多數的游戲不需要比-10更高的優先級就已經可以達到最好的性能了。不用多說(我認為),在游戲中你可以用ALT-TAB組合鍵回到桌面使用“renice”命令。
第二種方法使用圖形界面來設置優先級。
1、 用終端運行游戲,按ALT-TAB回到桌面
2、 系統——>系統管理——>系統監視程序,切換到進程標簽
3、 在進程上點右鍵——更改優先權
4、 要求密碼時輸入
5、 關閉系統監視程序,用ALT-TAB回到游戲
6第三方軟件資料6.1 WineToolsWineTools是一個菜單式的可以安裝90多個常見Windows程序的軟件。它也可以幫助你設置Wine的基本目錄。已經不再有人維護WineTools,它已經兩年沒有升級了,但很多用戶都發現它依然有用。而WineTools所作的一切事情都可以自己通過winecfg或終端完成。
6.2Wine-DoorsWine-Doors是一個幫助你安裝很多的Windows程序,包括游戲的一個圖形界面的軟件。它現在還處在開發階段,但已經發布了一個可以下載的最初版本。就這個軟件看來,是非常有前途的。
6.3CedegaCedega就技術上來說是Wine的一個分支,它明確地針對于游戲。cedega包含了一個安裝和運行游戲的圖形界面,還加上了對受防拷貝保護的軟件的支持(不需要使用破解來免CD)(譯者:wine的對防拷貝的支持不是很好)。cedega不適免費的,最低消費是購買3個月,每月3美元,如果預付一年的費用的話,可以享受一點折扣。cedega從前叫做WineX,在Wine還是MIT軟件,而不是現在的GPL的時候,WineX就從wine的一個分支分離出來,就因為cedega不屬于GPL,cedega不再對wine的代碼發展作貢獻了。再加上cedega缺少支持,很多人便不再用cedega在linux下玩游戲。
6.4CrossOverCrossOver從技術上來說,CrossOver不是wine的一個第三方產品,而是wine的主要財力支持者。CrossOver一開始是以在linux下運行Microsoft Office軟件為目標的,但最近它開始添加對游戲的支持。CrossOver基于一個更老,更穩定的Wine版本(譯者:好像是0.9.17),但CrossOver也隨著Wine一起升級。CrossOver標準版的售價是39.95美元。
6.5ReactOS正如CrossOver一樣,ReactOS也是Wine的一個支持者,基于許多Wine已經完成的成果,它致力于建立一個能與Windows完全兼容的操作系統。完成后,ReactOS能夠使用Windows的驅動程序和軟件,完全兼容。這項計劃還處于開發階段,但已經可以提供安裝CD、LiveCD、QEMU和VMware鏡像的下載。
7高級設置資料7.1使用啟動腳本(使用之前確保游戲能夠正常運行)再使用單獨得X server時,很多游戲一般都可以發揮出他們最佳性能。wine不需要窗口管理器(GNOME或KDE)就可以正常地運行,所以如果你在一個單獨的X server下運行游戲,你會得到明顯的性能提升。在運行游戲之前,關閉GDM或KDM,還會得到更大的性能提升(只能通過控制(console)臺來實現)。
1、首先,在終端下建立一個腳本
代碼:
nano launcher.sh(可以用vim替換nano)
2、復制下面的文字到終端里。如果你沒有nVidia的顯卡,就刪除nvidia settings的那部分,然后用你的游戲的正確路徑替換里面的路徑
代碼:
#!/bin/sh
#uncomment if launching from console session
#sudo /etc/init.d/gdm stop
#KDE use this instead
#sudo /etc/init.d/kdm stop
# Launches a new X session on display 3. If you don't have an Nvidia card
# take out the "& nvidia-settings --load-config-only" part
X :3 -ac & nvidia-settings --load-config-only
# Goto game dir (modify as needed)
cd "$HOME/.wine/drive_c/Program Files/Game/Directory/"
# Forces the system to have a break for 2 seconds, X doesn't launch instantly
sleep 2
# Launches game (modify as needed)
DISPLAY=:3 WINEDEBUG=-all wine "C:/Program Files/Game/Directory/game.exe"
3、把文件保存到你的主文件夾(保存Ctrl+O,退出Ctrl+X。Vim的話先Esc,再Shift+:,保存w,退出q)
4、然后,給你的腳本加上可執行屬性
代碼:
chmod +x ~/launcher.sh
5、運行腳本
代碼:
sh launcher.sh
或
代碼:
./launcher.sh
6、結束游戲后,用CTRL-ALT-BACKSPACE回到桌面
第二種方法如果你的游戲不能運行或者只是單純想壓榨出更好的游戲性能,跟著下面的步驟嘗試在關閉X session的情況下運行游戲。
1、取消注銷“sudo /etc/init.d/gdm stop”語句(刪除#)后保存,如果你是使用KDE,就取消注銷“sudo /etc/init.d/kdm stop”。
2、關閉所有程序,按CTRL-ALT-F1打開控制臺
3、在控制臺登陸并運行這個腳本。你會被要求輸入密碼,然后游戲會在它自己的X session里運行,而沒有GDM或KDM的妨礙。
4、如果腳本顯示你沒有啟動X session的權限,就修改那個腳本
按照這樣修改X server的啟動語句
代碼:
sudo X :3 -ac & nvidia-settings --load-config-only
注意:為了避免修改腳本,你可以修改Xwrapper.config給與一般用戶啟動X的權限。用sudo vim打開/etc/X11/Xwrapper.config,把allowed_users=console修改為allowed_users=anybody。5、結束游戲后,可以重啟或CTRL-ALT-BACKSPACE回到控制臺,重新啟動X和桌面:
代碼:
sudo /etc/init.d/gdm start
如果是KDE
代碼:
sudo /etc/init.d/kdm start
桌面會很快出現,還不行的話就輸入
代碼:
startx
注意:
1、如果讓游戲使用它自己的X session,確認禁止winecfg里的virtual desktop。
2、讓游戲使用它自己的X session可以解決在游戲時鍵盤無法輸入的問題。