Wine

提供: ArchWiki
2018年2月6日 (火) 23:44時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://www.phoronix.com/」を「https://www.phoronix.com/」に置換)
ナビゲーションに移動 検索に移動

関連記事

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

インストール

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

Wine は wine (安定版) または wine-staging (テスト版) パッケージでインストールできます。Wine StagingWine にパッチが適用されたバージョンで、安定版ブランチにマージされていないバグフィックスや機能追加が含まれています (例: CSMT パッチ)。Wine をインストールするには先に Multilib リポジトリを有効にする必要があります。#サウンドも見てください。

Internet Explorer や .NET のサポートが必要なアプリケーションを使いたい場合、それぞれ wine_geckowine-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 ドライブとレジストリを使います。

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

プログラムを動かしたり 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
ノート: prefix の作成で、wine の64ビット版は全てのフォルダを64ビットの prefix として扱い既存のフォルダに32ビットを作成しません。32ビットの prefix を作成するには WINEPREFIX で指定したフォルダを作るように wine に指示を出す必要があります。

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

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

グラフィックドライバ

ゲームを動作させる時はほとんどの場合、パフォーマンスを出すためにグラフィックドライバが必要になります。基本的にプロプライエタリな NVIDIAAMD 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 パッケージに記載されているパッケージをインストールしてください。

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

サウンド

Wine を動かしたときに自動的にサウンド設定がなされますが、winecfg で使うサウンドデバイスを選択することができます。

  • x86_64 環境で Wine の Alsa ドライバを使いたいときは、lib32-alsa-liblib32-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 出力を使うように設定しなくてはなりません。

他のライブラリ

フォント

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 は全てのユーザー共通で Windows アプリケーションをインストールすることはできません。.desktop ファイルが /usr/share/applications に作成されることはありません。詳しくは WineHQ バグの 11112 を見てください。
ヒント: メニューがインストールしてもファイルが作られなかったりもしくは消えてしまった場合、wine 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"
"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-monowine_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 アプリケーションの動作

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

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 をインストールしたり、AURwinetricks-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 にしかないフォーマットもあり (例: vbschm)、その場合 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:

systemdproc-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 を見てください。playonlinuxcommunity リポジトリにあります。

ヒント: PlayOnLinux は Bumblebee をサポートしています。POL コンソールを開いて POL_Config_Write BEFORE_WINE optirun コマンドを入力してエンターを押してください。全てのアプリケーションが optirun で実行されるようになります。optirun の代わりに primusrun を使うこともできます。

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

参照