Slackware

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環境を快適に使うために、以下のパッケージのインストールを推奨します。

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です。

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」ボタンを押します。

wineprefixの選択
wineprefixの選択

次の画面で、「Install a font」を選択して、「OK」ボタンを押します。

フォントのインストール
「Install a font」を選択する

次の画面で、「cjkfonts」を選択して、「OK」ボタンを押します。

CJKフォントの選択
「cjkfonts」を選択する

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」からダウンロードしてインストールします。

WebView2ダウンロード
WebView2のダウンロードページで、x64を選択

ダウンロードしたインストーラーを、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
変換先OpenGLVulkan
パフォーマンス遅い速い
互換性高いゲームによる
GPU負荷高い低い

これらの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