快轉到主要內容

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

· 民國113年甲辰年
· ·
分類   Linux系統 Linux好用軟體
標籤   Bottles for Linux Wine
目錄

透過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 info 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 Flatpak
嘗試在Linux跑MikuMikuDance和PMX Editor建模軟體
分類   Linux系統 Linux好用軟體
標籤   Wine MikuMikuDance
如何在Linux安裝電腦版Line,使用Bottles管理Wine容器
分類   Linux系統 Linux好用軟體
標籤   Wine Linux

留言板

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

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。