# Wine (日本語)

関連記事

- Steam/Wine
- CrossOver

Wine は Microsoft Windows のアプリケーションを UNIX ライクな OS で動かすための互換レイヤーです。プログラムの挙動が Windows と同じなので、エミュレータと違ってパフォーマンス低下がありません。より詳しい記述は official project home や wiki を見てください。

## インストール

Warning: 一般ユーザーからアクセスできるファイルには、Wine で動かしているプログラムからもアクセスできます。Wine の prefix はサンドボックスではありません。セキュリティを確保したいときは仮想化を使用してください。

Wine は定期的にアップデートされており、Archでは [community] レポジトリに i686 版が、[multilib] レポジトリに x86_64 版があります。

    # pacman -S wine

Internet Explorer や .NET のサポートが必要なアプリケーションを使いたい場合、それぞれ wine_gecko と wine-mono をインストールしてください。Wine は必要なときに関連ファイルをダウンロードするので、これらのパッケージは厳密には必要ありません。しかし、先にファイルをダウンロードしておくことで、オフラインでも作業できるようになり Wine はそれぞれの WINEPREFIX が必要とするファイルをダウンロードしなくなります。

アーキテクチャの扱いの違い

i686 レポジトリにある Wine は 32-bit アプリケーションであり、64-bit の Windows アプリケーションを動かすことはできません。

x86_64 版の Wine は `--enable-win64` オプションをつけてビルドされています。これは Wine の WoW64 を有効にします。

- ウィンドウズでは、このサブシステムによってユーザーは 32-bit のプログラムと 64-bit のプログラムを同じディレクトリで同時に使うことが可能です。
- Wine では、ユーザーはディレクトリを分ける必要があります。詳しくは Wine64 を見てください。

64-bit 環境で `winetricks` やプログラムに問題がでたときは新しい 32-bit の `WINEPREFIX` を作ってください。#WINEARCH の使用 を参照。x86_64 の Wine と `WINEARCH=win32` を使うことで i686 の Wine と同じ挙動をします。

## 設定

Wine の設定に使われるツール:

- winecfg は Wine の GUI 設定ツールです。コンソールから動かすことができます: `$ winecfg` または `$ WINEPREFIX=~/.some_prefix winecfg`。
- control.exe は Windows のコントロールパネルを Wine で模したものです。使うには `$ wine control`。
- regedit は Wine 版のレジストリエディタです。winecfg やコントロールパネルでは充分でない場合に使います。詳しくは WineHQ のレジストリキーに関する記事 を見て下さい。

### WINEPREFIX

デフォルトでは、Wine の設定ファイルとインストールされた Windows のプログラムは `~/.wine` に置かれます。このフォルダは通常 "Wine prefix" や "Wine bottle" と呼ばれます。Windows プログラムを動かしたり、Wine を設定するための `winecfg` を動かすと自動的にフォルダが作成されます。そして Wine で動いているプログラムはこのフォルダの下のツリーを `C:\` (C ドライブ) とみなします。

必要ならば `WINEPREFIX` 環境変数を設定することで、違うフォルダを指定することができます。これは Windows プログラムにそれぞれ違う設定をしたいときに便利です。初めて新しい Wine の prefix を使ってプログラムを起動した時、Wine は自動で C ドライブとレジストリの入ったディレクトリを作成します。

たとえば、`$ env WINEPREFIX=~/.win-a wine program-a.exe` と `$ env WINEPREFIX=~/.win-b wine program-b.exe` のようにプログラムを動かせば、2つのプログラムは別の C ドライブとレジストリを使います。

Note: Wine の prefix はサンドボックスではありません！Wine で動いているプログラムはシステムの全てにアクセスすることが可能です (例えば、Wine の prefix に関係なく、`Z:` は `/` にマッピングされます)。

プログラムを動かしたり GUI ツールを使わずに Wine へフォルダを設定したいときは

    $ env WINEPREFIX=~/.customprefix wineboot -u

で可能です。

### WINEARCH の使用

64 ビット環境を使っている場合、Wine はデフォルトで 64 ビットの環境を作ります。この挙動は `WINEARCH` 環境変数を使うことで変更できます。あなたの `~/.wine` ディレクトリの名前を変更して新しい wine 環境を作って下さい: `$ WINEARCH=win32 winecfg`。これで 32 ビットの wine 環境が作られます。`WINEARCH` を設定しないときは 64 ビット環境が作られます。

`WINEPREFIX` を使うことで win32 環境と win64 環境を分割することができます:

    $ WINEARCH=win32 WINEPREFIX=~/win32 winecfg
    $ WINEPREFIX=~/win64 winecfg

Note: prefix の作成で、wine の64ビット版は全てのフォルダを64ビットの prefix として扱い既存のフォルダに32ビットを作成しません。32ビットの prefix を作成するには `WINEPREFIX` で指定したフォルダを作るように wine に指示を出す必要があります。

winetricks と `WINEARCH` をひとつのコマンドで一緒に使うことで以下のように winetricks からインストールをさせることもできます (例: Steam):

    env WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/steam winetricks steam

Tip: ~/.bashrc を使うことで `WINEPREFIX` や `WINEARCH` をコマンド毎に指定する必要をなくせます。
Note: `wineprefixes` ディレクトリに steam サブディレクトリを作成していないと、自動で作成されます。詳しくは下の Bottles セクションを見て下さい。

### グラフィックドライバ

ゲームを動作させる時はほとんどの場合、パフォーマンスを出すためにグラフィックドライバが必要になります。基本的にプロプライエタリな NVIDIA や AMD Catalyst ドライバを使うべきですが、オープンソース radeon ドライバーも Wine の使用に耐えるほど成熟してきています。Intel ドライバは何も設定しなくとも問題なく動くはずです。

詳細は Gaming On Wine: The Good & Bad Graphics Drivers を参照してください。

ドライバが見つからなかったり作動していない時、Wine はターミナルに次のように表示します:

    Direct rendering is disabled, most likely your OpenGL drivers have not been installed correctly

x86-64 環境では、32-bitの [multilib] パッケージが必要です。Xorg (日本語)#ドライバーのインストール にある表の Multilib パッケージ に記載されているパッケージをインストールしてください。

Note: ライブラリをインストールしたあと、X を再起動する必要があるかもしれません。

### サウンド

Wine を動かしたときに自動的にサウンド設定がなれますが、`winecfg` で使うサウンドデバイスを選択することができます。いまのところ、Alsa ドライバが一番安定しています。

x86_64 環境で Wine の Alsa ドライバを使いたいときは、lib32-alsa-lib をインストールする必要があります。PulseAudio を使いたいときは、lib32-libpulse をインストールしてください。

OSS ドライバを Wine で使うためには、lib32-alsa-oss パッケージが必要です。カーネルに付属している OSS ドライバでは十分でありません。

それでも `winecfg` がオーディオドライバを見つけられない時（Selected driver: (none)）は、レジストリから設定してください。

より強力なサウンドシステムを使うゲームには lib32-openal のインストールが必要な場合もあります。

#### MIDI サポート

90年代のビデオゲームでは音楽に MIDI を使うのが人気でした。古いゲームを動かすときは、設定をしないと音楽が再生できないのは珍しくありません。 Wine には素晴らしい MIDI サポートがあります。ただし、最初に MIDI がシステムで動くように設定する必要があります。詳しくは wiki のページを見て下さい。あと一つ、Wine が適切な MIDI 出力を使うようにしなくてはなりません。設定方法は Wine Wiki を見て下さい。

### 他のライブラリ

- いくつかのアプリケーション (Office 2003/2007 など) は HTML や XML をパースするための MSXML ライブラリが必要です。lib32-libxml2 をインストールしてください。

- 音楽を再生するアプリケーションには lib32-mpg123 が必要かもしれません。

- 画像編集アプリケーションに必要なライブラリがあります。lib32-giflib と lib32-libpng をインストールしてください。

- アプリケーションによっては暗号化サポートのため lib32-gnutls が必要です。

### フォント

Microsoft の Truetype フォントがインストールされてない場合、表示されるフォントが見づらいものになることがあります。MS Fonts (日本語) を参照してください。それでもダメな場合、`winetricks allfonts` を試してください。

その後、すべてのWineサーバーを終了して `winecfg` を動かしてください。フォントが改善されているはずです。

フォントが不鮮明な場合、regedit を使って以下のようにレジストリを編集してください:

    [HKEY_CURRENT_USER\Software\Wine\X11 Driver]
    "ClientSideWithRender"="N"

### デスクトップランチャーメニュー

Wine で Windows プログラムをインストールすると、メニューやデスクトップアイコンが作られます。例えば、`setup.exe` のような名前のついたインストールプログラムは普通、ウィンドウズの"スタートメニュー"やデスクトップにアイコンを追加します。Wine でそういったプログラムを動作させると、freedesktop.org に対応した `.desktop` ファイルが作られます。

Tip: メニューがインストールしてもファイルが作られなかったりもしくは消えてしまった場合、winemenubuilder を使ってください。

#### メニューエントリを作成

デフォルトでは Wine をインストールしても Wine に付属しているソフトウェア (例: `winecfg`, `winebrowser`, etc) のデスクトップメニューやアイコンは作られません。ここではこれらのアプリケーションのためのエントリを追加する方法を説明します。

まず、ベースメニューを作るために Wine で Windows プログラムをインストールします。ベースメニューが作られたら、`~/.local/share/applications/wine/` に以下のファイルを作成してください:

    wine-browsedrive.desktop

    [Desktop Entry]
    Name=Browse C: Drive
    Comment=Browse your virtual C: drive
    Exec=wine winebrowser c:
    Terminal=false
    Type=Application
    Icon=folder-wine
    Categories=Wine;

    wine-uninstaller.desktop

    [Desktop Entry]
    Name=Uninstall Wine Software
    Comment=Uninstall Windows applications for Wine
    Exec=wine uninstaller
    Terminal=false
    Type=Application
    Icon=wine-uninstaller
    Categories=Wine;

    wine-winecfg.desktop

    [Desktop Entry]
    Name=Configure Wine
    Comment=Change application-specific and general Wine options
    Exec=winecfg
    Terminal=false
    Icon=wine-winecfg
    Type=Application
    Categories=Wine;

そして `~/.config/menus/applications-merged/` に次のファイルを作成してください:

    wine.menu

    <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
    "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
    <Menu>
      <Name>Applications</Name>
      <Menu>
        <Name>wine-wine</Name>
        <Directory>wine-wine.directory</Directory>
        <Include>
          <Category>Wine</Category>
        </Include>
      </Menu>
    </Menu>

以上の設定でアイコンが表示されない場合は、有効になっているアイコンセットにランチャーのためのアイコンが存在しないのが原因です。使いたいアイコンの位置を指定してアイコンの設定を置き換えてください。プロパティメニューのアイコンをクリックしても同じことができます。これらのショートカットをサポートしているアイコンセットは GNOME-colors です。

#### メニューエントリを削除する

Wine によって作成されるエントリは `~/.local/share/applications/wine/Programs/` にあります。プログラムの ".desktop" エントリを削除すればメニューからアプリケーションが削除されます。

#### KDE 4 メニューフィックス

KDE 4 では Wine メニューアイテムが Wine ではなく `"Lost & Found"` に現れるかもしれません。これは `kde-applications.menu` が `MergeDir` オプションを見つけられないために起こります。

`/etc/xdg/menus/kde-applications.menu` を編集します。

ファイルの最後の `<DefaultMergeDirs/>` の後に `<MergeDir>applications-merged</MergeDir>` を加えて下さい、以下のようになるはずです:

    <Menu>
            <Include>
                    <And>
                            <Category>KDE</Category>
                            <Category>Core</Category>
                    </And>
            </Include>
            <DefaultMergeDirs/>
            <MergeDir>applications-merged</MergeDir>
            <MergeFile>applications-kmenuedit.menu</MergeFile>
    </Menu>

もしくは KDE のフォルダにシンボリックリンクを作成:

    $ ln -s ~/.config/menus/applications-merged ~/.config/menus/kde-applications-merged

こちらのやり方は KDE のアップデートにあわせて変更する必要がないという利点がありますが、ユーザーごとに設定をしなくてはなりません。

## Windows アプリケーションの動作

Warning: root で Wine アプリケーションを実行してはいけません！Running Wine as root を見て下さい。

Windows アプリケーションを動かす。

    $ wine <path to exe>

MSI インストーラを使う場合。

    $ msiexec installername.msi

## Tips and Tricks

Tip: 記事の最初にあるリンクに加えて、以下のサイトも有用です:

- The Wine Application Database (AppDB) - 特定の Windows アプリケーションについての情報 (既知の問題, レーティング, ガイドなど)
- The WineHQ Forums - FAQ や AppDB を見ても解決しない問題はここで尋ねましょう

### exe-thumbnailer

Wine と一緒に (もしくはその前に) インストールするための小さな UI のコードです。実行可能ファイルのサムネイルを提供します。利用可能ならば埋め込まれたアイコンを表示するため、ユーザーは Wine が何を開くのかわかりやすくなります。詳細は wine wiki を見て下さい。gnome-exe-thumbnailer は AUR から利用可能です。

### パフォーマンスを大幅に向上させる CSMT パッチのあたった Wine

最近 wine の開発者 は Wine に stream/worker スレッド最適化の実験を行っています。この実験中のパッチがあてられた Wine バージョンを使うことでパフォーマンスを向上させることができるかもしれません。多数のゲームが Windows と同じ速度で、またはそれ以上で動くようになる可能性もあります。この Wine パッチは CSMT パッチとして知られており、Nvidia と AMD のグラフィックカードで利用できます。

Note: これはあくまで実験的なコードです。そのため、予期しない動作をすることもあります。パッチの開発を助けるために、開発者に報告をしてください。

playonlinux をインストールすると楽です。ゲームをインストールして PlayOnLinux の Tools/Manage Wine Versions メニューから Wine バージョン 1.7.4-CSMT を有効にしてください。現在はパッチがあたった Wine バージョン 1.7.4-CSMT を使うことが推奨されています。

ゲームの設定を開いて以下の設定を Miscellaneous/Command to exec before running the program にコピーしてください:

    export WINEDEBUG=-all
    export LD_PRELOAD="libpthread.so.0 libGL.so.1"
    export __GL_THREADED_OPTIMIZATIONS=0
    export __GL_SYNC_TO_VBLANK=1
    export __GL_YIELD="NOTHING"
    export CSMT=enabled

Tools/General から StrictDrawOrdering は無効にしてください。

Github から自分でコンパイルしたり、AUR のパッケージ wine-d3dstream-git を使うこともできます。

#### 詳細

CSMT の開発者 Stefan Dösinger による Phoronix Forum の議論

CSMT とベンチマークの FOSDEM2014 CSMT プレゼンテーション

ここに CSMT を有効にして動作させているゲーム動画があります

### 言語の変更

いくつかのプログラムには言語の選択がなく、システムのロケールを使用する言語として扱います。Wine は (ロケールを含む) 現在の環境をアプリケーションにわたすので、設定をしなくとも問題なく動くはずです。プログラムを (システムで生成した) 特定のロケールで動くように強制したい場合は、次の設定を使って Wine を呼び出して下さい:

    LC_ALL=xx_XX.encoding wine /my/program

例:

    LC_ALL=ja_JP.UTF-8 wine /my/program

### Microsoft Office 2010 のインストール

Note: Microsoft Office 2013 は動作しません。

Microsoft Office 2010 は問題なく動きます (Microsoft Office Home と Student 2010、Wine 1.5.27 と 1.7.5 で確認)。インターネットのアクティベーションも問題ありません。

最初に wine-mono, wine_gecko, samba, lib32-libxml2 をインストールしてください。

それからインストーラーの起動に進んで下さい:

    $ export WINEPREFIX="<path to a writable folder on your home directory>"
    $ export WINEARCH="win32"
    $ wine /path/to/office_cd/setup.exe

上記の export は `.bashrc` に追加することもできます。

インストールが終わったら、Word か Excel を開いてインターネットでアクティベートしてください。完了したら、アプリケーションを閉じて下さい。それから `winecfg` を実行して、（ライブラリの） riched20 を (native,builtin) に設定してください。これで Powerpoint が動くようになります。

詳しくは WineHQ を参照してください。

Note: インターネットによるアクティベーションができなくて携帯電話でしたい場合でも、国の選択を表示するために riched20 は (native,builtin) に設定しておいてください。
Note: playonlinux は Office 2003, 2007, 2010 のインストールを簡単にするカスタムインストーラスクリプトを提供しています。setup.exe や ISO を用意するだけでインストーラはシームレスにインストール作業を行います。Wine に手を加える必要はありません。

### オプティカルメディアイメージの正しいマウント

いくつかのアプリケーションはオプティカルメディアがドライブにあるかの確認をします。ほとんどはデータの確認だけなので、`winecfg` で CD-ROM ドライブのパスを正しく設定すれば問題ありません。 しかし、アプリケーションによってはメディアの名前やシリアルナンバーを確認するので、イメージを特別なプロパティを使ってマウントする必要があります。

fuse ベースの仮想ドライブ (例えば Acetoneiso) など、仮想ドライブツールはこれらのメタデータを扱えないことがあります。CDEmu は適切にこれを処理します。

### オプティカルメディアを焼く

CD や DVD を焼くためには、`sg` カーネルモジュールをロードする必要があります。

### OpenGL モード

多くのゲームには OpenGL モードがあり多くの場合デフォルトの DirectX モードより良いパフォーマンスが出ます。OpenGL レンダリングを有効にする方法はそれぞれのアプリケーションによる一方、多くのゲームは `-opengl` パラメータを認識します。

    $ wine /path/to/3d_game.exe -opengl

詳しい情報は、それぞれのアプリケーションのドキュメントや Wine の AppDB を見てください。

### Win16/Win32 バイナリのインタプリタとして Wine を使う

wine を全ての Win16/32 バイナリのインタプリタとして使うようにすることもできます:

    echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register

設定を永続的にするには、以下の内容で `/etc/binfmt.d/wine.conf` ファイルを作って下さい:

    # Start WINE on Windows executables
    :DOSWin:M::MZ::/usr/bin/wine:

systemd は `proc-sys-fs-binfmt_misc.mount` を使って自動で `/proc/sys/fs/binfmt_misc` ファイルシステムをマウントし、`systemd-binfmt.service` を実行して設定をロードします。

Windows プログラムを実行するには:

    chmod +x exefile.exe
    ./exefile.exe

これで exefile.exe が動作するはずです。

### Wine コンソール

プログラムをコマンドラインから起動することができます。次のコマンドをターミナルで実行してください:

    $ wineconsole cmd

プログラムがあるフォルダまで移動して、プログラムを実行してください。

### Winetricks

Winetricks は Windows プログラムを動かすために必要なランタイムなどをインストールするためのスクリプトです。DirectX 9.x やMSXML (Microsoft Office 2007 や Internet Explorer で必要)、Visual ランタイムライブラリなどをインストールできます。

使うには pacman から winetricks をインストールしたり、AUR の winetricks-svn パッケージをインストールしてください。次のコマンドで動きます。

    $ winetricks

### .NET framework 4.0 のインストール

64ビット環境の場合、まず新規に32ビットの wine prefix を作成してください:

    $ WINEARCH=win32 WINEPREFIX=~/win32 winecfg

それから winetricks を使って以下のパッケージをインストールしてください:

    $ WINEARCH=win32 WINEPREFIX=~/win32 winetricks -q msxml3 dotnet40 corefonts

## サードパーティ製インターフェース

Wine フォーラムではサポートされていません、それぞれのホームページを見てください。

### CrossOver

CrossOver には wiki page があります.

### PlayOnLinux/PlayOnMac

PlayOnLinux は Windows と DOS プログラムのグラフィカルマネージャです。プログラムを動かすための設定をアシストするスクリプトや、それぞれの実効ファイルにあった Wine のバージョンを（リグレッションのため）選択する機能があります。どの Wine のバージョンがプログラムに合っているか知るには、Wine Application Database を見てください。playonlinux は community リポジトリにあります。

### PyWinery

PyWinery はグラフィカルでシンプルな wine-prefix マネージャで、アプリの起動と異なった prefix の設定の管理ができ、同じ prefix で winetricks を開くボタンや、prefix ディレクトリ・ `winecfg` ・アプリケーションアンインストーラ・ wineDOS を開くボタンを備えています。PyWinery は AUR からインストールできます。DirectX を使うゲームやオフィススイートなどアプリケーション毎に違う設定を使ったり環境を選びたいときに便利です。

`.exe` を開くときはデフォルトで winetricks を使うことが推奨されています。wine 設定を選ぶことができるようになるからです。

### Q4wine

Q4Wine はグラフィカルな wine-prefix マネージャで prefix 設定の管理をすることができます。特に QT テーマを wine 設定に適用することで見た目を統合することができます。community リポジトリに q4wine パッケージがあります。

## 外部リンク

- Wine 公式ウェブサイト
- Wine Application Database
- Advanced configuring your gfx card and OpenGL settings on wine; Speed up wine
- FileInfo - Find Win32 PE/COFF headers in EXE/DLL/OCX files under linux/unix environment.

Category:

- Wine (日本語)