Wine
ページ作成日
ページ更新日
公式サイト
WineHQ - Run Windows applications on Linux, BSD, Solaris and macOS
ついにWOW64(Windows 32-bit On Windows 64-bit)に対応したWine。
9.xでは、Unixライブラリを呼び出すすべてのモジュールは、32bitのPEコードから64bitのUnixライブラリを呼び出すためにWoW64スリーブを含んでいます。
新しいWoW64モードと呼ばれ、32ビットのアプリケーションが32ビットのUnixプロセス内で実行される古いWoW64モードとは対照的です。
これによって、32bit Linuxライブラリも必要なくなりました。
デフォルトのWindowsカーネルが、9.21からWindows10になりました。
関連パッケージ
Wine環境を快適に使うために、以下のパッケージのインストールを推奨します。
- winetricks - Wineの補完用ツール
- cabextract - Microsoft cabinet形式の解凍ツール(winetricksが使用)
- p7zip - 7z形式などの解凍ツール(winetricksの一部機能で使用)
Make it by yourself!
ソースファイルのダウンロードと展開
まずは、自分のホームディレクトリにソースを落とし解凍しましょう。
cd ~/Downloads wget https://dl.winehq.org/wine/source/11.0/wine-11.0-rc5.tar.xz tar xvf wine-11.0-rc5.tar.xz
configure
configureのスクリプトを走らせます。
cd wine-11.0-rc5 ./configure CFLAGS="-march=native -O2 -pipe -fstack-protector-strong" --enable-win64 --enable-archs=i386,x86_64 --prefix=/usr --libdir=/lib64 --infodir=/usr/share/info --mandir=/usr/share/man [画面出力を略]
デフォルトの状態だと、以下のように表示されます。
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported. configure: libcapi20 64-bit development files not found, ISDN won't be supported. configure: Finished. Do 'make' to compile Wine.
これらの警告は無視して問題ありません。
OSSサウンドシステムは現在ほとんど使用されておらず、PulseAudioやPipeWireが使われます。
ISDNも現代ではほぼ不要です。
コンパイル
make、make installします。
makeは1時間ぐらい掛かります。
時間を計測したい場合は、以下のように実行してみて下さい。
/usr/bin/time -v make
[画面出力を略]
Wine build complete.
Command being timed: "make"
User time (seconds): 3633.01
System time (seconds): 195.32
Percent of CPU this job got: 100%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:03:38
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1863472
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 24256
Minor (reclaiming a frame) page faults: 138798474
Voluntary context switches: 2800353
Involuntary context switches: 35015
Swaps: 0
File system inputs: 34424
File system outputs: 13102304
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
パッケージ作成用ディレクトリへのインストール
パッケージ作成用に/tmpにインストールします。
make install DESTDIR=/tmp/wine-11.0-rc5 [画面出力を略]
パッケージの作成
パッケージを作成します。
cd /tmp/wine-11.0-rc5 sudo makepkg --linkadd y --chown y ../wine-11.0-rc5-x86_64-1.txz [画面出力を略] Slackware package ../wine-11.0-rc5-x86_64-1.txz created.
パッケージのインストール
sudoでinstallpkgを使いパッケージをインストールすれば完了です。
sudo installpkg /tmp/wine-11.0-rc5-x86_64-1.txz
パッケージのアップグレード
既にインストールしていて、新しいバージョンに更新する場合は、sudoでupgradepkgを使います。
sudo upgradepkg /tmp/wine-11.0-rc5-x86_64-1.txz
パッケージのアンインストール
パッケージをアンインストールする場合は、sudoでremovepkgを使います。
sudo removepkg wine-11.0-rc5-x86_64-1
パッケージのインストール設定(GUI)
1. winetricksの起動とMonoのインストール
X Window上から、winetricksを起動します。
KDEなどのデスクトップ環境のメニューにwinetricksのアイコンがあるので、それをクリックして起動します。
すると、最初、Monoのインストールのポップアップが表示されるので、インストールします。
Wine Monoは、Wine環境でWindowsアプリが要求する「Microsoft.NET Framework 4.8以前」を置き換えるために用意された互換実装です。
mscoree.dll(CLR ローダ)が .NET アプリを検出すると、通常はMicrosoft公式の.NETインストーラを呼び出します。
しかし、Wineでは多くの場合インストールが失敗します。
そこで代わりに自動ダウンロードされるのが Wine Monoです。
2. CJKフォントのインストール
デフォルトの状態ですと、Wine上で起動したWindows用プログラムは、日本語が表示されません。
全て□で表示されてしまいます。
(ユーザの間では、「豆腐」と呼称されています)
そこで、winetricksを使い、CJKフォントをインストールします。
wineprefixとは、WineがLinuxなどのUNIX系OS上でWindowsアプリケーションを動作させる際に、仮想的なWindows環境(Cドライブやレジストリなど)を格納するためのディレクトリのことです。
デフォルトではホームディレクトリ下の「~/.wine」に作成されますが、環境変数「WINEPREFIX」を使うことで、任意の場所に複数のwineprefixを作成・管理できます。
- 独立したWindows環境
- wineprefixごとに、独立した仮想Cドライブやレジストリを持つため、アプリごと・用途ごとに環境を分けて管理できます。
- リスク回避や依存性管理
- アプリの動作実験や、依存DLL・設定の競合を避けるため、wineprefixを分けて使うのが一般的です。
- 複数バージョンやアーキテクチャ対応
- 32bit/64bitの違いや、特定バージョンのWineで動作させたい場合にも、wineprefixを使い分けることで柔軟に対応できます。
winetricksの画面で、「Select the default wineprefix」を選択して「OK」ボタンを押します。
次の画面で、「Install a font」を選択して、「OK」ボタンを押します。
次の画面で、「cjkfonts」を選択して、「OK」ボタンを押します。
Wow64環境について、まだ実験的実装だという警告が何回か出ますが、全て「OK」を押して進めます。
しばらく時間が掛かりますが、ダウンロードとインストールが終わると、再び、winetricksの画面が出てきます。
「キャンセル」のボタンを押して終了します。
3. WebView2のインストール
WebView2は、Microsoftが提供するアプリケーション内でWebコンテンツ(HTML、JavaScript、CSSなど)を表示するためのコンポーネント(コントロール)です。
主にWindowsアプリケーション(.NET、C++、Win32、WinForms、WPF、WinUIなど)に組み込まれ、アプリ内にWebブラウザの機能を追加できます。
Windowsアプリケーションでは使われることが多いので、これを「Microsoft Edge WebView2 | Microsoft Edge Developer」からダウンロードしてインストールします。
ダウンロードしたインストーラーを、wineを使ってインストールします。
wine ~/Downloads/MicrosoftEdgeWebView2RuntimeInstallerX64.exe /silent /install
4. DXVK(DirectX Vulkan)のインストール
DirectX 9/10/11のAPIコールをVulkanに変換するレイヤーです。
通常、Wine単体の場合は、以下のように処理が行われます。
Windowsゲーム → DirectX 11 → WineD3D(OpenGLに変換)→ OpenGL → GPU
これを以下のように変換することで、グラフィックス処理を効率化・高速化してくれます。
Windowsゲーム → DirectX 11 → DXVK → Vulkan → GPU
| 項目 | WineD3D (デフォルト) | DXVK |
|---|---|---|
| 変換先 | OpenGL | Vulkan |
| パフォーマンス | 遅い | 速い |
| 互換性 | 高い | ゲームによる |
| GPU負荷 | 高い | 低い |
- DirectX 9 → d3d9.dll
- DirectX 10 → d3d10core.dll
- DirectX 11 → d3d11.dll
これらのDLLをVulkan版に置き換えます。
Steamでゲームをするなら、DXVKはほぼ必須と考えて良いです。
Steam Client自体の動作には直接関係ありませんが、ゲームのプレイには大きく影響します。
パッケージのインストール設定(CLI)
コマンドラインで直接ダウンロードしてインストールすることもできます。
1. winetricksの起動とMonoのインストール
以下のコマンドでWINEPREFIXの初期化します。
wineboot --init
次にMonoの最新版をインストールします。
# Wine Mono をキャッシュに配置 curl -L -o /tmp/wine-mono-10.4.1-x86.msi "https://dl.winehq.org/wine/wine-mono/10.4.1/wine-mono-10.4.1-x86.msi" wine /tmp/wine-mono-10.4.1-x86.msi /silent /install rm /tmp/wine-mono-10.4.1-x86.msi
2. CJKフォントのインストール
winetricks -q cjkfonts
3. WebView2のインストール
curl -L -o /tmp/WebView2Installer.exe "https://go.microsoft.com/fwlink/p/?LinkId=2124703" wine /tmp/WebView2Installer.exe /silent /install rm /tmp/WebView2Installer.exe
4.DXVK(DirectX Vulkan)のインストール
winetricks dxvk