天天看點

Wine完全使用指南——從基本到進階

Wine完全使用指南——從基本到進階  

鑒于Wine的迅猛發展,本文的内容已經有些已經不适用了。Wine的自動化提高了很多,以前的很多設定已經不必要了。參考一下就好了。  

我收集到的關于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使用終端 

       var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);    

如果正确安裝的話,wine會把它自己關聯到exe檔案,是以你隻要輕按兩下exe檔案就可以運作。無論怎樣,這都不是我們所推薦的使用wine的方法(譯者:我也不推薦)。使用終端會比較好,因為這樣可以正确地設定程式的路徑,否則程式就會找不到所需要的檔案。另外,使用終端還可以顯示出錯誤資訊,這對于解決問題是非常有用的。  

1.5準備對付挫折 

Wine并不完美。不會所有的事情都能順利發展,有時候甚至需要你自己去解決問題。但你現在是一個linux使用者了,你就要準備着去應付。  

2“winecfg”的使用資料  

2.1運作“winecfg” 

你至少需要運作一次winecfg來設定wine的目錄和硬體。  

2.2虛拟桌面 

使用這個選項可以使軟體的安裝更加流暢。我發現在不使用這個選項的時候,使用某些程式會導緻已經激活的對話框、CDKEY輸入視窗或更換CD光牒的确認視窗不能出現在前端。讓我以為程式卡死了,就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裡的) 

 var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);

使用這個選項有時候會使遊戲在全螢幕運作時出現問題。目前的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 

下載下傳文檔到電腦,查找使用更友善

2下載下傳券  5人已下載下傳

下載下傳

還剩8頁未讀,繼續閱讀

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不要安裝DirectX 

Wine 有它自己的DirectX庫,安裝微軟的DirectX會破壞wine的DirectX庫和Wine。 但是,d3dx9_##.dll和 d3dx10_33.dll可以從Windows複制過來使用,可能會在啟動某些遊戲時有所幫助。使用這些dll你需要微軟的授權證書。 

在用Wine運作遊戲時,我不推薦直接把程式的優先級設定到-20,最好是從-10開始,如果效果提升不明顯,可以一步步嘗試小幅度的提高(-11,-12,)。你會發現絕大多數的遊戲不需要比-10更高的優先級就已經可以達到最好的性能了。不用多說(我認為),在遊戲中你可以用ALT-TAB組合鍵回到桌面使用“renice”指令。  

第二種方法 

使用圖形界面來設定優先級。 

1、 用終端運作遊戲,按ALT-TAB回到桌面 

2、 系統——>系統管理——>系統監視程式,切換到程序标簽 3、 在程序上點右鍵——更改優先權 4、 要求密碼時輸入 

5、 關閉系統監視程式,用ALT-TAB回到遊戲   

6第三方軟體資料  

6.1 WineTools 

WineTools是一個菜單式的可以安裝90多個常見 Windows程式的軟體。它也可以幫助你設定Wine的基本目錄。已經不再有人維護WineTools,它已經兩年沒有更新了,但很多使用者都發現它依然有用。而WineTools所作的一切事情都可以自己通過winecfg或終端完成。  

6.2Wine-Doors 

Wine-Doors是一個幫助你安裝很多的Windows程式,包括遊戲的一個圖形界面的軟體。它現在還處在開發階段,但已經釋出了一個可以下載下傳的最初版本。就這個軟體看來,是非常有前途的。  

6.3Cedega 

Cedega就技術上來說是Wine的一個分支,它明确地針對于遊戲。 cedega包含了一個安裝和運作遊戲的圖形界面,還加上了對受防拷貝保護的軟體的支援(不需要使用破解來免CD)(譯者:wine的對防拷貝的支援不是很好)。cedega不适免費的,最低消費是購買3個月,每月3美元,如果預付一年的費用的話,可以享受一點折扣。cedega從前叫做WineX,在 Wine還是MIT軟體,而不是現在的GPL的時候,WineX就從wine的一個分支分離出來,就因為cedega不屬于GPL,cedega不再對 wine的代碼發展作貢獻了。再加上cedega缺少支援,很多人便不再用cedega在linux下玩遊戲。  

6.4CrossOver 

CrossOver從技術上來說,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可以解決在遊戲時鍵盤無法輸入的問題。  

Linux下最有名的Windows環境模拟器就是WINE了。它提供了一個可以模拟WINDOWS環境 的基本平台,在這上面你幾乎可以運作任何你想運作的windows程式。  

什麼?你不相信?不要告訴我你的程式運作時總是提示缺少mfc42.dll。。。  

預設的WINE環境缺少很多WIN平台的庫,而且最可恨的是,system32目錄下竟然沒有regedit程式。  

下面我來介紹一下,如何讓你的WINE環境更為完整。  

我示範的linux發行版是ubuntu 9.04, wine的版本号是1.1.26  

1.準備正确的系統資料庫編輯器  

首先将/home/你的使用者名/.wine/dosdevices/c:/windows下的regedit.exe程式複制到system32目 錄下。  

指令:   

sudo cp /home/你的使用者名/.wine/dosdevices/c:/windows/regedit.exe /home/你的使用者名/.wine/dosdevices/c:/windows/system32/  

2.下載下傳并安裝winetricks  

wget http://www.kegel.com/wine/winetricks  

chmod +x winetricks  

sudo mv winetricks /usr/local/bin      

3。用winetricks安裝必須的win支援庫。這一步很關鍵。  

指令行中輸入winetricks    

然後勾選colorprofile、corefonts、d3dx9、fontfix、fontsmooth-gray、fontsmooth-rgb、fontsmooth-bgr、gdiplus、mfc40、mfc42、 

msxml3、msxml4、msxml6、riched20、riched30、tahoma、urlmon、vb6run、vcrun6、vcrun2003、vcrun2005、vcrun2008、ie6、allfonts    

然後選擇安裝。    

4。下面輸入winetricks後,勾選dotnet11、dotnet20、vjrun20并安裝。    

都安裝完畢以後,有興趣的朋友可以嘗試安裝一下powerdesigner看看能不能用。哈哈。  

更多資訊請參見http://wiki.winehq.org/winetricks

轉載于:https://blog.51cto.com/xiaomaomao/1714658

繼續閱讀