Wineとは
Wine (ワイン)は、オープンソースの Windows API 実装を通じて、主としてx86アーキテクチャ上のUnix系オペレーティングシステム (POSIX準拠OS) においてWindows用アプリケーションをネイティブ動作させることを目標とするプログラム群である。
簡単に言えばWineは、Linux上でWindowsを動作させているのではなく、LinuxにWindowsと同じ挙動をさせているのである
エミュレーターでもVMでもなくLinux上で直接動かすよ!ってこと。
メインPCをLinuxにしている人ならかなり嬉しい機能ですね。
背景
私ごとですが、最近ハイエンド自作PCを組みまして、
ついでにOSを最近流行りのUbuntuにしようと突然思い立ったわけです。
で、せっかくハイエンドPC組んだのでベンチマークでも走らせようとしたら、有名なCinebenchはLinux対応してないじゃないですか・・・
LED制御などのドライバや各種ソフトウェアも尽くWindows向け。
そしたらWineを見つけて、Ubuntu+Wineの構成でゲームも動画編集もプログラミングも、なんなら機械学習もマイニングも、全部できるパソコンにしちゃおうと、そう思ったわけです。
Wineの構築
環境の確認
Ubuntu 20.10 最小インストール
Karnel : 5.8.0-44-generic
CPU:Ryzen 5950x
GPU:Geforce RTX3060
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.10
Release: 20.10
Codename: groovy
Wineのインストール
Ubuntuの標準リポジトリでDLできますがWineはWineHQになり、Ubuntuの公式サポートからはずれたみたいです。
Ubuntu標準でインストールできるのは5.0(dev版で5.5)です。
コマンド 'wine' が見つかりません。次の方法でインストールできます:
sudo apt install wine # version 5.0-3ubuntu1, or
sudo apt install wine-development # version 5.5-5ubuntu1
WineHQの本家ではWine6にメジャーバージョンアップされていますのでそちらを使います。
本家Wiki
最近開発が活発なようなのでどうせなら最新の6.3(dev版)を入れようとおもいます。
本家Wikiのこちら
のページにインストール方法が書いてありますので順番にやっていきます。
※Ubuntuのバージョンの違いやstable版を入れる場合は適宜入れ替えてください。
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
rm winehq.key
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ groovy main'
sudo apt update
sudo apt install --install-recommends winehq-devel
wine --version
wine-6.3がインストールされました。
※実はこの記事を書いている途中にwine-6.4がリリースされたのですが、リポジトリには登録されていないようでしたので6.3でやってます。
※2021/3/16追記 リポジトリが更新されていました。
sodo apt upgrade
wine --version
wine-6.4がインストールされました。
Wineの動作確認
ここまでの段階だけでシンプルなプログラムなら動く状態になっています。ただし、文字化けします。
とりあえずWindows標準のメモ帳を起動させてみましょう。
wine notepad
Wineの初回起動は以下のように、Monoインストーラーが立ち上がります。Monoは.Net Frameworkの代替をしてくれるパッケージらしいです。ここはもちろん[yes]です
間違えてキャンセルしてしまったらもう出てきてくれません。
その場合は以下コマンドで、wineの環境フォルダを削除してもう一度実行しましょう。
rm -r $HOME/.wine/
もしくは後述するwinetricksが既に入っている方は以下でも可能です
winetricks annihilate
無事、メモ帳が立ち上がりました。
ただし、まだ日本語フォントが入っていないので画像のように日本語は文字化けします。
ちなみにCUIからwinemineでwineのマインスイーパーが起動します。
winetricksのインストール
winetricksはdllやfontのダウンロードやwindowsのレジストリ編集など、wineに関する設定があれこれできる(してくれる)便利なtoolです。
GUI操作もCUI操作もできます。
winetricksについての解説は以下のサイトがわかりやすいです
https://kakurasan.blogspot.com/2015/07/winetricks-features-usage.html
https://kakurasan.blogspot.com/2016/07/wine-features-installation-debian-ubuntu.html
特に、dllの内蔵版とネイティブ版についてはよく読んで下さい。
sudo apt install winetricks
winetricks --version
20200412 - sha256sum: 7651c93e39fcb080483c38836513bf912273a87ea97d137f6b958ed3d9628c3d
少し日付が古いので気になってwinetricksのgitを見に行ったら更新版がありました。
https://github.com/Winetricks/winetricks
sudo winetricks --self-update
winetricks --version
20210206-next - sha256sum: a964a7cfccaf7b2ac5b4da908ea54a1eae1312f6f3eb15046a251677fdd97a54
updateされました。
それでは使っていきます。
##文字化けへの対処
winetricks corefonts
winetricks fakejapanese
winetricks cjkfonts
この辺りを入れておけば大体大丈夫かと思います。
allfontは実行中に落ちます
再度ノートパッドを起動してみましょう
wine notepad
文字化けが解消されていることを確認。
Windows10にする
デフォルトではwindows7として動くので意味あるか知らんけどとりあえずwindows10にしておきます
winecfg
アプリケーション -> WindowsバージョンからWindows10を選択
GUIからの起動
sakuraエディターあたりで、GUIからの起動も試してみましょう。
公式からアーカイブ版とインストーラー版の両方をDLして展開します。
アーカイブ版のsakura.exeを右クリックして別のアプリケーションで開くを選択
無事開けると思います。
同様にインストーラー版のsakura_install2-4-1-2849-x86.exeを実行(関連づけられているのでダブルクリックで実行できます)
一部文字化けしている画面がありましたが無事インストールできました。
sakura起動方法の整理
せっかくなので私はサクラエディタは普段使いするのでランチャーのカスタマイズとファイルの関連付をします。
興味ない人はスキップしてください。
別記事にしました
エラー対処
動かないソフトがある場合は、wineHQ公式のAppDBで解決方法や動作確認ができているVersionの情報が見れる。例えばCinebench
https://appdb.winehq.org/objectManager.php?sClass=application&iId=11289
各バージョンにはテストした環境や発見したバグなどが記載されているのでうまくかいくぐりましょう。
やり直したいとき
sudo apt list --installed | grep wine
上記で表示されたパッケージを削除しましょう
バージョンによってパッケージ名が変わっているので下記は例です。
sudo apt -y purge wine wine-devel winehq-stable winetricks
sudo apt -y purge playonlinux
sudo apt -y autopurge
wineの環境は残ります。これもキレイにしましょう
rm -r $HOME/.wine/
wine-monoのバージョン(2021/4/6追記)
wineのupdate等すると、wine-monoのversionがあってない事が起きるかもしれません。
wikiのMonoページにて対応するバージョンを入れましょう。
(デフォルトは6.0.0が入っている筈)
入れ方は(wikiに全部書いてありますが)
https://dl.winehq.org/wine/wine-mono/
からmsiをDLして、
wine msiexec /i Downloads/wine-mono-6.1.1-x86.msi
入ったかどうかの確認は以下がわかりやすいです。
winetricks uninstaller
入ったら一応
wineboot --update
しておいたほうがいいかも(winebootが何しているか知らないですすみません)
最後に
wineの設定はなかなかしんどいです。
この記事の内容ぐらいではなんてことないですが、
ゲームやメディア系のソフトを動かそうとすると、wineの環境をフォルダを消したり、何かのパッケージを入れて見たり、消してみたりということが多々あると思います。
筆者は今Cinebenchを動かそうとしてハマり倒しています。
wine環境フォルダはある程度のセーブポイントでバックアップしながら作業するのがおすすめです。消してもう一回フォント入れたりとか時間かかりますからね。
Dockerを使いこなせる方なら最初からDocker使ったほうがいいと思います。
VMで練習するのもありです。
またゲームならSteamPlayというものが有り、Steam上から簡単に実行できる環境が用意されていたりします。
ProtonというWineから派生したツールを使って動かすようようです(Wineも使われるんですけどね)
Wineの開発が最近活発なのはおそらくこういう背景が有るのかと思われます。
ProtonDBというにサイトにゲームごとに動作環境などが記載されていて、トラブルシューティングの情報も豊富です。
またPlayOnLinuxというものがあります。
こちらは、wine環境を統合して管理してくれるツールで、
アプリケーションをインストールすると最適なwine versionと必要なDLLを一括で設定してくれてとても簡単にwineでWindowsアプリを動かすことができるようです。
躓いたらこちらを試してみるといいかもしれません。
以上です。
ここまで読んでくださってありがとうございました。