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インストール後の動作テスト
- Wineの設定画面(winecfg)を起動
Wineのインストールと動作確認に最も一般的な方法です。
winecfg
これでWineの設定ウィンドウが表示されれば、Wine本体は正常に動作しています。
- コマンドプロンプト(cmd.exe)を起動
wine cmd
WindowsのコマンドプロンプトがWine上で起動します。
- メモ帳(notepad.exe)を起動
wine notepad
メモ帳が起動すれば、基本的なGUIアプリも動作しています。
- 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などを検討してください。
-
代替案(自己ビルド)
必要なライブラリをSRPMから自分でi686向けにビルドする方法もありますが、非常に手間がかかり、依存関係も複雑です。 -
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 前の 2025年06月01日 02時54分18秒 に実施しました。
引数に一致する結果がありません: 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 前の 2025年06月01日 02時54分18秒 に実施しました。
引数に一致する結果がありません: 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