ubuntu20.10 でWine6.4を動かす


# Wineとは
[wikipedia](https://ja.wikipedia.org/wiki/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


```shell:OSの確認コマンド
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](https://www.winehq.org/)

最近開発が活発なようなのでどうせなら最新の6.3(dev版)を入れようとおもいます。
本家Wikiの[こちら](https://wiki.winehq.org/Ubuntu)
のページにインストール方法が書いてありますので順番にやっていきます。

※Ubuntuのバージョンの違いやstable版を入れる場合は適宜入れ替えてください。

```shell:32bitアーキテクチャを有効にする
sudo dpkg --add-architecture i386 
```
```shell:リポジトリキーを有効にする
wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
rm winehq.key
```
```shell:リポジトリの追加
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ groovy main'
sudo apt update
```
```shell:wineのインストール(dev版)
sudo apt install --install-recommends winehq-devel
```

```shell:バージョン確認
wine --version
```
wine-6.3がインストールされました。
※実はこの記事を書いている途中にwine-6.4がリリースされたのですが、リポジトリには登録されていないようでしたので6.3でやってます。

※2021/3/16追記　リポジトリが更新されていました。

```shell:wineのupgrade
sodo apt upgrade 
wine --version
```
wine-6.4がインストールされました。


### Wineの動作確認
ここまでの段階だけでシンプルなプログラムなら動く状態になっています。ただし、文字化けします。
とりあえずWindows標準のメモ帳を起動させてみましょう。

```shell:メモ帳の起動
wine notepad
```

Wineの初回起動は以下のように、Monoインストーラーが立ち上がります。Monoは.Net Frameworkの代替をしてくれるパッケージらしいです。ここはもちろん[yes]です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/f31facf0-1679-f717-98f9-7490f708dad2.png)

間違えてキャンセルしてしまったらもう出てきてくれません。
その場合は以下コマンドで、wineの環境フォルダを削除してもう一度実行しましょう。

```shell:wine環境の削除
rm -r $HOME/.wine/
```

もしくは後述するwinetricksが既に入っている方は以下でも可能です

```shell:wine環境の削除
winetricks annihilate
```


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/87919fd9-c3f5-e2aa-f7d7-b9a0618691dd.png)
無事、メモ帳が立ち上がりました。
ただし、まだ日本語フォントが入っていないので画像のように日本語は文字化けします。


ちなみに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の内蔵版とネイティブ版についてはよく読んで下さい。

```shell:パッケージのインストール
sudo apt install winetricks
```
```shell:バージョン確認
winetricks --version
```
>20200412 - sha256sum: 7651c93e39fcb080483c38836513bf912273a87ea97d137f6b958ed3d9628c3d


少し日付が古いので気になってwinetricksのgitを見に行ったら更新版がありました。
https://github.com/Winetricks/winetricks

```shell:gitのREADME.mdに従いupdate
sudo winetricks --self-update
```
```shell:バージョン確認
winetricks --version
```
>20210206-next - sha256sum: a964a7cfccaf7b2ac5b4da908ea54a1eae1312f6f3eb15046a251677fdd97a54


updateされました。

それでは使っていきます。

##文字化けへの対処

```shell:フォントのインストール
winetricks corefonts
winetricks fakejapanese
winetricks cjkfonts
```
この辺りを入れておけば大体大丈夫かと思います。
allfontは実行中に落ちます

再度ノートパッドを起動してみましょう

```shell:メモ帳の起動
wine notepad
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/4752695d-95e1-63c2-086a-8236a5602eb1.png)

文字化けが解消されていることを確認。

## Windows10にする
デフォルトではwindows7として動くので意味あるか知らんけどとりあえずwindows10にしておきます

```shell:設定GUIの起動
winecfg
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/d46488cc-a9e3-467f-4918-fb4eb0e1c671.png)

アプリケーション -> WindowsバージョンからWindows10を選択

## GUIからの起動
sakuraエディターあたりで、GUIからの起動も試してみましょう。
[公式](https://sakura-editor.github.io/)からアーカイブ版とインストーラー版の両方をDLして展開します。

アーカイブ版のsakura.exeを右クリックして別のアプリケーションで開くを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/8f2aab1f-a9c9-15ce-2869-b1e2f1396179.png)

Wine Windowsプログラムローダーを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/83cb1644-f30e-67d5-6011-250dd7640554.png)

無事開けると思います。

同様にインストーラー版のsakura_install2-4-1-2849-x86.exeを実行（関連づけられているのでダブルクリックで実行できます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/8157461e-28fa-4693-6f7b-397cc58a5908.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/8c174e91-0b80-a6a2-8f51-c6aeec4cd4f8.png)

一部文字化けしている画面がありましたが無事インストールできました。

#### sakura起動方法の整理
せっかくなので私はサクラエディタは普段使いするのでランチャーのカスタマイズとファイルの関連付をします。
興味ない人はスキップしてください。

別記事にしました

https://qiita.com/yakitatata/items/f52786d9e3a7240cb769

# エラー対処
動かないソフトがある場合は、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の環境は残ります。これもキレイにしましょう

```wine環境の削除.bash
rm -r $HOME/.wine/
```

# wine-monoのバージョン（2021/4/6追記）

wineのupdate等すると、wine-monoのversionがあってない事が起きるかもしれません。
[wikiのMonoページ](https://wiki.winehq.org/Mono)にて対応するバージョンを入れましょう。
（デフォルトは6.0.0が入っている筈）

入れ方は(wikiに全部書いてありますが)
https://dl.winehq.org/wine/wine-mono/
からmsiをDLして、

```bash:インストーラー起動
wine msiexec /i Downloads/wine-mono-6.1.1-x86.msi
```
入ったかどうかの確認は以下がわかりやすいです。

```bash:アンインストーラー起動
winetricks uninstaller
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238561/5824220f-b2ed-c60b-fd65-90fe52816ea8.png)

入ったら一応　

```bash:
wineboot --update
```
しておいたほうがいいかも（winebootが何しているか知らないですすみません）


# 最後に
wineの設定はなかなかしんどいです。
この記事の内容ぐらいではなんてことないですが、
ゲームやメディア系のソフトを動かそうとすると、wineの環境をフォルダを消したり、何かのパッケージを入れて見たり、消してみたりということが多々あると思います。
筆者は今Cinebenchを動かそうとしてハマり倒しています。

wine環境フォルダはある程度のセーブポイントでバックアップしながら作業するのがおすすめです。消してもう一回フォント入れたりとか時間かかりますからね。

Dockerを使いこなせる方なら最初からDocker使ったほうがいいと思います。
VMで練習するのもありです。


またゲームならSteamPlayというものが有り、Steam上から簡単に実行できる環境が用意されていたりします。
ProtonというWineから派生したツールを使って動かすようようです（Wineも使われるんですけどね）
Wineの開発が最近活発なのはおそらくこういう背景が有るのかと思われます。

ProtonDBというにサイトにゲームごとに動作環境などが記載されていて、トラブルシューティングの情報も豊富です。

https://www.protondb.com/


またPlayOnLinuxというものがあります。
こちらは、wine環境を統合して管理してくれるツールで、
アプリケーションをインストールすると最適なwine versionと必要なDLLを一括で設定してくれてとても簡単にwineでWindowsアプリを動かすことができるようです。
躓いたらこちらを試してみるといいかもしれません。

以上です。
ここまで読んでくださってありがとうございました。