Wine
Wine は Microsoft Windows のアプリケーションを UNIX ライクな OS で動かすための互換レイヤーです。プログラムの挙動が Windows と同じなので、エミュレータと違ってパフォーマンス低下がありません。より詳しい記述は プロジェクトの公式ページ や wiki を見てください。
目次
- 1 インストール
- 2 設定
- 3 Windows アプリケーションの動作
- 4 ヒントとテクニック
- 4.1 Wine コンソール
- 4.2 Winetricks
- 4.3 CSMT パッチ
- 4.4 Wine によるファイルの関連付けの解除
- 4.5 Wine によるファイルの関連付けを停止
- 4.6 異なる解像度でのデュアルスクリーン
- 4.7 exe-thumbnailer
- 4.8 言語の変更
- 4.9 Win16/Win32 バイナリのインタプリタとして Wine を使う
- 4.10 16ビットのプログラム
- 4.11 オプティカルメディアを焼く
- 4.12 オプティカルメディアイメージの正しいマウント
- 4.13 OpenGL モード
- 4.14 ゲーム内に FPS オーバーレイを表示
- 4.15 .NET framework 4.0 のインストール
- 4.16 Microsoft Office のインストール
- 5 サードパーティ製インターフェース
- 6 参照
インストール
Wine は wine (安定版) または wine-staging (テスト版) パッケージでインストールできます。Wine Staging は Wine にパッチが適用されたバージョンで、安定版ブランチにマージされていないバグフィックスや機能追加が含まれています (例: CSMT パッチ)。Wine をインストールするには先に Multilib リポジトリを有効にする必要があります。#サウンドも見てください。
Internet Explorer や .NET のサポートが必要なアプリケーションを使いたい場合、それぞれ wine_gecko と wine-mono をインストールしてください。Wine は必要なときに関連ファイルをダウンロードするので、これらのパッケージは厳密には必要ありません。しかし、先にファイルをダウンロードしておくことで、オフラインでも作業できるようになり Wine はそれぞれの WINEPREFIX が必要とするファイルをダウンロードしなくなります。
アーキテクチャの扱いの違い
x86_64 版の Wine は --enable-win64
オプションをつけてビルドされています。これは Wine の WoW64 を有効にします。
- ウィンドウズでは、このサブシステムによってユーザーは32ビットのプログラムと64ビットのプログラムを同じディレクトリで同時に使うことが可能です。
- Wine では32ビットのプログラムが64ビットのプレフィックスでは動作しないことがあり、そのような場合ユーザーはディレクトリを分ける必要があります。詳しくは Wine FAQ を見てください。
64ビット環境で winetricks
やプログラムに問題がでたときは新しい32ビットの WINEPREFIX
を作ってください。#WINEARCH の使用を参照。x86_64 の Wine と WINEARCH=win32
を使うことで i686 の Wine と同じ挙動をします。
設定
Wine の設定に使われるツール:
- winecfg は Wine の GUI 設定ツールです。コンソールから動かすことができます:
$ wine winecfg
または$ WINEPREFIX=~/.some_prefix wine winecfg
。 control.exe
は Windows のコントロールパネルを Wine で模したものです。使うには$ wine control
で起動します。- regedit は Wine 版のレジストリエディタです。winecfg やコントロールパネルでは充分でない場合に使います。詳しくは WineHQ のレジストリキーに関する記事 を見て下さい。
- Wine の完全なコマンドリストは WineHQ の List of Commands を見てください。
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 ドライブとレジストリを使います。
プログラムを動かしたり GUI ツールを使わずに Wine へフォルダを設定したいときは
$ env WINEPREFIX=~/.customprefix wineboot -u
で可能です。
WINEARCH の使用
Wine はデフォルトで 64 ビットの環境を作ります。この挙動は WINEARCH
環境変数を使うことで変更できます。あなたの ~/.wine
ディレクトリの名前を変更して新しい wine 環境を作って下さい:
$ WINEARCH=win32 winecfg
。これで 32 ビットの wine 環境が作られます。WINEARCH
を設定しないときは 64 ビット環境が作られます。
WINEPREFIX
を使うことで win32 環境と win64 環境を分割することができます:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg $ WINEPREFIX=~/win64 winecfg
winetricks と WINEARCH
をひとつのコマンドで一緒に使うことで以下のように winetricks からインストールをさせることもできます (例: Steam):
env WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/steam winetricks steam
グラフィックドライバ
ゲームを動作させる時はほとんどの場合、パフォーマンスを出すためにグラフィックドライバが必要になります。基本的にプロプライエタリな 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
32ビットの [multilib] パッケージが必要です。Xorg#ドライバーのインストール にある表の Multilib パッケージに記載されているパッケージをインストールしてください。
サウンド
Wine を動かしたときに自動的にサウンド設定がなされますが、winecfg
で使うサウンドデバイスを選択することができます。
- x86_64 環境で Wine の Alsa ドライバを使いたいときは、lib32-alsa-lib と lib32-alsa-plugins をインストールする必要があります。
- Wine で PulseAudio を使いたいときは、lib32-libpulse パッケージをインストールしてください。
- OSS ドライバを Wine で使うためには、lib32-alsa-oss パッケージが必要です。カーネルに付属している OSS ドライバでは十分でありません。
- TESV: Skyrim など、より強力なサウンドシステムを使うゲームを動かすには lib32-openal のインストールが必要な場合もあります。
上記のパッケージをインストールしても winecfg
がオーディオドライバを見つけられない時 (Selected driver: (none)
) は、レジストリから設定してください。例えば、64ビットの標準の wine-1.9.7 で32ビットの Windows アプリケーションを使ったときにマイクが機能しない場合、次の手順でサウンドハードウェアにアクセスできるようになります: regedit を開いて HKEY_CURRENT_USER → Software → Wine → Drivers と進んで Audio という名前の文字列を追加して値を alsa に設定してください。また、プレフィックスを再作成することで解決するかもしれません。
MIDI サポート
90年代のビデオゲームでは音楽に MIDI を使うのが人気でした。古いゲームを動かすときは、設定をしないと音楽が再生できないのは珍しくありません。Wine には素晴らしい MIDI サポートがあります。ただし、最初に MIDI がシステムで動くように設定する必要があります。詳しくは MIDI を見てください。そして Wine が適切な MIDI 出力を使うように設定しなくてはなりません。
他のライブラリ
- いくつかのアプリケーション (Office 2003/2007 など) は HTML や XML をパースするための MSXML ライブラリが必要です。lib32-libxml2 をインストールしてください。
- 音楽を再生するアプリケーションには lib32-mpg123 が必要かもしれません。
- 色管理エンジンを使用するアプリケーション (例: PDF ビューア, 画像ビューアなど) には lib32-lcms2 が必要です。
- 画像編集アプリケーションに必要なライブラリがあります。lib32-giflib と lib32-libpng をインストールしてください。
- アプリケーションによっては暗号化サポートのため lib32-gnutls が必要です。
- 一部のアプリケーションは32ビットのビデオコーデックを必要とし、コーデックが存在しないとプログラムがクラッシュします。gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, lib32-gst-plugins-base, lib32-gst-plugins-good, lib32-gst-plugins-badAUR, lib32-gst-plugins-uglyAUR などをインストールしてください。
フォント
Microsoft の Truetype フォントがインストールされてない場合、表示されるフォントが見づらいものになることがあります。MS フォントを参照してください。winetricks corefonts
をまず試してみて、それでもダメな場合、winetricks allfonts
を試してください。
その後、すべてのWineサーバーを終了して winecfg
を動かしてください。フォントが改善されているはずです。
フォントが不鮮明な場合、regedit を使って以下のようにレジストリを編集してください:
[HKEY_CURRENT_USER\Software\Wine\X11 Driver] "ClientSideWithRender"="N"
フォント設定#fontconfig をサポートしていないアプリケーションも参照。
デスクトップランチャーメニュー
Windows アプリケーションランチャーによってショートカットが作成された場合、wine は .desktop
ファイルを作成します。Arch Linux ではデフォルトで以下の場所にファイルが作成されます:
- デスクトップショートカットは
~/Desktop
に保存されます。 - スタートメニューのショートカットは
~/.local/share/applications/wine/Programs/
に保存されます。
メニューエントリを作成
デフォルトでは 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" "https://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" エントリを削除すればメニューからアプリケーションが削除されます。
Wine による不要な拡張を削除するのに加えて、以下のコマンドを実行 (Wine のウェブサイトより):
$ rm ~/.local/share/mime/packages/x-wine* $ rm ~/.local/share/applications/wine-extension* $ rm ~/.local/share/icons/hicolor/*/*/application-x-wine-extension* $ rm ~/.local/share/mime/application/x-wine-extension*
Mono と Gecko
新しい wineprefix を初期化したとき、Wine は Mono と Gecko のインストールを要求します。また、wine-mono と wine_gecko パッケージがインストールされている場合、wine は特に何もメッセージを表示せずに mono と gecko の 450MB 近いファイルを wineprefix にコピーします。
Wine によって Mono と Gecko がインストールされないようにしたい場合、以下のようにして wine を起動してください:
WINEDLLOVERRIDES=mscoree=d;mshtml=d wine somewineapp
印刷
win32 prefix で wine アプリケーション (例: MS Word) を使ってプリンター (ローカル・ネットワーク両方) を使用するには lib32-libcups パッケージをインストールしてください。それから wine を再起動 (wineboot) してください。
Windows アプリケーションの動作
Windows アプリケーションを動かす:
$ wine path_to_exe
MSI インストーラを使う場合 (msiexec ユーティリティを使用):
$ msiexec /i path_to_msi
ヒントとテクニック
Wine コンソール
.exe を実行してゲームファイルにパッチを適用する必要がある場合 (例えば古いゲームにワイドスクリーン対応 MOD を適用するなど)、通常の方法で Wine から .exe を実行しても何も起きないことがあります。その場合、ターミナルを開いて以下のコマンドを実行してください:
$ wineconsole cmd
コマンドラインが開くのでプログラムがあるフォルダまで移動して、.exe プログラムを実行してください。
Winetricks
Winetricks は Windows プログラムを動かすために必要なランタイムなどをインストールするためのスクリプトです。DirectX 9.x や MSXML (Microsoft Office 2007 や Internet Explorer で必要)、Visual ランタイムライブラリなどをインストールできます。
使うには pacman から winetricks をインストールしたり、AUR の winetricks-gitAUR パッケージをインストールしてください。次のコマンドで動きます:
$ winetricks
CSMT パッチ
2013年から wine の開発者 は Wine に stream/worker スレッド最適化の実験を行っています。この実験中のパッチがあてられた Wine バージョンを使うことでパフォーマンスを向上させることができるかもしれません。多数のゲームが Windows と同じ速度で、またはそれ以上で動くようになる可能性もあります。この Wine パッチは CSMT パッチとして知られており、Nvidia と AMD のグラフィックカードで利用できます。
Wine-staging には CSMT のサポートが含まれており (バージョン 1.9.10 から)、wine-staging パッケージでインストールできます。
CSMT のサポートは winecfg
で有効化する必要があります (Staging タブ)。
詳細:
- CSMT の開発者 Stefan Dösinger による Phoronix Forum の議論
- ここ に CSMT を有効にして動作させているゲーム動画があります。
Wine によるファイルの関連付けの解除
デフォルトで、大量のフォーマットで Wine はデフォルトアプリケーションとして設定されます。Windows にしかないフォーマットもあり (例: vbs
や chm
)、その場合 Wine で開けるようになるのは便利かもしれません。しかしながら、他のフォーマット (例: gif
, jpeg
, txt
, js
) が Wine の素っ気ない Internet Explorer やメモ帳で開かれるのは迷惑と感じることもあるでしょう。
Wine のファイルの関連付けは ~/.local/share/applications/
にある {{ic|wine-extension-{extension}.desktop}} というファイルによって設定されます。関連付けを解除したい拡張子の名前が入っているファイルを削除してください。もしくは、Wine の関連付けを全て削除したい場合:
$ rm -f ~/.local/share/applications/wine-extension*.desktop $ rm -f ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*
古いキャッシュを削除:
$ rm -f ~/.local/share/applications/mimeinfo.cache $ rm -f ~/.local/share/mime/packages/x-wine* $ rm -f ~/.local/share/mime/application/x-wine-extension*
キャッシュをアップデート:
$ update-desktop-database ~/.local/share/applications $ update-mime-database ~/.local/share/mime/
もしくは wine に関連するキャッシュだけを削除することもできます:
$ find ~/.local/share -name "*wine*" | xargs --no-run-if-empty rm -r
その後、上述のようにキャッシュをアップデートしてください。
削除しても、アプリケーションによってファイルの関連付けが設定されたら、Wine はファイルの関連付けを作成し続けます。
Wine によるファイルの関連付けを停止
関連付けを作成しないように設定するには、$WINEPREFIX/system.reg
ファイルを開いて、winemenubuilder
を検索して -a
を削除してください。以下のようになります:
$WINEPREFIX/system.reg
[Software\\Microsoft\\Windows\\CurrentVersion\\RunServices] "winemenubuilder"="C:\\windows\\system32\\winemenubuilder.exe -r"
ファイルの関連付けを作成して欲しくない全ての WINEPREFIX で上記の設定が必要になります。
以下の環境変数を設定することで全ての WINEPREFIX で winemenubuilder を無効化することが可能です:
$ export WINEDLLOVERRIDES="winemenubuilder.exe=d"
異なる解像度でのデュアルスクリーン
デュアルヘッドの設定でディスプレイの解像度が異なったときに問題が起きる場合はおそらく lib32-libxrandr をインストールしていません。
lib32-libxinerama をインストールすることでも wine のデュアルスクリーンの問題が解決することがあります。
exe-thumbnailer
Wine と一緒に (もしくはその前に) インストールするための小さな UI のコードです。実行可能ファイルのサムネイルを提供します。利用可能ならば埋め込まれたアイコンを表示するため、ユーザーは Wine が何を開くのかわかりやすくなります。exe-thumbnailerAUR パッケージから利用可能です。
言語の変更
いくつかのプログラムには言語の選択がなく、システムのロケールを使用する言語として扱います。Wine は (ロケールを含む) 現在の環境をアプリケーションにわたすので、設定をしなくとも問題なく動くはずです。プログラムを (システムで生成した) 特定のロケールで動くように強制したい場合は、次の設定を使って Wine を呼び出して下さい:
$ LC_ALL=xx_XX.encoding wine /path/to/program
例:
$ LC_ALL=ja_JP.UTF-8 wine /path/to/program
Win16/Win32 バイナリのインタプリタとして Wine を使う
wine を全ての Win16/32 バイナリのインタプリタとして使うようにすることもできます:
# echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
設定を永続的にするには、以下の内容で /etc/binfmt.d/wine.conf
ファイルを作って下さい:
/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 が動作するはずです。
16ビットのプログラム
古い Windows 9x のプログラムを実行すると、以下のエラーが表示されることがあります:
modify_ldt: Invalid argument err:winediag:build_module Failed to create module for "krnl386.exe", 16-bit LDT support may be missing. err:module:attach_process_dlls "krnl386.exe16" failed to initialize, aborting
この場合は、次のコマンドを実行することで修正できます:
# echo 1 > /proc/sys/abi/ldt16
ソース: Fedora メーリングリスト
オプティカルメディアを焼く
CD や DVD を焼くためには、sg
カーネルモジュールをロードする必要があります。
オプティカルメディアイメージの正しいマウント
いくつかのアプリケーションはオプティカルメディアがドライブにあるかの確認をします。ほとんどはデータの確認だけなので、winecfg
で CD-ROM ドライブのパスを正しく設定すれば問題ありません。
しかし、アプリケーションによってはメディアの名前やシリアルナンバーを確認するので、イメージを特別なプロパティを使ってマウントする必要があります。
fuse ベースの仮想ドライブ (例えば Acetoneiso) など、仮想ドライブツールはこれらのメタデータを扱えないことがあります。CDEmu は適切にこれを処理します。
OpenGL モード
多くのゲームには OpenGL モードがあり多くの場合デフォルトの DirectX モードより良いパフォーマンスが出ます。OpenGL レンダリングを有効にする方法はそれぞれのアプリケーションによる一方、多くのゲームは -opengl
パラメータを認識します。
$ wine /path/to/3d_game.exe -opengl
詳しい情報は、それぞれのアプリケーションのドキュメントや Wine の AppDB を見てください。
ゲーム内に FPS オーバーレイを表示
Wine には全てのグラフィカルアプリケーションで使える FPS モニター機能があります。環境変数 WINEDEBUG=fps
を設定してください。FPS は標準出力にアウトプットされます。xosd パッケージの osd_cat
を使うことでウィンドウ上に FPS を表示することが可能です。ヘルパースクリプト winefps.sh を見てください。
.NET framework 4.0 のインストール
まず新規に32ビットの wine prefix を作成してください:
$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg
それから winetricks を使って以下のパッケージをインストールしてください:
$ WINEARCH=win32 WINEPREFIX=~/win32 winetricks -q msxml3 dotnet40 corefonts
Microsoft Office のインストール
Office 2010
32ビット版の Microsoft Office 2010 (MSO-2010) は問題なく動きます。インターネットのアクティベーションも問題ありません。
最初に wine-mono, wine_gecko, samba, lib32-libxslt, libwbclient, lib32-libxml2 をインストールしてください。
それからインストーラーの起動に進んで下さい:
$ export WINEPREFIX=~/.wine $ export WINEARCH=win32 $ wine /path/to/office_cd/setup.exe
デフォルトの Wine プレフィックス (~/.wine
) に Office 2010 をセットアップしたくない場合、#WINEPREFIX セクションに書かれているように新しいプレフィックスを作成してください。上記の export はシェルの初期化スクリプトに書くことができます。
インストールが完了したら、Word や Excel を開いてインターネットからアクティベートしてください。アクティベーションが完了したら winecfg を起動して (ライブラリの) riched20
を (native,builtin)
に設定してください。この設定によって PowerPoint が動作するようになり、電話アクティベーションの国選択のドロップダウンリストが表示されるようになります。
OneNote を動作させるには、winetricks wininet
を実行して wininet
が (native,builtin)
に設定されていることを確認してください。
詳しくは WineHQ の記事を見てください。
上記の方法の代わりとして、playonlinux は Office 2003, 2007, 2010 を簡単にインストールできるカスタムインストーラースクリプトを提供しています。setup.exe や ISO を用意するだけでインストーラーはスムーズにインストールを実行します。Wine については全く操作を必要としません。playonlinux による Office 2010 のインストールは古いバージョンの Word で作成された Word 文章の xml 変換を有効にします。
Office 2013
Wine 2.0 以上であれば32ビット版が問題なく動作するはずです。詳しくは WineHQ のページ を見てください。
Office 2016
32ビット版の Office 2016 は動作します。詳しくは WineHQ のページ を見てください。
サードパーティ製インターフェース
Wine フォーラムではサポートされていません、それぞれのホームページを見てください。
CrossOver
CrossOver については CrossOver を見て下さい。
PlayOnLinux/PlayOnMac
PlayOnLinux は Windows と DOS プログラムのグラフィカルマネージャです。プログラムを動かすための設定をアシストするスクリプトや、それぞれの実効ファイルにあった Wine のバージョンを(リグレッションのため)選択する機能があります。どの Wine のバージョンがプログラムに合っているか知るには、Wine Application Database を見てください。playonlinux は community リポジトリにあります。
PyWinery
PyWinery はグラフィカルでシンプルな wine-prefix マネージャで、アプリの起動と異なった prefix の設定の管理ができ、同じ prefix で winetricks を開くボタンや、prefix ディレクトリ・ winecfg
・アプリケーションアンインストーラ・ wineDOS を開くボタンを備えています。AUR の pywineryAUR パッケージからインストールできます。DirectX を使うゲームやオフィススイートなどアプリケーション毎に違う設定を使ったり環境を選びたいときに便利です。
.exe
を開くときはデフォルトで winetricks を使うことが推奨されています。wine 設定を選ぶことができるようになるからです。
Q4wine
Q4Wine はグラフィカルな wine-prefix マネージャで prefix 設定の管理をすることができます。特に Qt テーマを wine 設定に適用することで見た目を統合することができます。community リポジトリに q4wineAUR パッケージがあります。
参照
- Wine 公式ウェブサイト
- Wine アプリケーションデータベース
- Advanced configuring your gfx card and OpenGL settings on wine; Speed up wine
- FileInfo - Linux/Unix 環境で EXE/DLL/OCX ファイルの Win32 PE/COFF ヘッダを確認する。