WindowsアプリをLinux上で動かす仕組み「Wine」を使ってみたのでメモします。
はじめに
WineのWindowsのヘッダファイルには、マイクロソフトが公開していない情報が書いてあったりするらしいです(多分、色々なプログラムを解析して分かった非公式情報が書いてある)。
ということで、Wineに詳しくなればWindowsにも詳しくなれるんじゃないかと思って「Wine」を使ってみたのでメモします。
検証環境
- OS: Ubuntu 20.04 LTS
- Wine: 6.0.0~focal-1
Wineのインストールと設定
インストール
リポジトリを追加してインストールします。
公式のインストール手順はこちら → https://wiki.winehq.org/Ubuntu
・32bitアーキテクチャを有効にする sudo dpkg --add-architecture i386 ・リポジトリのキーを追加する wget -nc https://dl.winehq.org/wine-builds/winehq.key sudo apt-key add winehq.key ・リポジトリの追加 # Ubuntu 20.10の場合 sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ groovy main' # Ubuntu 20.04の場合 sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' # Ubuntu 20.04の場合 sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' ・パッケージのインストール sudo apt update sudo apt install --install-recommends winehq-stable
パッケージのインストール中に「libc6-i386」に関するエラーが出ましたが、このまま進めてみます。
sudo apt install --install-recommends winehq-stable ... E: 'libc6:i386' を設定できませんでした。 E: 'libgcc-s1:i386' の即時設定は動作しません。詳細については man 5 apt.conf の APT::Immediate-Configure の項を参照してください。(2)
初期設定
GUIで下記コマンドを実行する。
winecfg
「Wine Mono」「Wine Gecko」のインストールを即されるのでインストールする。
インストールが完了すると設定画面が開くのでWindowsバージョンを「Windows 10」に設定する。
デフォルトだと「/home/<ユーザー名>/.wine」にCドライブができます。
ls -l ~/.wine 合計 2840 drwxrwxr-x 2 test test 4096 2月 13 17:06 dosdevices drwxrwxr-x 7 test test 4096 2月 13 17:06 drive_c -rw-rw-r-- 1 test test 2835844 2月 13 17:07 system.reg -rw-rw-r-- 1 test test 56978 2月 13 17:07 user.reg -rw-rw-r-- 1 test test 3228 2月 13 17:05 userdef.reg
Winetricksのインストールと設定
Winetricksを使うとWineの初期状態では不足しているDLLやフォントを簡単にインストールできるらしいです。
Winetricksの説明はこちら → https://wiki.winehq.org/Winetricks
Winetricksのダウンロード
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks chmod +x winetricks
DLL一覧の確認とインストール
./winetricks dlls list ./winetricks [dll名]
フォント一覧の確認とインストール
./winetricks fonts list ./winetricks [フォント名]
Tips
動作報告ページ
公式サイトにAppDBというページがあり、アプリの動作報告が投稿されています。
→ https://appdb.winehq.org/
メニューの「Browse Apps」をクリックすると検索ページに飛びます。
インストール場所、アーキテクチャを指定する環境変数
デフォルトではCドライブは「~/.wine/drive_c」、アーキテクチャは「64bit」になります。
変更したい場合は環境変数で指定します。
環境変数 | 用途 |
WINEPREFIX | インストール場所の指定 |
WINEARCH | アーキテクチャ |
公式ページのFAQに説明があります。 → https://wiki.winehq.org/FAQ#Wineprefixes
「~/.7-zip」配下に32bit環境のWineを準備して32bit版7-zipをインストールする場合
WINEPREFIX=~/.7-zip WINEARCH=win32 winecfg WINEPREFIX=~/.7-zip wine 7z2100.exec cd ~/.7-zip/drive_c/Program Files/7-Zip wine 7zFM.exe
- winecfgで32bit環境を作成したら、その後は「WINEARCH」での指定は不要
- インストール時はどの環境にインストールするか「WINEPREFIX」で指定する