天天看點

Linux平台上關于工具Wine的完全使用指南

from : http://hi.baidu.com/chinamis/blog/item/b66bfcca8a6d7c40f31fe722.html

用了段時間的UBUNTU,感覺很好!可是工作的時候還是要用到windows軟體,于是乎,采取折中方案:安裝UBUNTU下的WINE。

  一直苦于沒有一篇像樣的使用指南,原來外國有朋友跟我有同感,既然他捷足先登了,那我隻好翻譯了。原文作者說會保持更新,這篇文章是很新的,介紹了很多實用的Wine設定方法,非常全面,無論新手還是老鳥都值得一讀。

  我收集到的關于Wine的一些資料

  如果你像我一樣的話,當你第一次使用Wine的時候,就會被Wine的幫助文章現狀所困擾。網際網路上 确實有很多的HOWTO文章來教你使用一些程式或遊戲,但是我找不到一個全面的“Wine初學者教程”來讓我真正懂得實際了解和使用Wine所需的基本知 識。我不需要一個教我如何運作半條命2的文章,我需要的是一篇能實實在在教我怎樣使用Wine的文章。最後,我整理了從衆多的Wiki、指南、文章和 HOWTO搜集來的資料,寫成這篇文章。雖然這篇文章主要針對在Wine下運作遊戲,但是它包括的幾乎所有的資訊都可以應用到用Wine來運作其它的程 序。

  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輸入視窗或更換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裡的)

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

  a、在終端下運作下面的指令:

  wine iexplore http://www.winehq.org

  b、當出現安裝提示時回答yes

  c、打開http://wiki.winehq.org/UsefulRegistryKeys,找到HKEY_LOCAL_MACHINE闆塊

  d、把所有有關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 …… 2/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你需要微軟的授權證書。

  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的一些參數

  a、-d# 設定終端中debug的顯示級别。

  b、-h 顯示wineserver幫助檔案

  c、-k kill掉目前的wineserver,當程式失去響應而你要結束它時使用。

  d、-p 讓wineserver一直運作,也就是說即使程式退出了,wineserver還繼續運作。當你需要運作連續的程式時可以使用,這樣可以縮短程式的啟動時間。

  e、-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回到遊戲

#!/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"      

  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)台來實 現)。

  a、首先,在終端下建立一個腳本

  nano launcher.sh(可以用vim替換nano)

  b、複制下面的文字到終端裡。如果你沒有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"      

  c、把檔案儲存到你的主檔案夾(儲存Ctrl+O,退出Ctrl+X。Vim的話先Esc,再Shift+:,儲存w,退出q)

  d、然後,給你的腳本加上可執行屬性

  chmod +x ~/launcher.sh

  e、運作腳本

  sh launcher.sh

  或

  ./launcher.sh

  f.結束遊戲後,用CTRL-ALT-BACKSPACE回到桌面

  第二種方法

  如果你的遊戲不能運作或者隻是單純想壓榨出更好的遊戲性能,跟着下面的步驟嘗試在關閉X session的情況下運作遊戲。

  a、取消登出“sudo /etc/init.d/gdm stop”語句(删除#)後儲存,如果你是使用KDE,就取消登出“sudo /etc/init.d/kdm stop”。

  b、關閉所有程式,按CTRL-ALT-F1打開控制台

  c、在控制台登陸并運作這個腳本。你會被要求輸入密碼,然後遊戲會在它自己的X session裡運作,而沒有GDM或KDM的妨礙。

  d、如果腳本顯示你沒有啟動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。

  e、結束遊戲後,可以重新開機或CTRL-ALT-BACKSPACE回到控制台,重新啟動X和桌面:

  sudo /etc/init.d/gdm start

  如果是KDE

  sudo /etc/init.d/kdm start

  桌面會很快出現,還不行的話就輸入

  startx

  注意:

  a、如果讓遊戲使用它自己的X session,确認禁止winecfg裡的virtual desktop。

  b、讓遊戲使用它自己的X session可以解決在遊戲時鍵盤無法輸入的問題。

http://linux.chinaitlab.com/network/730968.html

繼續閱讀