本記事はWineを使う上で便利なWinetricksと呼ばれるツールについてを扱っている。
元の記事は2010年2月に書かれたが、ほとんどの内容を書き直し、GUIメニューについてなど新しい内容も書き加えている。
Winetricksについて
WineでWindowsアプリケーションを動かす際には
- 標準で用意されていないライブラリが追加で必要になる場合
- 一部のWine版のライブラリの実装に問題があるがWindowsネイティブ版のDLLを代わりに使用することで問題回避が可能な場合
- 特定のプログラムを正しく動かすためにWine専用のレジストリ設定を初期値から変更する必要がある場合
などがあり、こうした状況に対応する[1]ために役に立つWinetricksというツールがある。
GNU/Linux向けに作られているが、Mac OS XやCygwin(Windows上のPOSIX環境の実装の1つ)でも動作するとされる。
機能
- Windowsネイティブ版のDLLをWine環境に配置(パッケージによってはインストーラが動作)した上で、(Wineの “DLLオーバーライド” 機能で)それらがWine版よりも優先して使用されるように設定する機能
- 一部のアプリケーションやプラグイン、フォントなどもパッケージとしてインストール可能
- 基本的にパッケージは自動的に一次配布元からダウンロードされるが、一部のパッケージでは手動で該当ファイルをWebブラウザでダウンロードした上で特定のディレクトリに配置してから実行する必要があったり、一部の商用ゲームなどのパッケージではそのディスクが必要[2]だったりする
- Wine専用のレジストリ項目を用いた各種設定の変更をパッケージとして簡単に適用できる
- 端末(やスクリプトなど)でパッケージ名を指定して実行する形とGUIメニューから操作する形の両方に対応
- Wineのバージョンを検出して、報告済みのバグがそのバージョンで修正済みかどうかによって追加の問題回避処理などを行うかどうかを自動的に決定[3]
ツールの性質と構造の関係により、パッケージの削除に関する機能は提供されない。
動作に必要なパッケージ
Winetricksをディストリのパッケージとしてインストールする場合は以下のソフトウェアは自動的にインストールされる[4]が、そうでない場合は以下のパッケージがインストールされている必要がある。特に書庫の展開ツールは標準で入っていない場合があるので、入っているかを確認する。
- Wine本体
- ダウンロードツール (
wget
,curl
,aria2c
のいずれか) - 書庫の展開ツール (
unzip
,cabextract
,7z
,unrar
)[7]
Winetricksの実行時にはWineが実行されるため、見出し:パッケージ名の一覧を取得するだけの場合であってもWine環境の作成や更新の処理が行われてしばらく時間がかかることがある。
以下はGNU/Linuxでは特に追加でインストールする必要のないもの。
- Bシェル
- ダイジェストのチェック用ツール (coreutilsの
sha1sum
もしくはOpenSSLのopenssl
)
これらに加えて、一部のパッケージではsudo
が使われることがある。また、引数を指定して端末やスクリプトから実行するのではなくGUIメニューから操作を行う場合はzenity
も必要。[8]
ダウンロード
ディストリのパッケージになっている場合があり、Debian/Ubuntuなどでは “winetricks” というパッケージ名でインストールできるが、最新バージョンではない場合がある。
本家からダウンロードする場合はプロジェクトページ以下にある
などから入手する。
Wine環境の扱い
WindowsのDLLやWineの設定などのパッケージは
上記記事で扱ったWine環境のディレクトリを対象としてインストール(適用)されるが、アプリケーションのパッケージをインストールする場合は個別に
- 環境変数WINE_PREFIXESが定義済みの場合:
${WINE_PREFIXES}/wineprefixes/
- 同環境変数が未定義かつXDG_DATA_HOMEが定義済みの場合:
${XDG_DATA_HOME}/wineprefixes/
- いずれも未定義の場合:
[ホームディレクトリ]/.local/share/wineprefixes/
のディレクトリ以下にパッケージごとの専用のWine環境が作成される。
Winetricksでインストールされたアプリケーションを削除するにはそのWine環境のディレクトリごと削除すればよい。
キャッシュのディレクトリ
自動的にファイルがダウンロードされるパッケージでは、一度ダウンロードされたファイルが
- 環境変数XDG_CACHE_HOMEが未定義の場合:
[ホームディレクトリ]/.cache/winetricks/
- 環境変数XDG_CACHE_HOMEが定義済みの場合:
${XDG_CACHE_HOME}/winetricks/
の下のパッケージ名ごとのディレクトリへ保存される。
XDG_CACHE_HOMEをtmpfsのファイルシステム内(/dev/shm/
の中など)にしている場合は次の起動時にはダウンロードしたファイルが無くなってしまうため、Winetricks使用時にのみこの値を同ツールのキャッシュ保存用のディレクトリにすることを推奨する。[9]
(XDG_CACHE_HOMEがtmpfsファイルシステム内の場合における実行例) $ XDG_CACHE_HOME=/path/to/cachedir winetricks ...
コマンドとしての使い方
パッケージ名の一覧を取得
一覧の生成には少し時間がかかる。一覧内に “downloadable” とあるものは自動的にダウンロードが行われる。
(全パッケージの一覧・lessで参照) $ winetricks list-all | less (全パッケージの一覧・GUIで参照) $ winetricks list-all | zenity --text-info --title "全パッケージ名の一覧" (DLLの一覧・lessで参照) $ winetricks dlls list | less (DLLの一覧・GUIで参照) $ winetricks dlls list | zenity --text-info --title "DLLのパッケージ名の一覧" (フォントの一覧・lessで参照) $ winetricks fonts list | less (フォントの一覧・GUIで参照) $ winetricks fonts list | zenity --text-info --title "フォントのパッケージ名の一覧"
上に挙げた以外にも1つ目(“list” の1つ前)の引数を
- apps (アプリケーション)
- benchmarks (ベンチマークソフト)
- games (ゲーム)
- settings (設定適用を行うパッケージ)
とすることで、それぞれの種類ごとの一覧が得られる。
手動でファイルをダウンロードする必要があるパッケージを一覧
一部パッケージは手動で指定Webページからファイルをダウンロードして見出し:キャッシュのディレクトリ内のパッケージ名のディレクトリへ配置する必要がある。その際のWebページは別途起動されるWebブラウザで、配置するディレクトリはGUIファイルマネージャで自動的に開かれるが、どのアプリケーションで開かれるかは(Wineではなく)手元のOSのパッケージのインストール状況などによる。
下を実行すると手動ダウンロードが必要なパッケージ名が一覧できる。
(手動ダウンロードが必要なパッケージ一覧・lessで参照) $ winetricks list-manual-download (手動ダウンロードが必要なパッケージ一覧・GUIで参照) $ winetricks list-manual-download | zenity --text-info --title "手動ダウンロードが必要なパッケージ名"
インストール済みパッケージを一覧
下を実行するとインストール済みのパッケージが一覧できる。1つもない場合は何も表示されない。
(インストール済みパッケージ一覧・lessで参照) $ winetricks list-installed (インストール済みパッケージ一覧・GUIで参照) $ winetricks list-installed | zenity --text-info --title "インストール済みのパッケージ名"
WINE_PREFIXESやWINEPREFIXといった環境変数が出力結果に反映される点には注意が必要。
パッケージを指定してインストールや設定を行う
引数にインストールしたいパッケージ名を並べて実行すると、それらがインストールされる。
$ winetricks [パッケージ名...]
インストーラを非対話的にする
インストーラを実行してインストールするパッケージではインストーラを手動で操作して作業を進めていくが、非対話的に進める[10]ためのオプション指定に対応しているインストーラもあり、Winetricksに-q
(--unattended
)オプションを付けることでパッケージによっては非対話的にインストール作業ができるようになる。[11]ただ、パッケージによってはファイルの展開処理の進捗状況ダイアログが表示されたりすることはある。
(インストーラを非対話的に実行してインストール) $ winetricks -q [パッケージ名...]
GUIメニューの使用
zenity
がインストールされている状態で引数を付けずにWinetricksを実行すると、ラジオボタンの選択肢を選択して “OK” か “キャンセル” ボタンを押す形で操作するGUIメニューが表示される。
“OK” ボタンを押すと項目を選択して次のメニュー階層へ進み、 “キャンセル” ボタンを押すと手前のメニュー階層に戻る。
最上位のメニュー
下は最上位の階層のメニュー。ここで “キャンセル” を押すと終了する。
項目 | 説明 |
---|---|
View help | Webブラウザでヘルプを参照 |
Install an app | 専用のWine環境を作成してアプリケーションをインストール |
Install a benchmark | 同様にベンチマークソフトをインストール |
Install a game | 同様にゲームをインストール |
Select the default wineprefix | 操作対象のWine環境を環境変数WINEPREFIX(未定義の場合は[ホームディレクトリ]/.wine/ )にして次のメニューへ |
(Select [Wine環境]) | 操作対象のWine環境を項目のものにして次のメニューへ |
Enable(Disable) silent install | インストーラを非対話的にする(しない) |
Show(Hide) broken apps | Wine上の動作に問題のあるアプリケーションを表示(隠す) |
Wine環境の選択に関する項目は、アプリケーションがインストールされたWine環境がある分だけ表示される。
Wine環境選択後のメニュー
Wine環境のいずれかを選択すると下のメニューになり、その環境に対しての操作が行える。ダイアログのタイトルにはWine環境の場所が表示される。
項目 | 説明 |
---|---|
Install a Windows DLL or component | WindowsネイティブのDLLなどをインストール |
Install a font | フォントをインストール |
Change settings | Wineの設定を変更する |
Run winecfg | winecfg を実行 |
Run regedit | レジストリ エディタを実行 |
Run taskmgr | タスク マネージャを実行 |
Run a commandline shell | Wine環境内で端末のシェルを実行 |
Browse files | ファイルマネージャでWine環境の最上位ディレクトリを開く |
Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX | Wine環境(最上位ディレクトリ)以下を全削除 |
統計情報の送信について
GUIメニューを使用すると、一度 “Would you like to help winetricks development by letting winetricks report statistics? You can turn reporting off at any time with the command 'winetricks –optout'” という質問が表示され、どのパッケージがインストールされた/ないかの統計情報の送信を行うかどうかが選択できる(希望しない場合は “いいえ” を選択する)。これは後で “winetricks
--outin
” を実行することで有効化したり “winetricks
--outout
” で無効化したりできる。
この設定は見出し:キャッシュのディレクトリの中のtrack_usage
というファイルに保存され、このファイルがある限りは再度質問は出ない。
- Wine 1.6.2
- Winetricks 20150706
wine
コマンドの場所libwine.so.[数字]
のあるディレクトリkdialog
で一部機能を代替できる場合もあるが、こちらを推奨