RHEL 9 編譯及安裝 Wine
最近開始嘗試在使用 RHEL 9 發行版的情況下,將其打造成更接近於 DR 平日桌面工作環境的狀態。然而跟同屬於 Red Hat 生態體系的 Fedora 發行版相比,其中一項可以感受到的顯著差異,是倘若要安裝 Wine 這款 Windows 應用程式的相容工具,則 Fedora 比起 RHEL 要方便許多。因為 Fedora 本身的套件庫即有提供 Wine,或者 Wine 專案也有為 Fedora 提供套件庫,使用者只要擇一來源使用 dnf 安裝即可。
相形之下,Wine 並不含括在 RHEL 本身的套件庫裡。雖然可以另外從 EPEL 套件庫內取得,然而 EPEL 所提供的 Wine 是純 64 位元版本,它無法用於執行 32 位元的 Windows 程式,使得它在現實上不太可用。而面對這樣的狀況,可以想見的解決辦法,包含了從 Flatpak 去找、利用 Steam Linux 客戶端內建的 Proton,或者使用 Wine 的商業版本──CrossOver,等等這些。
不過或許最具變化彈性的方案,還是自行下載 Wine 原始碼來編譯及安裝。於是在網路上找了一下,看看有沒有相關的操作流程,是可以直接依循的。後來在 AlmaLinux 的討論區裡找到了一支 Bash 腳本,發現非常合用,能夠將 Wine 的 64 及 32 位元一併編譯及安裝。不過由於 DR 自己還是比較習慣用 Python 來編排程式邏輯,於是再進一步改寫成 Python 腳本:winebuild.py。操作方式相當單純,下載腳本後,給予可執行權限,然後再執行即可:
- chmod +x winebuild.py
- ./winebuild.py
此腳本並未設計任何的輸入參數,主要的參數,如下載的 Wine 原始碼版本(預設為穩定版 8.0.2),以及編譯時的執行緒數目(預設為 2,往上提昇就會再縮短編譯速度,但也會佔用更多的 CPU 核心),均寫在程式碼開頭處,可自行變更。而腳本在執行時,每一階段都會詢問是否執行,因此使用者可選擇跳過已完成之步驟。循此法安裝的 Wine,倘若之後要做移除,可進入原始碼的 build 目錄中,再分別於 wine32 及 wine64 目錄內,執行:
- sudo make uninstall