Wine環境(prefix)

Wineが動作する仮想Windows環境で仮想ドライブの割り当て設定に加え、レジストリ(Wineの設定を含む)も一緒に管理される。

Wineは既定ではディレクトリ[ホームディレクトリ]/.wine/以下にそれらのデータを格納するが、この環境は実行時に環境変数WINEPREFIXを指定することで複数の環境を使い分けることができる。常用したいWindowsアプリケーションがある場合に、そのアプリケーション専用のWine環境を用意してこの環境変数を用いると既定のWine環境から分離でき、環境の予備を複製するのも容易。Q4WineというツールではGUI上でこれが管理できる。

表2 Wine環境の構成

ファイル/ディレクトリ内容
dosdevices/仮想ドライブの割り当て設定
drive_c/仮想Cドライブの内容
system.reg,user.reg,userdef.regレジストリ設定

[注記]メモ

Windowsではハードディスクなどの各パーティションや光学ドライブ内のディスクなどのファイルシステムはアルファベットを識別子(ドライブレター)として、Windows用語のドライブとしてその最上位ディレクトリにアクセスし、以下のファイルシステム階層は[ドライブレター]:\[ディレクトリ1]\[ディレクトリ2]\...\[ファイル名]のようにバックスラッシュ区切りで表現され、Windows(OS)の入っているドライブのドライブレターは標準ではC[3]となる。Wineではドライブごとの最上位ディレクトリを[Wine環境の最上位ディレクトリ]/dosdevices/[ドライブ名]:という場所のシンボリックリンクでGNU/LinuxなどのOS側の場所と対応付ける。

64bit版Wineが作成するWine環境の仮想Cドライブ

x86_64版のWine新しくWine環境(prefix)を作成すると、仮想Cドライブ部分が64bit版Windowsと同じ構成となり、このWine環境(prefix)ではx86_32版WineでWin32アプリケーションが、x86_64版WineでWin64アプリケーションが動作する(64bit/32bit両対応のWine環境(prefix)となる)。

64bit版のWineが作成するWine環境の仮想Cドライブと32bit版Wineが作成するWine環境の仮想Cドライブとの違い

  • dosdevices/c:/Program Files/ディレクトリは64bitプログラム用で、32bitプログラムはdosdevices/c:/Program Files (x86)/

  • dosdevices/c:/windows/system32/ディレクトリは64bitシステムファイル用で、32bitのシステムファイルはdosdevices/c:/windows/syswow64/

  • Win64アプリケーションが実行できる

[注意]注意

x86_32版Wineが過去に作成したWine環境(prefix)が残っていてこれを利用する場合、x86_64版WineがあってもWin64アプリケーションは動作しない(端末にはerr:process:create_process starting 64-bit process L"[実行ファイルの場所]" not supported in 32-bit wineprefixのように表示される)。Win64アプリケーションを動かしたいのであれば、一度このWine環境(prefix)を消したり移動したりした後、x86_64版WineWine環境(prefix)を新規に作成する必要がある。

Wine環境の作成と更新

Wine環境(prefix)はWindowsアプリケーションやWineまわりのツール(winecfgなど)の起動時に存在しなければ自動的に作成され、その後にプログラムの実行を開始する。

Wine環境(prefix)内のデータは前回そのWine環境(prefix)を用いたときとWineのバージョンが異なる場合に自動的に書き換えられる。

新しい(初期状態の)Wine環境(prefix)が欲しい場合は、その新しい場所を環境変数WINEPREFIXに入れてWindowsアプリケーションなどを実行するか、何かの作業をシェルスクリプトで自動化したいときなどにはwinebootを用いる。

[重要]重要

Wineを実行するユーザ以外が所有ユーザとなっているディレクトリは、たとえ書き込み権限があったとしてもWine環境(prefix)として使用することはできない。

例1 新しいWine環境を自動(非対話)で作成する

$ WINEPREFIX=[新しいWine環境の場所] wineboot

[注記]メモ

過去にwineprefixcreateというコマンドでWine環境(prefix)の作成/更新作業が手動で行えたが、このコマンドは非推奨なものとされ、最終的に廃止された。

特定のアプリケーション用のWine環境を作る

[注記]メモ

下の流れは一例であり、必ずしも同じ順で同じ内容の作業をしなくてはならないというものではない。

  1. 特定のアプリケーション用のWine環境を配置する場所の絶対パス(例:/home/username/.wine-appname)を環境変数WINEPREFIXに指定して一度winecfgを実行するなどしてWine環境(prefix)を作成

  2. 好みや必要に応じてWine環境(prefix)内の設定を行う(winecfg含む)

  3. Wine環境(prefix)の仮想Cドライブ内にアプリケーションのファイル/ディレクトリを配置(もしくはインストーラのファイルを実行)

  4. 環境変数WINEPREFIXが設定されている状態でアプリケーションを実行し、正常に動作することを確認する

  5. そのWine環境(prefix)を用いてプログラムを実行するためのランチャやスクリプトを作成し、動作を確認する

例2 ランチャのコマンド行部分の記述例

env WINEPREFIX=/home/username/.wine-appname sh -c 'wine "C:\Program Files\appname\appfile.exe"'



[3] ABはフロッピーのドライブ(Aが起動用,Bがアプリケーションなど)で、Windowsよりも古いDOSの時代から用いられており、その後のOSでもフロッピー用に予約されていることから、ハードディスクなどはCからとなっている