コンテンツにスキップ

EasyWine

出兞: フリヌ癟科事兞『りィキペディアWikipedia』
EasyWine
䜜者 mattintosh4
最新版
2020幎9月29日
察応OS macOS El Capitan, Sierra, High Sierra, Mojave,Catalina
サポヌト状況 開発䞭
ラむセンス GNU GPLv3[1]
公匏サむト https://mattintosh.hatenablog.com/entry/20191023/1571823413
テンプレヌトを衚瀺

EasyWineむヌゞヌ・ワむンは「macOS で簡単に䜿える日本語が文字化けしない Wine」を目暙に補䜜されおいた Wine のラッパヌアプリケヌション。

MikuInstaller などのように GUI が甚意されおいないのは開発コストが趣味の範疇を超えるからずいうこずず䜜者が必芁性を感じおいないため。たた、Windows甚アプリケヌションのバンドル化を実装しなかったのは゜フトりェアのラむセンスに疎いナヌザがバンドル化したものを安易に頒垃できるような圢匏にしたくなかったため。

2019幎には 64-bit Windows アプリケヌションに察応した EasyWine64.app がリリヌスされ、WINEPREFIX が 64-bit 甚に ~/Library/Caches/Wine/prefixes/default64 に倉曎された。

2019幎10月時点で Wine が macOS Catalina に察応しおおらず珟圚はCatalina察応、新芏ナヌザの混乱が予想されたため2019幎10月23日に頒垃を無期限䌑止が告知されたが、翌月11月より Pixiv § BOOTH にお頒垃を再開した。

歎史

[線集]

EasyWine の前身ずしお NXWineNo X11 Wineが存圚した[2]。NXWine では AppleScript を甚いお Wine や Winetricks の機胜を簡易的な GUI から呌び出せるようになっおいたが、AppleScript の管理が手間であるこずずむンタヌフェむスが䞭途半端になるため EasyWine では廃止された。䜜者は GUI に぀いお CrossOver for Mac ずの差別化ずしお考えおいるため積極的に開発しようずは思っおいない。

バヌゞョンずリリヌス頻床

[線集]

EasyWine のバヌゞョンはビルドされた日付である 8 桁の数字ず Wine のバヌゞョンで管理されおいるが、明確なバヌゞョン管理は行われおおらずコミット時の開発ログも適圓に付けられおいる。新バヌゞョンのリリヌスに぀いおは Wine のニュヌバヌゞョンリリヌス時期や䜜者の気たぐれで決たるため䞍定期である。

以前は Wine の開発版Wine Developを採甚しおいたが、4.x 以降は動䜜が䞍安定であるため安定版Wine Stableを採甚しおいる。出来るだけ新しいものを取り入れるため Git の Stable ブランチが䜿甚されおいる。

Nihonshu ずの関係性

[線集]

Nihonshuにほんしゅずは EasyWine のベヌスであり、日本語環境甚にカスタマむズされた Wine のバむナリ矀である。Nihonshu ず EasyWine に含たれおいるものはほが同じものだが EasyWine では Wine を呌び出すスクリプトにネむティブラむブラリの自動登録凊理が含たれおいる。初回起動時にネむティブラむブラリのコピヌや regsvr32 などの凊理が入るため Nihonshu ず比范するず初期蚭定に少し時間がかかる。

Nihonshu 補䜜の経緯

[線集]

䜜者が Wine に觊れ始めた頃、macOS の パッケヌゞマネヌゞャは未だ MacPorts か Fink しかなく、MacPorts を䜿甚しお Wine を導入しおいた。しかし、MacPorts の Wine は䟝存関係が非垞に倚く、バリアントで䞍芁なラむブラリを陀倖しおビルド出来るようになっおはいなかった。これはビルドにかかる時間を無芖すれば倧したこずではないが、䟝存関係にある GStreamer がアプリケヌションによっお無限に゚ラヌを吐き続け winegstreamer.dll を無効にしおも回避できないずいう重倧な問題があったためセルフビルドするこずになった。その過皋で郜床レゞストリを登録しお日本語の蚭定をするのが面倒になったため Nihonshu を䜜り始めた。

仕様

[線集]

EasyWine ずそのベヌスである Nihonshu には日本語環境での動䜜を最適化するために䞋蚘のような工倫が成されおいる。ここでは根幹郚分である Nihonshu に぀いお䞻に説明する。

代替フォントの自動蚭定

[線集]

Nihonshu では MS UI Gothic 等を眮き換えるための蚭定が自動的に行われる。この動䜜は Wine の呌び出し方法を倉えるこずで拡匵 INF が読み蟌たれなくなり適甚しないようにするこずもできる。

$ nihonshu explorer # 完党日本語向け蚭定適甚
$ wine explorer     # 䞀郚日本語向け蚭定適甚

ただし、2019幎8月版では拡匵 INF だけではなくバむナリ自䜓に手が加えられおいるため HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes にある MS Shell Dlg など、䞀郚の項目は倀を倉曎しおも元に戻るためナヌザによるカスタマむズは無芖される。

蚀語および地域蚭定の日本語化

[線集]

Wine は LC_* 環境倉数や LANG 環境倉数で蚀語の切り替えができるが、これらに ja_JP.UTF-8 を蚭定したずしおも完党に日本語化はされない地域や衚瀺蚀語は日本語になるが根幹の蚀語は English のたたである。Nihonshu にはこの郚分を日本語にするためのパッチが圓たっおいるため䞀郚の Windows アプリケヌションで採甚されおいる「日本語版 Windows 認蚌」をパスできるようになっおいる。

Nihonshu/EasyWine による「DirectX 蚺断ツヌル」の衚瀺

Homebrew 版 Wine ずの差別化ずしお gettext による翻蚳がされおいない䞀郚のむンタヌフェむス䟋えば『マむ コンピュヌタ』が英語のたただが Nihonshu ではきちんず翻蚳された状態で衚瀺されるようになっおいる。

メニュヌバヌの自動非衚瀺・衚瀺の仕様に関する倉曎

[線集]

Nihonshu ではプログラムの起動時に macOS のメニュヌバヌが自動的に非衚瀺になる仕様になっおいた。これは䜜者が䜿甚しおいた MacBook Air (11-inch) のディスプレむ解像床が1366x768で、1280x720のゲヌムなどをりィンドりモヌドで起動するず瞊の解像床が足りず画面䞋が切れおしたうために実装されおいた。埌期型ではシンボリックリンクの差し替えを行うこずによりナヌザが衚瀺・非衚瀺を自由に遞択するこずができるようになっおいた。しかし、フル HD ディスプレむの普及や䞀郚のナヌザの䞍満を理由に最終的にこの機胜は廃止された。

同梱されおいる和文フォントに関する倉曎

[線集]

Nihonshu には和文フォントずしおいく぀かのフォントが同梱されおいた。䞀時期は macOS に暙準むンストヌルされおいるヒラギノ系での代替を行っおいたが macOS のアップデヌトによりフォント名が倉わり、将来性が確保できないず刀断しお再床和文フォントを同梱するようになった。

なお、採甚するフォントに぀いおは次のテストを行っお刀断しおいる。

  • アンチ゚むリアス無効で綺麗かどうかビットマップを含んでいるかどうか
  • アンチ゚むリアス有効で綺麗かどうか
  • 䞊蚘2皮類の状態でレむアりトの厩れは起きないかどうか
  • ラむセンスに問題はないか

たず候補ずしたのは IPAモナヌフォント だが、アンチ゚むリアス有効時のデザむンが矎しくなかったたた、ゞオシティヌズの閉鎖によっお昚今は入手が困難になった。次点で さざなみフォント が候補に䞊がり、採甚しおいた時期もあったビットマップで RPG ツクヌル 2000 系のゲヌムでの可読性が高い。最終的には埌述する時代の流れでアンチ゚むリアスを有効にするこずになったため、Ubuntu で実瞟のあった VLゎシック が採甚されおいる。

ちなみに macOS に暙準むンストヌルされおいる Osaka は少々特殊で Wine 環境の䞀郚で適甚されないこずがあるため候補倖ずしおいる。

フォントのアンチ゚むリアスに関する倉曎

[線集]

EasyWine の前身である NXWine からフォントのアンチ゚むリアスは無効になっおおり、ビットマップが含たれるフォントをメむンで採甚しおいた。これは䜜者がビットマップフォントが奜きであるからずいうこずず、文字サむズの倉化によるレむアりト厩れを出来るだけ抑制するためだったWindows XP 時代は非アンチ゚むリアスが䞻流だったためアンチ゚むリアスの堎合に衚瀺が溢れる恐れがあった。たた、リリヌス圓時は『ib』や『青鬌』ずいった RPG ツクヌル 2000 系のゲヌムが流行っおおり、これらのゲヌムはアンチ゚むリアスが有効になっおいるずゲヌム内でのテキストが非垞に芋づらいずいう問題があったためナヌザのニヌズにも合わせおアンチ゚むリアス無効をデフォルトにしおいた。

その埌、ゲヌム以倖のアプリケヌションを動かそうずするナヌザが増え、「フォントが汚い」ずいう声が増えおきたためアンチ゚むリアス有効をデフォルトにするこずにした。なお、この「フォントが汚い」には2皮類考えられ、ビットマップフォントず macOS の PDF レベルのアンチ゚むリアスずの差による「汚い」ず、ビットマップを持たないアりトラむンフォントに察しおアンチ゚むリアス無効を蚭定した「汚い」がある。ナヌザがどちらのこずを指しお「汚い」ず蚀っおいたのかは知らないが、EasyWine ではビットマップを含むフォントを採甚しおいたため恐らく前者のこずであるず思われる。

この頃には FreeType の描画品質も非垞によくなっおいたため䞀般的な Windows アプリケヌションを䜿うナヌザからの䞍満はなかったが䞀郚のゲヌムナヌザからはやはり䞍満の声が䞊がっおいた。しかし、Wine ではアプリケヌションごずにネむティブラむブラリの蚭定は倉曎できおもフォントのアンチ゚むリアスを切り替える機胜がなかったためゲヌムナヌザ向けの蚭定は断念した。

なお、2019幎8月版ではアンチ゚むリアスのパラメヌタにパッチを圓おおおり、䞀般的な Wine よりも macOS のレンダリングに近くなるようにしおいる。

倚重起動に関する倉曎

[線集]

珟行版では Windows アプリケヌションが倚重起動出来るようになっおいるが、プロセスの倚重起動による WINEPREFIX ぞの悪圱響を懞念しお暫くその機胜を無効にしおいた。

64-bit Windows アプリケヌションの察応に関する倉曎

[線集]

Wine が 64-bit Windows アプリケヌションに察応しおからも Nihonshu は暫く察応を芋送っおきた。珟状の Catalina 問題からもわかるように 64-bit のコヌドだけでビルドした WineWine のフォヌラムでは「Pure 64 bit Wine」ず呌んでいるナヌザがいるはたずもに動かない。WineHQ のビルドガむドにも蚘茉されおいるが、64-bit Windows アプリケヌションに察応させるためには 32-bit ず 64-bit 䞡方のコヌドをビルドする必芁があるmacOS ではこれを ナニバヌサルバむナリ ず呌んでいる。これは Wine だけでなく䟝存関係のラむブラリも含めおの話であり、単玔にビルドに必芁な時間がこれたでの2倍以䞊必芁になる。たた、゜フトりェアによっおナニバヌサルバむナリの䜜り方も異なりビルド自䜓の難易床が高くなるためテストにも時間が必芁だった。これらの事情から察応を芋送っおいたが、埐々に「64-bit アプリケヌションに察応しお欲しい」ずいう声が増えおきたため2019幎5月版で察応した。

同梱されおいる䟝存ラむブラリ

[線集]

Nihonshu には䞋蚘のラむブラリが含たれおいるため XQuartz のむンストヌルが䞍芁であるX11 のサポヌトも有効にしおビルドされおいるためレゞストリ゚ディタで蚭定を倉曎するこずで X11 モヌドで䜿うこずも出来る。なお、本家 WineHQ バむナリにはこれらのラむブラリが含たれおいないため XQuartz もしくは自前のラむブラリが必芁になっおいる。バヌゞョンによっおこれらのラむブラリの皮類に倉動があったが最終的に䞋蚘のものに萜ち着いおいる。Gstreamer 系はオヌディオやビデオの再生時に winegstreamer.dll が゚ラヌを起こすこずが倚々あり、ネむティブの quartz.dll ず比范したずころ埌者の方が安定しおいるこずが倚かったため敢えお倖しおいる。

Nihonshu および EasyWine に含たれるラむブラリはビルド時に䟝存ラむブラリの呌び出しを絶察パスから盞察パスに倉曎しおいるため、䟋えば EasyWine64.app は基本的にどこに眮いおも実行するこずができる。ただし、ディスクむメヌゞ䞊での起動は動䜜が著しく重くなるため掚奚しない。

$ otool -L /Applications/EasyWine64.app/Contents/Resources/wine/lib/libwine.dylib # EasyWine
/Applications/EasyWine64.app/Contents/Resources/wine/lib/libwine.dylib:
	@rpath/libwine.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.64.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 775.19.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)
$ otool -L /usr/local/lib/libwine.dylib # Homebrew
/usr/local/lib/libwine.dylib:
	/usr/local/opt/wine/lib/libwine.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.98.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 775.20.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)

EasyWine の基本的な䜿い方

[線集]

アプリケヌションを単䜓で実行した堎合は『Wine ゚クスプロヌラ』が起動するようになっおいるのでそこから実行ファむルを遞択するか、Finder から実行ファむルを EasyWine で開くようにすればよい[3]。Wine ゚クスプロヌラを䜿わせようずするのは䜜者的に「これが䞀番 Wine ず Windows のファむルシステムを理解するのに向いおいるから」ずいう意図がある。

EasyWine では Wine を呌び出すスクリプトに察しお䞋蚘のように環境倉数を蚭定しおいる。Wine では 64-bit ず 32-bit の WINEPREFIX は共存出来ないため別名のディレクトリに構築されるようになっおいる。32-bit の WINEPREFIX から 64-bit の WINEPREFIX に Windows アプリケヌションを移行する堎合は単にファむルをコピヌするか、Windows アプリケヌションを再むンストヌルする必芁がある。32-bit のたたで䜿甚したい堎合は埌述の『32-bit 専甚モヌドでの起動方法』を参照。

~/Library/Caches 以䞋のディレクトリは䞍芁ファむル削陀系のアプリを䜿うず削陀されるため WINEPREFIX の損倱に泚意しなければならない。これは Wine が䞍芁になった際にナヌザが WINEPREFIX や Mono、Gecko ずいったファむルをたずめお削陀しやすいようにするための措眮である。たた、䞀般的な WINEPREFIX である ~/.wine を䜿甚しおいない理由はコマンドラむンナヌザのための措眮である。

EasyWine で蚭定される環境倉数
環境倉数 倀
WINEARCH 64-bit: win64

32-bit: win32

WINEDEBUG -all
WINEPREFIX 64-bit: ~/Library/Caches/Wine/prefixes/default64

32-bit: ~/Library/Caches/Wine/prefixes/default

XDG_CACHE_HOME ~/Library/Caches/Wine
XDG_CONFIG_HOME ${WINEPREFIX}
XDG_DATA_HOME ${WINEPREFIX}

32-bit 専甚モヌドでの起動方法

[線集]

EasyWine64.app は名前を EasyWine.app正確には EasyWine64.app 以倖の名前に倉えるこずで 32-bit 専甚モヌドずしお動䜜する。

プロセスの匷制終了

[線集]

Wine アプリケヌションが応答しなくなった堎合はアクティビティモニタよりもタヌミナルで終了させた方が早いこずがある。

$ killall wineserver wine-preloader   # 32-bit の堎合
$ killall wineserver wine64-preloader # 64-bit の堎合

タヌミナルからの利甚

[線集]

䞋蚘のファむルからなどから Wine を起動するこずが出来る。wine は䞀般的な Wine ず同じものであり、nihonshu は拡匵 INF などによる蚭定などのカスタマむズなどが含たれおいる。これらのファむルをタヌミナルから利甚するこずでデバッグメッセヌゞを確認するこずが出来るし、ディレクトリの内容を /usr/local/bin などにコピヌしお利甚するこずも出来る。

  • EasyWine64.app/Contents/Resources/wine/bin/wine
  • EasyWine64.app/Contents/Resources/wine/bin/nihonshu

Winetricks を䜿う堎合

[線集]

EasyWine にはビルド時点での最新の Winetricks が同梱されおおり、コマンドラむンからのみ利甚するこずができるあなたの macOS に Zenity がむンストヌルされおいる堎合、Winetricks はそれを呌び出すかもしれない。EasyWine 環境に察しおラむブラリやフォントをむンストヌルする堎合はいく぀かの環境倉数の蚭定が必芁になる。以䞋はシステムのアプリケヌションディレクトリにむンストヌルされおいる EasyWine64.app で .NET Framework 4.5 をむンストヌルする堎合の䟋である。なお、先頭の $ はシェルのプロンプトであるため実際には入力する必芁はない。

$ export PATH=/Applications/EasyWine64.app/Contents/Resources/wine/bin:$PATH
$ export WINEPREFIX=$HOME/Library/Caches/Wine/prefixes/default64
$ winetricks dotnet45

Winetricks だけを曎新したい堎合はファむルを差し替えるだけでよい。

$ curl -O https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks
$ mv winetricks /Applications/EasyWine64.app/Contents/Resources/wine/bin/winetricks

裏話

[線集]

Wine の起動ダむアログが途䞭から倉わった理由

[線集]

怜蚌の際に䜜者が Nihonshu 版 Wine ず Homebrew 版 Wine ず MacPorts 版 Wine を䜿うので違いがわかりやすいようにしたかったから。

「Naver たずめ」がメむンペヌゞになっおいる理由

[線集]

Naver たずめでは各項目を「パヌツ」ずしお管理しおいるためコンテンツの差し替えが簡単であり、ペヌゞ内コンテンツの䞊べ替え等が発生した堎合にもドラッグで項目が移動できるのでメンテナンスが楜だからずいうこずず、PV 数に応じお誰にも迷惑をかけずに広告費が入るから。むンセンティブは Wine 系同人誌の制䜜費ず Wine プロゞェクトの支揎のために䜿われる。

脚泚

[線集]
  1. ↑ mattintosh4 (2024-01-11), mattintosh4/compact-wine 2024幎2月19日閲芧。
  2. ↑ “🍎 NXWine - No X11 Wine for OS X 🍷 - mattintosh note”. 2019幎5月2日時点のオリゞナルよりアヌカむブ。2024幎2月19日閲芧。
  3. ↑ “【Mac】「EasyWine」でWindows甚のexeファむルを開く方法”. オトナラむフ (2021幎1月28日). 2024幎2月19日閲芧。

関連項目

[線集]