Distroboxを使って、Wine実行環境を固定する
Wineを使ってUbuntu上でAviUtl(2ではない)を使っている腐っても豆腐ですが、ひとつ困ったことがあります。
それはディストリビューションのバージョンによって、使えるWineのバージョンがある程度変動・限定されてしまうこと。
(PlayonLinuxとかBottles on Wineとか使う場合はこの限りではありませんが、どうもインストーラを介さない、直接ディレクトリをいじる必要のあるソフト(AviUtlなど)に対してはそぐわない印象で今ひとつ。)
例えば、Ubuntu 25.10を使う場合、選択肢になるWineのバージョンは下記のとおりです。
標準リポジトリのwineパッケージ … Wine 10.0
WineHQ提供のwineパッケージ … Wine 10.0 - 11.2
Ubuntuは半年ごとにバージョンが上がるので、そのたびにうまく動くかを確認する手間がありますし、複数バージョンにわたる互換性問題を踏んでしまうと簡単には回避できずしんどいです。
実際上記のWine10.0以降では、HiDPi対応の副作用として、AviUtlの拡張編集タイムライン上へのファイルのドラッグ&ドロップが正常に動作しません。
そこでDistroboxをつかいます。
第899回 Distroboxを使えば、他のディストリビューションの最新パッケージをUbuntuでも気軽に試せる | gihyo.jp より引用
「Distrobox」とは、コンテナを活用したさまざまなLinuxディストリビューションの実行環境を用意するツールです。端的に言うと、Linuxディストリビューションのルートファイルシステムの作成・管理に特化したDocker・Podmanのラッパーです。
上記では「最新パッケージを試す」ための手段としてDistroboxを利用していますが、逆に言えばこのDistroboxを使用することで、過去のバージョンのディストリビューション時点のWineパッケージを固定して持っておくことができます。
以下、AviUtlを例とした説明
「AviUtlが安定して動作するバージョンのWineパッケージが提供されている」かつ「ディストロとしてのサポートが長い」ディストロのコンテナを作成します。
現時点での現実的な選択肢の1つは、Ubuntu 24.04 LTSの標準リポジトリのパッケージ(Wine 9.0)でしょう。
ディストロとしては2029年まで標準サポートがあり、Ubuntu Pro(個人利用無償)の登録をすればさらに2034年までセキュリティパッチを受け取れます。
ということは、リポジトリも死なないことが期待できます。
上記の記事を全面的に参考にしつつ、覚書なのでクッソ雑に書いてしまいますが、操作としてはこんな感じ。
mkdir -p ~/.distrobox-xdg/noble/{config,cache,share}
Nvidiaグラボ環境以外の場合
distrobox create --name noble --image ubuntu:24.04
Nvidiaグラボ環境の場合
distrobox create --nvidia --name noble --image ubuntu:24.04
以降は同じ
distrobox enter noble
export XDG_CONFIG_HOME=$HOME/.distrobox-xdg/noble/config
export XDG_CACHE_HOME=$HOME/.distrobox-xdg/noble/cache
export XDG_DATA_HOME=$HOME/.distrobox-xdg/noble/share
sudo apt-get install wine
sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install wine32:i386
ここまででコンテナ内にwineが入る。
起動確認
wine (Wineの実行ファイルへのパス、Linux形式)
上記で無事起動できたら、起動させるためのスクリプトを書く。
code:aviutl.sh
#!/bin/sh
exec distrobox enter noble -- \
env \
XDG_CONFIG_HOME="$HOME/.distrobox-xdg/rawhide/config" \
XDG_CACHE_HOME="$HOME/.distrobox-xdg/rawhide/cache" \
XDG_DATA_HOME="$HOME/.distrobox-xdg/rawhide/share" \
wine /media/kazuto/HDCL-UT/MovieEdit/AVIUtl/aviutl.exe
これをMenuLibreかなんかでランチャー登録して、起動してやればOK。
※ホスト側(コンテナ外)のwineは消すなりWINEARCH分けるなりしておくこと バグるので