快轉到主要內容

Bottles-cli命令行用法,將容器裡的Wine與Linux系統整合

Linux系統 Linux好用軟體 Bottles for Linux Wine
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

透過Bottles,我們就可以在Linux執行Windows的exe,請先看 如何安裝Bottles

一般版的Bottles是用圖形界面操作,開發者2023年又另外加入了Bottles-cli的命令行界面,可以用指令操作Bottles容器。

Bottles-cli有何用處?有時用指令操作更為快速,你可以用指令稿批次建立Bottles容器。透過Bottles-cli,達成自動化安裝exe是有可能的。

此外,有時候你會想要讓系統其他程式也能存取容器裡面的Wine,Bottles-cli能派上用場。有沒有可能,不要在系統全域安裝Wine,只把Wine關在Bottles容器裡面呢?答案是可以的。

1. Bottle-cli基本用法
#

詳細用法參考 官方文件

Bottles我是用Flatpak安裝的,因此執行指令前都要加上flatpak run,最後面才是加上操作與引數

flatpak run --command='bottles-cli' com.usebottles.bottles

輸出Help訊息:

flatpak run --command='bottles-cli' com.usebottles.bottles --help

info會印出目前環境的資訊:

flatpak run --command='bottles-cli' com.usebottles.bottles bottles-path

list列出目前已安裝的Bottles容器

flatpak run --command='bottles-cli' com.usebottles.bottles list bottles

programs列出容器內已安裝的exe程式,後面要加上-b選取容器名稱

flatpak run --command='bottles-cli' com.usebottles.bottles programs -b Line

add可以往容器直接新增exe

flatpak run --command='bottles-cli' com.usebottles.bottles add -b Line -n "exe捷徑名稱" -p "要安裝的exe路徑"

new可以建立新容器

flatpak run --command='bottles-cli' com.usebottles.bottles \
new --bottle-name WinRAR \
--environment gaming \
--arch win64 \
--runner soda-8.0.2

run執行容器裡面的特定exe

flatpak run --command='bottles-cli' com.usebottles.bottles run -b Line -e "exe路徑"
# 或者
flatpak run --command='bottles-cli' com.usebottles.bottles run -b Line -p "exe捷徑名稱"

reg編輯容器內部的登錄檔數值,例如下面的例子,新增seguiemj的登錄檔數值到Line容器的HKEY_LOCAL_MACHINE...下面。

flatpak run --command='bottles-cli' com.usebottles.bottles \
reg -b Line \
-k "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts" \
-v "seguiemj" \
-t REG_SZ \
-d seguiemj.ttf \
add

edit編輯容器設定檔,例如新增環境變數

flatpak run --command='bottles-cli' com.usebottles.bottles edit -b Line --env-var LANG=zh_TW.UTF-8

shell進入Wine的命令提示字元並執行指令

flatpak run --command='bottles-cli' com.usebottles.bottles shell -b Line -i winecfg

tools能夠啟動Wine的相關工具,例如winecfg

flatpak run --command='bottles-cli' com.usebottles.bottles tools -b Line winecfg

2. 讓系統存取容器的Wine指令
#

執行此操作前,請確認系統沒有安裝任何Wine的套件。

  1. 將Bottles裡名為「Line」容器的Wine做成執行檔
cat << "EOF" > ~/.local/bin/wine
#!/bin/sh
flatpak run --command='bottles-cli' com.usebottles.bottles run -b Line -e "$@"
EOF

chmod +x ~/.local/bin/wine
  1. 加入到系統PATH (~/.local/bin/)
echo "PATH=$PATH:~/.local/bin" >> ~/.bashrc

source ~/.bashrc
  1. 之後執行wine就會使用容器內的Wine來跑了,不過如果像Winetricks程式要求存取wineserver的話可能就會有問題
wine ~/Downloads/installer.exe

3. Winetricks搭配Bottles Wine使用
#

Bottles開發者目前說 不會支援Winetricks,但Dependencies收錄的套件又有缺,該怎麼辦呢?

所以我們要自己想辦法,用hacky的方式讓Winetricks運作。

因為Bottles只是用於建立Wine環境而已,你還是能用Winetricks來安裝套件。

  1. 系統安裝最新版Wine,注意版本必須跟Bottles內的一致
wine --version
  1. 接著就能用Winetricks裝套件了:
# 取得最新Winetricks指令稿
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo mv winetricks /usr/bin

# 將Wine的C槽目錄指向Bottles的容器路徑
export WINEPREFIX=~/.var/app/com.usebottles.bottles/data/bottles/bottles/Line

# 開始安裝依賴套件
winetricks vcredist cjkfonts

相關文章

如何在Linux執行Windows exe檔,用Bottles管理多版本的Wine容器
Linux系統 Linux好用軟體 Bottles for Linux Wine Steam Deck
嘗試在Linux跑MikuMikuDance和PMX Editor建模軟體
Linux系統 Linux好用軟體 Wine MikuMikuDance
[2023年8月更新] 如何在Linux安裝電腦版Line
Linux系統 Linux好用軟體 Wine Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。