Wine (日本語)

From ArchWiki
Jump to: navigation, search
Summary
Wine は Microsoft Windows のアプリケーションを UNIX ライクな OS で動かすための互換レイヤーです。プログラムの挙動が Windows と同じなので、エミュレータと違ってパフォーマンス低下がありません。
参照
Steam (日本語)
CrossOver

より詳しい記述は official project homewiki を見てください。

Contents

インストール

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

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

# pacman -S wine

Internet Explorer や .NET のサポートが必要なアプリケーションを使いたい場合、それぞれ wine_geckowine-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 と同じ挙動をします。

Note: 64-bit 環境で winetricks やプログラムに問題がでたときは新しい 32-bit の WINEPREFIX を作ってください。詳細は#WINEARCHの使用で。

設定

デフォルトでは、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

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
Note: During prefix creation, the 64-bit version of wine treats all folders as 64-bit prefixs and will not create a 32-bit in any existing folder. To create a 32-bit prefix you have to let wine create the folder specified in WINEPREFIX.

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

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

グラフィックドライバ

ゲームを動作させる時はほとんどの場合、パフォーマンスを出すためにグラフィックドライバが必要になります。プロプライエタリな NVIDIAAMD 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-dri Run Wine with: LIBGL_DRIVERS_PATH=/usr/lib32/xorg/modules/dri
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 のインストールが必要な場合もあります。

他のライブラリ

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

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

画像編集アプリケーションに必要なライブラリがあります。lib32-gifliblib32-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 ファイルが作られます。

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

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.menuMergeDir オプションを見つけられないために起こります。

/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: In addition to the links provided in the beginning of the article the following may be of interest:

これらのツールは代表的な 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 を参照してください。

Note: playonlinux provides custom installer scripts that make the installation of Office 2003, 2007 and 2010 an ease. You just have to provide the setup.exe or ISO and the installer will guide you seamlessly through the installation procedure. You do not have to deal with the underlying Wine at all.

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 をインストールしたり、AURwinetricks-svn パッケージをインストールしてください。次のコマンドで動きます。

$ winetricks

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

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

CrossOver

CrossOver には wiki page があります.

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 パッケージがあります。

外部リンク