Wine (日本語)
| Summary |
|---|
| Wine は Microsoft Windows のアプリケーションを UNIX ライクな OS で動かすための互換レイヤーです。プログラムの挙動が Windows と同じなので、エミュレータと違ってパフォーマンス低下がありません。 |
| 参照 |
| Steam (日本語) |
| CrossOver |
より詳しい記述は official project home や wiki を見てください。
Contents |
インストール
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 では、ユーザーはディレクトリーを分ける必要があります。WoW64 機能は実験的なものであり、ユーザーは
WINEPREFIXを使うことが推奨されています。より詳しくは Wine64 を見てください。
要約すると、Arch の 64-bit の Wine と WINEARCH=win32 を使うことで i686 の Wine と同じ挙動をします。
設定
デフォルトでは、Wine の設定ファイルとインストールされた Windows のプログラムは~/.wineに置かれます。このフォルダは "Wine prefix" や "Wine bottle" と呼ばれます。Windows プログラムを動かしたり、Wine を設定するための winecfg を動かすと自動的にフォルダが作成されます。そして Wine で動いているプログラムはこのフォルダの下のツリーを C:\ (Cドライブ) とみなします。
もし必要ならば WINEPREFIX 環境変数を設定することで、違うフォルダを指定することができます。Windows プログラムにそれぞれ違う設定をしたいときにこれは有効です。
たとえば、$ 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
で可能です。
Wine の設定に使われるツール:
- winecfg は Wine の GUI 設定ツールです。コンソールから動かすことができます。
$ winecfgまたは$ WINEPREFIX=~/.some_prefix winecfg。
- control.exe は Windows のコントロールパネルを Wine で模したものです。使うには
$ wine control
- regedit は Wine 版のレジストリエディタです。winecfg やコントロールパネルでは充分でない場合に使います。詳しくは WineHQ's article on Useful Registry Keys
WINEARCH の使用
[multilib] から wine を使っている時、winecfg がデフォルトで 64 ビット wine 環境を使わせていることに気づくかもしれません。この挙動は 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 ドライバを使ったり、Intel ドライバを使ってください。
ドライバが見つからなかったり作動していない時、Wine はターミナルに次のように表示します:
Direct rendering is disabled, most likely your OpenGL drivers have not been installed correctly
x86-64 システムでは、32-bitの [multilib] パッケージや AUR パッケージが必要です:
- NVIDIA:
# pacman -S lib32-nvidia-libgl古いグラフィックカードは AUR を探してください。 lib32-nvidia-utils (e.g. -173xx)
- NVIDIA (using nouveau-dri):
# pacman -S lib32-nouveau-dri
- Intel:
# pacman -S lib32-intel-driRun Wine with:LIBGL_DRIVERS_PATH=/usr/lib32/xorg/modules/dri
- AMD/ATI:
# pacman -S lib32-ati-driFor ATI's proprietary drivers:# pacman -S lib32-catalyst-utils.install lib32-catalyst-utils from the AUR
サウンド
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 のインストールが必要な場合もあります。
他のライブラリ
いくつかのアプリケーション (Office 2003など)は HTML や XML をパースするための MSXML ライブラリが必要です。lib32-libxml2 をインストールしてください。
音楽を再生するアプリケーションには lib32-mpg123 が必要かもしれません。
画像編集アプリケーションに必要なライブラリがあります。lib32-giflib と lib32-libpng をインストールしてください。
x86_64環境での暗号化ライブラリに lib32-gnutls が必要です。
フォント
Microsoft の Truetype フォントがインストールされてない場合、表示されるフォントが見づらいものになることがあります。MS Fonts (日本語) を参照してください。それでもダメな場合、winetricks allfonts を試してください。
その後、すべてのWineサーバーを終了して winecfg を動かしてください。フォントが改善されているはずです。
フォントが不鮮明な場合、regedit を使って以下のようにレジストリを編集してください:
[HKEY_CURRENT_USER\Software\Wine\X11 Driver] "ClientSideWithRender"="N"
デスクトップランチャーメニュー
デフォルトでは Wine をインストールしても Wine に付属しているソフトウェア (ex. winecfg, winebrowser, etc) のデスクトップメニューやアイコンは作られません。しかし Wine で Windows プログラムをインストールしたときは、ほとんどの場合、メニューやデスクトップアイコンが作られます。例えば、setup.exe のような名前のついたインストールプログラムは普通、ウィンドウズの"スタートメニュー"やデスクトップにアイコンを追加します。Wine でそういったプログラムを動作させると、freedesktop.org に対応した.desktop ファイルが作られます。
Ubuntu のように Wine のためのサブメニューを作りたいときは、次の指示に従ってください:
メニューエントリを作成
まず、ベースメニューを作るために Wine で Windows プログラムをインストールします。ベースメニューが作られたら、メニューエントリを追加します。GNOME ではデスクトップを右クリックし"Create Launcher..." を選んでください。KDE/Xfce では違うかもしれません。3つのランチャーを次の設定で作ってください:
Type: Application Name: Configuration Command: winecfg Comment: Configure the general settings for Wine
Type: Application Name: Uninstall Programs Command: wine uninstaller Comment: Uninstall Windows programs under Wine properly
Type: Application Name: Browse C:\ Command: wine winebrowser c:\\ Comment: Browse the files in the virtual Wine C:\ drive
そしてデスクトップに3つのランチャーができたら、メニューに追加します。しかし、まずはランチャーのアイコンを変更しましょう。ランチャーを好きなテキストエディタで開いてください。次のように設定を追加します:
Configuration ランチャー:
Icon[en_US]=wine-winecfg Icon=wine-winecfg
Uninstall Programs ランチャー:
Icon[en_US]=wine-uninstaller Icon=wine-uninstaller
Browse C:\ ランチャー:
Icon[en_US]=wine-winefile Icon=wine-winefile
存在していないアイコンを設定すると、ランチャーにはアイコンがセットされません。ランチャーのプロパティーのメニューからアイコンを設定することもできます。多くのアイコンは GNOME-colors にあります。
ランチャーを完全に設定し終わったら、メニューに追加しましょう。~/.local/share/applications/wine/ にコピーしてください。
~/.config/menus/applications-merged/wine-utilities.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>
<Filename>wine-Configuration.desktop</Filename>
</Include>
<Include>
<Filename>wine-Browse C:\.desktop</Filename>
</Include>
<Include>
<Filename>wine-Uninstall Programs.desktop</Filename>
</Include>
</Menu>
</Menu>
メニューに反映されているか確認してください。
Wine ランチャを Gnome3 のメニューから削除する
システム全体のランチャメニューは /usr/share/applications/ にあります。ランチャを削除するには削除したいプログラムの ".desktop" エントリを削除してください。
これでもランチャが残っているならば、wine ランチャが ~/.local/share/applications/wine/Programs/ にあるようです。このディレクトリ内のプログラムの ".desktop" ランチャファイルを削除して下さい。
KDE 4 Menu Fix[1]
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 アプリケーションの動作
Windows アプリケーションを動かす。
$ wine <path to exe>
MSI インストーラを使う場合。
$ msiexec installername.msi
Tips and Tricks
これらのツールは代表的な Windows コンポーネントのインストールを補助するものです。 In most cases they should be used as a last effort, as it may severely alter your wine configuration.
Microsoft Office のインストール
UPDATE: 09-Apr, 2013: Wine 1.5.27 では、下の "小技" は必要ありません。(samba パッケージに含まれている) winbind をインストールして、以下を実行してください
$ 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 (Windows) に設定してください。これで Powerpoint が動くようになります。 (tested with Office Home/Student 2010 and wine 1.5.27. Activation over Internet also works)
Office のインストールには小技が必要です。次のように行ってください:
$ WINEARCH=win32 WINEPREFIX=/path/to/wineprefix winecfg # pacman -S winetricks $ winetricks msxml3 # For MS Office 2007 $ winetricks msxml3 msxml6 # For MS Office 2010 $ wine /path/to/office_cd/setup.exe
詳しくは WineHQ を参照してください。
OpenGL モード
多くのゲームには OpenGL モードがあり多くの場合デフォルトの DirectX モードより良いパフォーマンスが出ます。OpenGL レンダリングを有効にする方法はそれぞれのアプリケーションによる一方、多くのゲームは -opengl パラメータを認識します。
$ wine /path/to/3d_game.exe -opengl
詳しい情報は、それぞれのアプリケーションのドキュメントや Wine の AppDB を見てください。
Win16/Win32 バイナリのインタプリタとして Wine を使う
wine を全ての Win16/32 バイナリのインタプリタとして使うようカーネルに通知することもできます。 この設定をする方法はあなたが systemd (日本語) か initscripts のどちらを使っているかによって変わります。
Systemd
Win16/32 バイナリの実行方法をカーネルに通知します:
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
設定を永続的にするには以下の内容で /etc/tmpfiles.d の下に設定ファイルを作って下さい。
/etc/tmpfiles.d/enable-doswin-exe.conf
w /proc/sys/fs/binfmt_misc/register - - - - :DOSWin:M::MZ::/usr/bin/wine:
デフォルトでは、Sytemd は自動で /proc/sys/fs/binfmt_misc をマウントします。そのため、tmpfiles ルールを追加するだけでほとんどの場合十分なはずです。
tmpfiles について詳しくは Systemd (日本語)#一時ファイル を見て下さい。
Initscripts
まず binfmt_misc ファイルシステムをマウントします:
# mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
もしくは /etc/fstab に次の行を追加します:
none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0
それから、Win16/32 バイナリの実行方法をカーネルに通知します:
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
この文を /etc/rc.local に追加して設定を永続的にすることができます。
この場合、標準出力エラーや、ランレベルを変更したときのエラーを回避するには:
{ echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register; } 2>/dev/null
セットアップのテスト
そして Windows プログラムを実行してみましょう:
chmod 755 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
サードパーティ製インターフェース
Wine フォーラムではサポートされていません、それぞれのホームページを見てください。
CrossOver
PlayOnLinux/PlayOnMac
PlayOnLinux は Windows と DOS プログラムのグラフィカルマネージャです。プログラムを動かすための設定をアシストするスクリプトや、それぞれの実効ファイルにあった Wine のバージョンを(リグレッションのため)選択する機能があります。どの Wine のバージョンがプログラムに合っているか知るには、Wine Application Database を見てください。community リポジトリに playonlinux はあります。
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.