Ubuntu下Wine工具的完全使用攻略

Ubuntu下Wine工具的完全使用攻略

2008-12-13 11:25:07  www.hackbase.com  來源:中國IT實驗室
  用了段時間的Ubuntu,感覺很好!可是工作的時候還是要用到 windows軟件,於是乎,採取折中方案:安裝Ubuntu下的WINE。  一直苦於沒有一篇像樣的使用指南,原來外國有朋友跟我有同感,既然他捷足 先登了,那 ...
  用了段時間的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輸入窗口或更換光盤的確認窗口不能出現在前端。讓 我以爲程序卡死了,就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.3 WINEPREFIXCREATE
  這個我暫時不翻譯
  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補丁
   這個補丁可以解決一些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回到遊戲
  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可以解決在遊戲時鍵盤無法輸入的問題。
發佈了20 篇原創文章 · 獲贊 3 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章