2026年1月29日 星期四

WIne使用教學

  之前有簡單記錄我使用wine安裝LINE(可以參考:在Linux上用Wine運行Line),我決定這次來細細說明,並且嘗試裝最少的依賴、依照官方建議來安裝wine並且配置LINE。我一開始用Chrome擴充套件的LINE,這是成本最小、對系統影響程度最小的,前提是你是長期的Chrome使用者,因為較令我困擾的是沒有通知,除非我打開Chrome和這個擴充套件(總之就是Chrome要留存後臺)。我又想使用較為Debian的方法來實現,故暫不考慮透過Bottles來實現(有用到Flatpak)。

   wine是一種兼容層,將windows的API翻譯成Linux對應的API。主要是有些軟體不適配Linux,不得不的狀況下只好用轉譯層在Linux上執行Windows軟體,其商業版就是CrossOver。需要留意的是,如果需要較好的windows執行表現或是真的無法用wine來處理,建議是雙系統(參考:Debian + btrfs安裝指南(Windows雙系統指南)Fedora安裝教學 + 配置btrfs硬碟分割 + btrfs淺談Debian + KDE Plasma 安裝教程與我的KDE桌面美化)或是使用虛擬機。

確認發行版

  我的發行版是Debian Trixie(Debian 13),我們可以用下列語法來得知發行版。

#cat是catch的縮寫,意即抓取文件。讀取/etc裡面的os-release文件
cat /etc/os-release

我的發行版是Debian Trixie

  我們之所以需要確認發行版,是因為等一下要手動添加軟體源(PPA)。根據wine官方的wiki,新版本的Ubuntu(>=25.10)、Debian Testing是提供WoW64套件,主要是因為wine裡面有大量的套件是依賴32位元的套件包,而這個WoW64是微軟(Microsoft)用來使得64位元系統可以執行32位元軟體的相容層,而如果不是使用Ubuntu(>=25.10)、Debian Testing,我們得添加32位元倉庫。

安裝 

  我們主要依照官方的操作指示即可。

  1. 前往wine-hq安裝指引。網址:https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu 
    我們選定對應的發行版,複製指令安裝即可

  2. 安裝指令 
    #啓用32位元倉庫支援
    sudo dpkg --add-architecture i386

    #加入官方GPG密鑰
    sudo mkdir -pm755 /etc/apt/keyrings
    wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key -

    #添加官方wine套件倉庫
    sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/trixie/winehq-trixie.sources
    輸出結果示例

  3. 可以留意的是Debian官方倉庫也有收錄wine,套件名稱是wine,而wine官方的套件名稱是wine-hq開頭,因此不需要修改apt套件的優先級。我們可以找自己的需求安裝對應版本的wine。而wine主要有三個分支,分別是stable、devel、staging,依序是穩定版、開發版、前沿版,我是選擇穩定版,因為我的電腦主要是追求穩定,如果你有需要安裝遊戲或是有一些軟體會頻繁更新的話,我建議安裝devel分支。總之,若不知道自己的明確需求,就安裝devel分支,是較為平衡的做法,我最近不大想一直更新電腦,所以就stable。
    三個分支,就複製對應的安裝指令。

    #更新源
    sudo apt update

    #安裝需要的wine。我是安裝stable分支。值得留意的是,
    --install-recommends是在告訴apt套件管理器將官方建議的所有依賴都安裝上去,所以有些大,為了日後能夠較為穩定、無阻的運行,我在此就一律裝上了。
    sudo apt install --install-recommends winehq-stable

    #如果是安裝WoW64的(就是用新版Ubuntu、Debian Testing),可能有套件依賴衝突,可以嘗試下列指令來移除i386(32位元)套件以解決依賴問題。
    sudo apt remove winehq-devel wine-devel wine-devel-amd64 wine-devel-i386:i386


  4. 為了方便使用,例如安裝一些必要的dll文件,我們可以安裝winetricks

    #從GitHub抓取源碼
    wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

    #提權。主要是這是外來的可執行命令、文件,因此要修改權限
    chmod +x winetricks

    #Linux很多命令都是存放在/usr/bin下方,因此要把wintricks這個命令移到該目錄,以便我們在終端機執行這個命令
    sudo mv winetricks /usr/bin
    輸出示例

語法的簡單教學

  • wine + 下列語法啓動對應的工具(i.e. wine taskmgr)

    explorer:模擬檔案總管。
    control:模擬控制台,僅能解除安裝程式和調整網路設定。
    unintaller:解除安裝軟體的面板。
    taskmgr:模擬工作管理員。
    regedit:模擬登錄檔編輯器
    notepad:模擬記事本
    cmd:命令提示字元,支援DOS指令。
    wine-dbg:除錯工具
    winecfg:調整Wine設定值。

  • 執行.exe或是.msi。
    wine "exe路徑"
     
  • 語法組合:<指令1> <指令2> ... wine  "exe路徑"。指令之間用空格隔開,最後再加上「wine "exe路徑"」

    WINEPREFIX:指定wine的虛擬C槽路徑(i.e. 
    WINEARCH:指定wine容器架構

    例如:在/home/xjd/opt/wine_line建立容器,架構是64位元,並且啓動winecfg來設定容器
    WINEPREFIX="/home/xjd/opt/wine_line"  WINEARCH=win64 winecfg

    這裡就需要提醒一下,建議是使用32位元容器(
    WINEARCH=win32),問題較少。但隨着windows 11是只有64位元版本,我相信日後32位元的軟體將會漸少,我在這篇教學會偏好嘗試使用64位元的架構,如果為了穩定、少麻煩且有32位元軟體者,推薦使用32位元。

應用:安裝LINE

  1. 建立容器。建立虛擬C槽,我是建立在我的家目錄下方opt文件夾,並且打開winecfg來設定容器。值得一提的是,WINEPREFIX要求的路徑是絕對路徑,舉例來說,家目錄不可以用「~」,得要用「/home/使用者名稱」

    WINEPREFIX=/home/xjd/opt/wine/line WINEARCH=win64 winecfg

  2. 接下來會提示是否需要安裝wine mono。如果你的軟體依賴NET套件,則建議安裝,我是要安裝LINE,就我所知應該是不依賴這兩個套件,我先不安裝。故在視窗選Cancel。(因為視窗太小,我就不截圖了)
  3. 我遇到程序卡住,我們使用快捷鍵「Ctrl + C」來停止程式,然後再次執行步驟1的指令即可打開winecfg
     
  4. 因為界面有夠小,我們先調整畫面大小,然後關閉winecfg,再次執行步驟1的指令呼叫winecfg
    winecfg初始界面很小
    進到Graphics選項
     
    我是設定240dpi,這部分隨喜,數字愈大畫面元素愈大。好了就按OK,退出winecfg。

  5. 再次執行「WINEPREFIX=/home/xjd/opt/wine/line WINEARCH=win64 winecfg」,會發現界面正常許多。
    結果示例
  6. 依照下面附圖設定(我在此展示我的設定,可以依照個人需求)。其他設定我們可以使用winetricks來處理。
    設爲Windows 10,按下OK即可保存設定並退出winecfg
  7. 處理字型。wine可能無法正確的讀取到系統字型,這裡的解法有二,一是用winetricks安裝中文字型,二是讓wine虛擬C槽讀取系統字型,我先示範方法二。[推薦]

    #語法。先切換到虛擬C槽的字體目錄,再建立軟鏈接(讓windows抓取字型時,會透過這個軟鏈接像是經過任意們抓取Linux下方的字型)
    $ cd ${WINEPREFIX:-"你的容器路徑"}/drive_c/windows/Fonts && for i in /usr/share/fonts/**/*.{ttf,otf}; do ln -s "$i"; done

    #以我來說
    cd  
    /home/xjd/opt/wine/line/drive_c/windows/Fonts && for i in /usr/share/fonts/**/*.{ttf,otf}; do ln -s "$i"; done

    #因為wine使用FreeType,可以嘗試使用下列指令使得wine可以成功識別字型
    FREETYPE_PROPERTIES="truetype:interpreter-version=35"


  8. 方法一是使用winetricks安裝必要字型。

    winetricks corefonts cjkfonts

  9. 使得字體平滑、修正字體模糊

    winetricks fontsmooth=rgb

    輸出示例

  10. 啓動winetricks,開始做一些前置設定

    #安裝
    cabextract,winetricks後面會用到的依賴
    sudo apt install cabextract

    WINEPREFIX=~/opt/wine/line WINEARCH=win64 winetricks 


    選擇預設的容器
    同意操作
    選擇第一項,安裝dll
    安裝d3d...47
    安裝vc...2022,按下OK後,就是同意協議並安裝軟體

    我們退出winetricks

  11. 執行LINE安裝程式,並且依照一般方式完成安裝

    #以我來說
    WINEPREFIX=~/opt/wine/line WINEARCH=win64 wine '/home/xjd/Downloads/LineInst.exe'



  12. wine的捷徑放在下列目錄,可自行管理

    ~/.local/share/mime/packages/x-wine*
    ~/.local/share/applications/wine-extension*
    ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*
    ~/.local/share/mime/application/x-wine-extension*

參考資料

沒有留言:

張貼留言