How-To:Linux 安裝 Wine

操作環境:

  • Fedora 23
  • Wine 1.9.3 (Staging)

 

Wine 是一款開放原始碼的軟體相容層(compatibility layer),其宗旨是在 Unix-like 平台上提供 Windows 應用程式的可執行環境。儘管它並不屬於模擬器(emulator)的類型,但其作用對於終端使用者而言,實則與模擬器無異:讓使用者可在 Linux 平台上執行 Windows 應用程式。

 

然而讓 Windows 應用程式在非 Windows 的作業系統上執行顯然並不是件簡單的工程,因此 Wine 在實用性上也存在著許多侷限性,其一是所支援的軟體有限,並不是任一 Windows 應用程式都能夠順利執行;其二是由於得透過相容層執行,因此軟體的執行效能可能會受到影響;其三則是可靠性及穩定度,某些應用程式或許在特定條件下可以順利運作,但若出現變化則會導致錯誤。

 

因此若想要將 Wine 作為某種解決方案,建議優先參閱 Wine 的應用程式資料庫(AppDB),確認 Wine 是否可順利執行特定的應用程式,並參考其中的設定說明(如果有的話)。除此之外,也可利用一些額外的工具程式來協助應用程式的安裝與設定。

 

事實上,除了用於執行 Windows 應用程式外,在 Linux 系統上安裝 Wine 還有一項附帶好處。就是在安裝 Wine 的同時,也會因為相依性的緣故,連帶安裝許多與多媒體相關的函式庫。而這些函式庫往往都是執行 Linux 遊戲所需的,所以有機會順勢解決 Linux 遊戲在執行時缺少某些函式庫的問題,也就無須再自行一一安裝。

 

1. 安裝 Wine

若是 Fedora 發行版的使用者,則 Wine 可以直接從官方套件庫中取得,利用 dnf 安裝即可:

  • sudo dnf install wine

 

不過這邊得留意的是,Wine 的發行版本分為穩定版(Stable)及開發版(Development),此外還有一項 Wine Staging 子專案收納更具實驗性質的更新程式。而 Fedora 所提供的版本實際上是開發版本再加上 Staging,因此若另有考量,可能就得採用其它的安裝方式,例如使用 WineHQ 所提供的套件庫來安裝穩定版本。

 

2. 執行 Wine

Wine 的執行指令即是「wine」,若不輸入任何參數直接執行則會輸出基本的提示訊息:

  • wine

 

若加上 Windows 應用程式的執行檔路徑(例如「foo.exe」)則會執行該檔案,這便是 Wine 最基本的操作方式:

  • wine foo.exe

 

倘若在某些情況下,希望強制關閉所有執行中的 Wine 程序,可以執行以下指令:

  • wineserver -k

 

通常由發行版所提供的 Wine 套件會與桌面環境整合,因此於檔案管理員中欲開啟 *.exe 檔時即可選擇使用 Wine 開啟。另一方面,如果在透過 Wine 安裝應用程式時,有新增捷徑於「開始功能表」(Start menu)中,則桌面環境的應用程式清單也將會出現對應的桌面項目(desktop entry)。至於該項目的具體存放位置則位於使用者家目錄下的「.local/share/applications/wine/」目錄中。

 

Wine 在初次執行應用程式或子程式時,會自動在使用者家目錄下建立一個隱藏的「.wine」目錄,用來放置 Wine 的所有設定以及所安裝的應用程式,例如由 Wine 所虛構出來的 C 磁碟以及 Windows 的基本目錄便是位於「.wine/drive_c」 中。所以若有需要備份或重置 Wine 的環境,只要從 .wine 目錄著手就行了。

 

3. Wine 子程式

Wine 本身有內建一些子程式,可用來調整設定或進行測試,其中最為重要的是「winecfg」,這是 Wine 的系統設定工具,只要執行以下指令便可啟動:

  • winecfg

 

 

實際上該指令是一支 script,其作用等同於以下指令:

  • wine winecfg

 

也就是說,只要知悉子程式的名稱,就能夠將名稱作為參數加以啟動,完整的子程式列表可參閱 Wine 原始碼的 program 目錄。不過並非所有子程式都具有可用性,以下則重點列舉部份的 Wine 子程式:

  • wine uninstaller(新增/移除程式)
  • wine regedit(登錄編輯程式)
  • wine winefile(檔案管理員)
  • wine wineconsole(命令提示字元)
  • wine notepad(記事本)
  • wine wordpad(Wordpad)
  • wine winemine(踩地雷)

 

4. 額外的工具程式

winetricks 是一款輔助腳本工具,其最常被利用的功能是可以方便安裝特定應用程式所需的額外套件,例如 Microsoft Visual C++ 可轉散發套件(Redistributable Packages)等等。winetricks 的安裝方式如下:

  • wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
  • chmod +x winetricks

 

舉例來說,利用 winetricks 下載並安裝 Windows 核心字型、以及 Visual C++ 2005、2008 可轉散發套件的指令如下所示:

  • ./winetricks corefonts vcrun2005 vcrun2008

 

部份其它參數則列舉如下:

  • ./winetricks apps list(列出應用程式安裝腳本)
  • ./winetricks games list(列出遊戲安裝腳本)
  • ./winetricks dlls list(列出函式庫安裝腳本)
  • ./winetricks --gui(啟動簡易的圖形介面)

 

PlayOnLinux 是另一款腳本工具,不過是以圖形介面為主,其安裝方式如下:

  • sudo dnf config-manager --add-repo=http://rpm.playonlinux.com/playonlinux.repo
  • sudo dnf install playonlinux

 

安裝完畢後,執行「playonlinux」便會啟動該工具。

 

至於 CrossOver 則是 Wine 的商業版本,由主導 Wine 專案的 CodeWeavers 公司所提供,它具有以下特點:

  • 內建穩定版本的 Wine;
  • 便利的軟體安裝與設定工具;
  • 為多款應用程式提供官方支援;
  • 適用於多種發行版的安裝套件。

 

CrossOver 也有自己的應用程式資料庫,可從中檢閱對於特定應用程式的支援程度。若對於在 Linux 上使用 Windows 應用程式,需要擁有最為穩定的支援,那麼 DR 會建議購買 CrossOver 軟體。例如 DR 曾建置過一部公務文書機,使用的便是 CrossOver + Microsoft Office。除此之外,其實購買 CrossOver 也是在贊助 WIne 這項專案。

 

Bottles 是將 Wine 容器化的前端工具,是以 Flatpak 的形式發佈。有別於 Wine 在預設狀態下,各個應用程式是共存在同一個 Windows 虛構環境裡,也都共用相同的環境設定;Bottles 則是透過圖形介面建立及管理多個環境,來分別針對不同的需求,進行設定、安裝及執行應用程式。此外也有許多便利功能可運用,相當方便。

 

5. 其它參考資料