KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

WineHQインストール(3):手順まとめ

登録日 :2025/05/28 20:13
カテゴリ :Linux

RockyLinux8によるWine環境(64bit、WoW64含む)構築手順およびコマンドをまとめる
結論として、RockyLinuxでは32bit開発環境用のパッケージが不足しており、32bit環境を完全に構築することができないことが分かった。(一応、32bitでのビルドおよびインストールは可能だが、GUI関連のアプリは起動しない模様)
WoW64環境や、32bitのみのインストール、dnfによるコンパイル済みアプリケーションのインストール、いずれもトライしたが、32bitは無理のようである。

ライブラリの入手(オンライン環境で実施)

●32bit用

sudo dnf install --downloadonly --downloaddir=./01_gcc gcc-c++
sudo dnf install --downloadonly --downloaddir=./02_wine_i686 glibc-devel.i686 libgcc.i686 libstdc++.i686
sudo dnf install --downloadonly --downloaddir=./03_flex_rpm flex
sudo dnf install --downloadonly --downloaddir=./04_bison_rpm bison
sudo dnf install --downloadonly --downloaddir=./05x11_i686 \
  libX11-devel.i686 libXext-devel.i686 libXcursor-devel.i686 \
  libXi-devel.i686 libXrandr-devel.i686 libXrender-devel.i686 \
  libXfixes-devel.i686 libxcb-devel.i686 libXinerama-devel.i686 \
  libXcomposite-devel.i686 libXxf86vm-devel.i686

sudo dnf install --downloadonly --downloaddir=./06_freetype_i686 freetype-devel.i686
sudo dnf install --downloadonly --downloaddir=./07_wine_i686_deps zlib-devel.i686 bzip2-devel.i686 libpng-devel.i686
sudo dnf install --downloadonly --downloaddir=./07_2_bzip2-devel bzip2-devel

sudo dnf install --downloadonly --downloaddir=./08_freetype-devel freetype-devel

sudo dnf install --downloadonly --downloaddir=./11_wine_additinal glibc-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 freetype-devel.i686 fontconfig-devel.i686 zlib-devel.i686 libpng-devel.i686 libjpeg-turbo-devel.i686 libXext-devel.i686 libXrender-devel.i686

dnf install --downloadonly --downloaddir=./12_wine_additinal SDL2-devel.i686 libdbus-devel.i686 libgnutls-devel.i686 libasound-devel.i686 libudev-devel.i686 cups-devel.i686 libkrb5-devel.i686

07_wine_i686_deps をインストールする前に、07_2_bzip2-develを先にインストールする

●64bit用

sudo dnf install epel-release
sudo dnf makecache

sudo dnf config-manager --set-enabled powertools
sudo dnf makecache

X11
sudo dnf install --downloadonly --downloaddir=./01_x11 \
libXcursor-devel \
libXi-devel \
libXxf86vm-devel \
libXrandr-devel \
libXfixes-devel \
libXinerama-devel \
libXcomposite-devel \
libxshmfence-devel \
libXrender-devel

・グラフィック
sudo dnf install --downloadonly --downloaddir=./02_graphic \
mesa-libGL-devel \
mesa-libOSMesa-devel \
vulkan-devel \
vulkan-headers

・サウンド
サウンド
sudo dnf install --downloadonly --downloaddir=./03_sound \
alsa-lib-devel \
pulseaudio-libs-devel

・マルチメディア
マルチメディア
sudo dnf install --downloadonly --downloaddir=./04_multimedia \
gstreamer1-devel \
gstreamer1-plugins-base-devel

ffmpeg-develがどうしても見つからない場合Wineのビルド時にffmpeg関連の機能(例:一部のメディア再生やエンコード)が無効になりますが、Wine自体の基本動作には大きな影響はありません


・ハードウェアデバイス
sudo dnf install --downloadonly --downloaddir=./05_devices \
libusb1-devel \
libv4l-devel \
libgphoto2-devel \
libudev-devel \
libpcap-devel \
cups-devel

・ネットワーク/セキュリティ
sudo dnf install --downloadonly --downloaddir=./06_network \
gnutls-devel \
sane-backends-devel \
pcsc-lite-devel

・フォント
sudo dnf install --downloadonly --downloaddir=./07_fonts \
fontconfig-devel

・その他
sudo dnf install --downloadonly --downloaddir=./08_other \
SDL2-devel \
dbus-devel

追加パッケージ
PEクロスコンパイラ
sudo dnf install --downloadonly --downloaddir=./09_add_pe mingw64-gcc

Waylandサポート
sudo dnf install --downloadonly --downloaddir=./10_wayland wayland-devel


OpenCLサポート
sudo dnf install --downloadonly --downloaddir=./11_opencl ocl-icd-devel

ここまでで、configureは可能である。
makeをするためには、追加で以下のライブラリインストール

sudo dnf install --downloadonly --downloaddir=./01_wine_libgcc glibc-devel.i686 libgcc.i686 libstdc++-devel.i686

ライブラリインストール

オンライン環境で入力したライブラリをオフライン環境に移動してインストール
今回は、以下のようなフォルダ構成で保存

[root@winebuild wine_builder]# pwd
/root/wine/compile/wine_builder
[root@winebuild wine_builder]# ls
32bit  64bit  backup  devtools_download  make_install
[root@winebuild wine_builder]# ls 32bit/
01_gcc        03_flex_rpm   05x11_i686        07_1_bzip2-libs   07_wine_i686_deps  09_optional_ng    11_wine_additinal
02_wine_i686  04_bison_rpm  06_freetype_i686  07_2_bzip2-devel  08_freetype-devel  10_x11_opengl_NG  12_wine_additinal
[root@winebuild wine_builder]# ls 64bit/
01_x11  02_graphic  03_sound  04_multimedia  05_devices  06_network  07_fonts  08_other  09_add_pe  10_wayland  11_opencl  backup  complete.log
[root@winebuild wine_builder]#

インストールは、各フォルダに移動して「sudo dnf install ./*.rpm」を実行する
例)

cd 01_gcc
sudo dnf install ./*.rpm

パッケージの入手

WineHQのサイトよりソースコードを入手する
最新版)https://dl.winehq.org/wine/source/10.x/

wget https://dl.winehq.org/wine/source/10.x/wine-10.7.tar.xz
tar xvf wine-10.7.tar.xz

make, make install

念のため、SELinuxは無効化しておく

[root@rpmbuild wine_builddep]# getenforce
Enforcing
[root@rpmbuild wine_builddep]# setenforce 0
[root@rpmbuild wine_builddep]# getenforce
Permissive

WoW64でビルドする場合は、64bitでビルドしてから、32bitでのビルドを行う

# 64bitビルド
make clean

mkdir wine64
cd wine64
#(../../wine-source/configure --prefix=/root/wine --enable-win64)
../wine_source/wine-10.7/configure --prefix=/root/wine/wine64 --enable-win64 2>&1 | tee make_wine64.log
#(make)
# make V=1 2>&1 | tee make64_20250530.log
make -j$(nproc) 2>&1 | tee make64_20250531.log
sudo make install 2>&1 | tee make_install_20250531_1.log
# 32bitビルド
cd ..
mkdir wine32
cd wine32
#(../../wine-source/configure --prefix=/root/wine/wine32 --with-wine64=../wine64)
../wine_source/wine-10.7/configure --prefix=/root/wine/wine32 --with-wine64=../wine64 2>&1 | tee make_wine32.log
PKG_CONFIG_PATH=/usr/lib/pkgconfig ../wine_source/wine-10.7/configure --prefix=/root/wine/wine32 --with-wine64=../wine64 2>&1 | tee make_configure_1.log

# make
make -j$(nproc) 2>&1 | tee make32_20250531.log
sudo make install 2>&1 | tee make_install_20250531_1.log

初回のmakeにはかなり時間がかかる
make後のインストール状況

[root@winebuild wine]# ls
wine32  wine64
[root@winebuild wine]# ls wine64/
bin  include  lib  share
[root@winebuild wine]# ls wine32/
lib
[root@winebuild wine]#

32bitのインストール後の状況として、binなどが作成されないが、これはWoW64環境としてインストールしたため問題ない。WoW64環境では、32bitも64bitの実行コマンドで自動的に判断してくれるため、wine実行コマンドやプレフィックスを共通して利用することが可能である。

●make時のメモ
64ビットでは 一部 not foundとなったが以下は問題ない

config.status: executing Makefile commands

configure: XShm 64-bit development files not found, X Shared Memory won't be supported.
configure: XShape 64-bit development files not found, XShape won't be supported.
configure: Wayland 64-bit development files not found, the Wayland driver won't be supported.
configure: pcap 64-bit development files not found, wpcap won't be supported.
configure: FFmpeg 64-bit development files not found.
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: libnetapi not found, Samba NetAPI won't be supported.

configure: Finished.  Do 'make' to compile Wine.

32bitの場合も複数not foundとなり、こちらはグラフィック系が含まれており問題あり。configureは可能でmake, make installは可能でも、一部32bitのアプリケーションは起動できないようである。

config.status: executing Makefile commands

configure: Wayland 32-bit development files not found, the Wayland driver won't be supported.
configure: OpenCL 32-bit development files not found, OpenCL won't be supported.
configure: pcap 32-bit development files not found, wpcap won't be supported.
configure: libpcsclite not found, smart cards won't be supported.
configure: libdbus 32-bit development files not found, no dynamic device support.
configure: libgnutls 32-bit development files too old, bcrypt encryption won't be supported.
configure: libsane 32-bit development files not found, scanners won't be supported.
configure: libusb-1.0 32-bit development files not found (or too old), USB devices won't be supported.
configure: libv4l2 32-bit development files not found.
configure: libgphoto2 32-bit development files not found, digital cameras won't be supported.
configure: libgphoto2_port 32-bit development files not found, digital cameras won't be auto-detected.
configure: libpulse 32-bit development files not found or too old, Pulse won't be supported.
configure: FFmpeg 32-bit development files not found.
configure: gstreamer-1.0 base plugins 32-bit development files not found, GStreamer won't be supported.
configure: libasound 32-bit development files not found, Alsa won't be supported.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: libudev 32-bit development files not found, plug and play won't be supported.
configure: libSDL2 32-bit development files not found, SDL2 won't be supported.
configure: libcapi20 32-bit development files not found, ISDN won't be supported.
configure: libcups 32-bit development files not found, CUPS won't be supported.
configure: libkrb5 32-bit development files not found (or too old), Kerberos won't be supported.
configure: libnetapi not found, Samba NetAPI won't be supported.
configure: libvulkan and libMoltenVK 32-bit development files not found, Vulkan won't be supported.

configure: WARNING: Suitable PE cross-compiler not found, you should install mingw-w64 or llvm-mingw.

configure: WARNING: libgnutls 32-bit development files not found, no schannel support.

configure: WARNING: No sound system was found. Windows applications will be silent.

configure: Finished.  Do 'make' to compile Wine.

Wineの実行テスト

Wineインストール後の動作テスト

  1. Wineの設定画面(winecfg)を起動
    Wineのインストールと動作確認に最も一般的な方法です。
winecfg

これでWineの設定ウィンドウが表示されれば、Wine本体は正常に動作しています。

  1. コマンドプロンプト(cmd.exe)を起動
wine cmd

WindowsのコマンドプロンプトがWine上で起動します。

  1. メモ帳(notepad.exe)を起動
wine notepad

メモ帳が起動すれば、基本的なGUIアプリも動作しています。

  1. DirectXのテスト(dxdiag)
wine dxdiag

WoW64サポート

64ビットWineをデフォルトにすると、32ビットアプリも同じプレフィックスで動作します。

運用時の使い分け
64ビットアプリ実行

/root/wine/wine64/bin/wine app64.exe
WINEPREFIX=~/wineprefix64 /home/wine/wine64/bin/wine my64bit_app.exe

32ビットアプリ実行

/root/wine/wine64/bin/wine app32.exe
WINEPREFIX=~/wineprefix64 /home/wine/wine64/bin/wine my32bit_app.exe

プレフィックス管理

WINEPREFIX=~/wineprefix64 /root/wine/wine64/bin/winecfg

※WoW64構成での32ビットアプリの使い方
1. 通常のwineコマンドで自動的に32bit/64bitを切り替え
WoW64構成では、wineコマンド(またはwine64コマンド)を使うと、実行しようとするWindowsアプリケーションが32bitか64bitかを自動判別して、適切なランタイムで起動します。
つまり、32bitアプリも64bitアプリも同じコマンドで実行できます。

WINEPREFIX=~/wineprefix64 /home/wine/wine64/bin/wine my32bit_app.exe

この場合、my32bit_app.exeが32bitアプリなら、WoW64の32bitランタイムで自動的に動作します。


ユーザでWineを使ってみる

ユーザでログインして以下を実行(ログインしなおすことがポイント。rootでsu - user ではダメ)
プレフィックスを作成して、winecfgが起動することを確認する

[user01@winebuild ~]$ WINEARCH=win64 WINEPREFIX=~/wineprefix64 /home/wine/wine64/bin/winecfg

※WoW64環境で解説した通り、本ビルドでは32bitのプレフィックスは不要

以下を実行して起動できるかをテストする
WindowsのコマンドプロンプトがWine上で起動します。

/home/wine/wine64/bin/wine cmd

メモ帳の起動

/home/wine/wine64/bin/wine notepad

Appendix(32bitビルド)

32bitでのインストールができないため、さらにライブラリを調査した。
RockyLinuxでは、32bit開発パッケージが公式リポジトリでは提供されていない模様
特に

libdbus-devel.i686
libgnutls-devel.i686
libasound-devel.i686
libudev-devel.i686
libkrb5-devel.i686
cups-devel.i686

などは、RHEL 8系やCentOS 8系ではi686パッケージが存在しないか、非常に限定的です。

原因
Red Hat Enterprise Linux(RHEL)やCentOS 7/8では、32bitサポートが限定的で、基本的なランタイムや一部のライブラリ(glibc, libX11, mesaなど)はi686パッケージがありますが、多くの開発パッケージや追加ライブラリはi686パッケージが用意されていません。
EPELリポジトリも、32bit(i686)パッケージの提供は非常に限定的です。

対応策
1. FedoraやopenSUSEなど、32bit開発パッケージが充実しているディストリビューションを利用する
Fedoraは32bit開発パッケージが豊富に提供されています。
どうしてもWineの32bit完全対応が必要な場合は、FedoraやArch Linux、openSUSEなどを検討してください。

  1. 代替案(自己ビルド)
    必要なライブラリをSRPMから自分でi686向けにビルドする方法もありますが、非常に手間がかかり、依存関係も複雑です。

  2. WineHQ公式パッケージの利用
    WineHQ公式が提供するパッケージは、独自に32bit依存を解決している場合があります。
    [WineHQ公式ダウンロードページ]から自分のディストリビューションに合ったパッケージを確認してください。

まとめ
RHEL系/CentOS系では、多くの32bit開発パッケージがそもそも提供されていません。
公式リポジトリやEPELを有効にしても、上記パッケージは見つからないのが正常です。
本格的な32bitサポートが必要な場合は、Fedoraなど32bitパッケージが充実したディストリビューションを使うのが現実的です。

参考

dnf install --downloadonly --downloaddir=./12_wine_additinal SDL2-devel.i686 libdbus-devel.i686 libgnutls-devel.i686 libasound-devel.i686 libudev-devel.i686 cups-devel.i686 libkrb5-devel.i686
メタデータの期限切れの最終確認: 2:03:26 前の 20250601 025418 に実施しました。
引数に一致する結果がありません: libdbus-devel.i686
引数に一致する結果がありません: libgnutls-devel.i686
引数に一致する結果がありません: libasound-devel.i686
引数に一致する結果がありません: libudev-devel.i686
引数に一致する結果がありません: libkrb5-devel.i686
エラー: 一致するものが見つかりません: libdbus-devel.i686 libgnutls-devel.i686 libasound-devel.i686 libudev-devel.i686 libkrb5-devel.i686

GDESというアプリケーションのインストールを試したところ、以下のようなエラーとなった。
いろいろと調べたが、上記32bit関連のインストールが不完全であることに起因するものと推測される

[user01@winebuild ~]$ WINEPREFIX=~/wineprefix64 /home/wine/wine64/bin/wine GDES2_Setup.exe
0138:err:environ:init_peb starting L"Z:\\home\\user01\\GDES2_Setup.exe" in experimental wow64 mode
wine: failed to load L"\\??\\C:\\windows\\syswow64\\ntdll.dll" error c0000135
アプリケーションを開始できません。もしくは、指定したファイルにアプリケーションが関連付けられていません。
ShellExecuteEx が失敗: 0024:err:start:fatal_error FormatMessage failed
[user01@winebuild ~]$

このエラー:

wine: failed to load L"\\??\\C:\\windows\\syswow64\\ntdll.dll" error c0000135
アプリケーションを開始できません。もしくは、指定したファイルにアプリケーションが関連付けられていません。
ShellExecuteEx が失敗: 0024:err:start:fatal_error FormatMessage failed

は、WineのWoW64(64bit+32bit両対応)構成で、32bitアプリ実行に必要な「syswow64/ntdll.dll」などの32bitシステムDLLがプレフィックス内に正しく生成・配置されていないために発生しています

主な原因
- Wineの新しいWoW64モードでは、32bitサポート用のWineランタイムやDLLが不足しているとこのエラーが出ます。

  • 具体的には、C:\windows\syswow64\ntdll.dll などの32bit DLLがプレフィックス(~/wineprefix64など)内に存在しない、または生成に失敗しています。

  • これは、32bit Wineランタイム(wine32/wine-wow64パッケージや自ビルドの32bit部分)が正しくインストール・認識されていない場合や、依存パッケージが不足している場合に多く発生します

その他メモ

開発パッケージの有無の調査

rpm -qa | grep -E 'glibc|libX11|mesa' | grep -E '\.i686|\.i386'
[root@winebuild wine]# rpm -qa | grep -E 'glibc|libX11|mesa' | grep -E '\.i686|\.i386'
libX11-xcb-1.6.8-9.el8_10.i686
mesa-libEGL-devel-23.1.4-4.el8_10.i686
glibc-gconv-extra-2.28-251.el8_10.16.i686
mesa-libEGL-23.1.4-4.el8_10.i686
mesa-libgbm-23.1.4-4.el8_10.i686
glibc-devel-2.28-251.el8_10.16.i686
mesa-filesystem-23.1.4-4.el8_10.i686
mesa-libglapi-23.1.4-4.el8_10.i686
mesa-libOSMesa-23.1.4-4.el8_10.i686
mesa-libGL-devel-23.1.4-4.el8_10.i686
glibc-2.28-251.el8_10.16.i686
libX11-1.6.8-9.el8_10.i686
libX11-devel-1.6.8-9.el8_10.i686
mesa-libOSMesa-devel-23.1.4-4.el8_10.i686
mesa-libxatracker-23.1.4-4.el8_10.i686
glibc-headers-2.28-251.el8_10.16.i686
mesa-libGL-23.1.4-4.el8_10.i686
mesa-dri-drivers-23.1.4-4.el8_10.i686
[root@winebuild wine]#

上記のように主要パッケージはインストールできているものの、これでも不十分なようだった。

dnf list installed SDL2-devel.i686 libdbus-devel.i686 libgnutls-devel.i686 libasound-devel.i686 libudev-devel.i686 cups-devel.i686 libkrb5-devel.i686
[root@winebuild wine32]# rpm -q SDL2-devel.i686 libdbus-devel.i686 libgnutls-devel.i686 libasound-devel.i686 libudev-devel.i686 cups-devel.i686 libkrb5-devel.i686
パッケージ SDL2-devel.i686 はインストールされていません
パッケージ libdbus-devel.i686 はインストールされていません
パッケージ libgnutls-devel.i686 はインストールされていません
パッケージ libasound-devel.i686 はインストールされていません
パッケージ libudev-devel.i686 はインストールされていません
パッケージ cups-devel.i686 はインストールされていません
パッケージ libkrb5-devel.i686 はインストールされていません
[root@winebuild wine32]#

上記のインストールを試みたものの、dnfではパッケージが入手できないようだった

以下のように一致するものが見つかりません
[root@winebuild 32bit]# dnf install --downloadonly --downloaddir=./12_wine_additinal SDL2-devel.i686 libdbus-devel.i686 libgnutls-devel.i686 libasound-devel.i686 libudev-devel.i686 cups-devel.i686 libkrb5-devel.i686
メタデータの期限切れの最終確認: 2:03:26 前の 20250601 025418 に実施しました。
引数に一致する結果がありません: libdbus-devel.i686
引数に一致する結果がありません: libgnutls-devel.i686
引数に一致する結果がありません: libasound-devel.i686
引数に一致する結果がありません: libudev-devel.i686
引数に一致する結果がありません: libkrb5-devel.i686
エラー: 一致するものが見つかりません: libdbus-devel.i686 libgnutls-devel.i686 libasound-devel.i686 libudev-devel.i686 libkrb5-devel.i686
[root@winebuild 32bit]#

dnfでコンパイル済みパッケージのインストールも検討したが、64bit版のみの提供であり、32bit版は入手できず、GDESインストーラも起動できなかった。
しかも、dnfでは、Wineのversion6.xであり、かなり古いバージョンのインストールとなることもわかった。

# wine --version
wine-6.0.2

念のため、dnfでインストールしたwineでも試したが、GDESインストーラを起動することはできないことが確認できた。

# wine GDES2_Setup.exe
00e8 err: process: exec_process L"Z:\\root\\GDES2_Setup.exe" not supported on this system