Windows 10 上の Wine。動作します

ワイン - Unix コンピュータ上で Windows アプリケーションを実行するためのプログラム。

Windows で Wine を実行することは、少なくとも 2004 年に誰かが Cygwin で Wine をコンパイルしようとしたとき以来、「やらなければならないことをする必要がないから」という心の琴線に従うファンにとって夢でした。 ホストシステムのレジストリを破壊した.

言い訳: 「最新の Windows で適切に動作しない古いアプリはどうなりますか?」しかし、私たちはそれを理解しています 本当 理由は「私は自分の芸術のために長い間苦しんできました。今度はあなたの番です。」

2008 年末、私は強迫観念に襲われ、(私だったと思いますが)あるページを作成しました。 WineOnWindows ワインウィキにあります。 要するに: すべてが Cygwin、MinGW、または Windows Services for Unix を通じて機能するため、これはまったく不可能でした。 現在のページ それ以上の成功はありません。

Windows 10 では Linux 用 Windows サブシステムが導入され、Ubuntu は Microsoft Store から簡単にダウンロードできます。その結果、DISPLAY 環境変数を手動で設定しない限り、私たちの愚かなアイデアは実際に自動的に実装されます。

それはまだ気が遠くなるほど役に立たない。 Wine は 64 ビット Windows アプリケーションでのみ動作します。つまり、Windows 10 自体に付属するすべてのアプリケーションでも動作しません。

(元のプロジェクトは、誰かが Windows 97 で Encarta 10 を実行できなくなった後に始まりました。したがって、真のマニアックなソリューションと同様、ユーザーの元々の問題を実際に解決するわけではありません)。

しかし、私はもう一度強調したいと思います。 今ではそれは簡単に機能します。私は素晴らしいプロジェクトを実現した狂った天才ではありません。私はこの事実を最初に公に発表したようです。

こんな愚かなことをどうやってやるのか

1. 64 ビット版の Windows 10 をお使いですか?これは WSL を備えた唯一のバージョンです。

2. WSLをインストールします。 [コントロール パネル] -> [アプリケーション] -> [プログラムと機能] -> [Windows の機能のオンまたはオフ] を選択します。 「Linux 用 Windows サブシステム」チェックボックスをオンにします。 Windows を再起動します。

3. Microsoft Store にアクセスし、Ubuntu をインストールします (WSL は主に Ubuntu を実行するために作成されました)。 Ubuntu 18.04 LTSをインストールしました。 Ubuntu を開くと、bash ターミナルが表示されます。

4. bash コマンドラインから以下をインストールします。

sudo dpkg --add-architecture i386
sudo apt update; sudo apt upgrade
sudo apt install wine-stable

必要に応じて、Wine の最新バージョンをインストールできます 愚かさに苦しむ (wine-devel >=4.5 に必要で、Ubuntu にはまだ含まれていない XNUMX つの新しいライブラリを忘れないでください。)これが機能するかどうか教えてください。

5. 自分のものに追加 .bashrc この行:

export DISPLAY=:0.0

おそらく、これを現在の bash ウィンドウでも実行するとよいでしょう。

6. VcXsrv をインストールする、Windows 用にコンパイルされた xorg の適切にパッケージ化されたバージョンです。最新バージョンの実行可能ファイルを取得して実行するだけです。 [スタート] ボタンと XLaunch を使用して X サーバーを起動します。彼はデフォルトについて説明しますが、ほとんどはそのままにしておきます。念のため「アクセス制御を無効にする」にチェックを入れておきました。設定を保存します。

6 X サーバーが正しく構成されていることを確認したい場合は、次の手順を実行します。 sudo apt install x11-apps 実行します xeyes 80 年代と 90 年代に簡単に戻ってみましょう。

7. 彼自身 wine 機能しないので 32 ビット バイナリは WSL では実行できません。 64 ビット Windows 10 ではエラーがスローされます /usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error。どうやらこれは WSL 2で修正されました.

それまでの間、Wine でメモ帳を起動してみましょう。

wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe

Windows 10 上の Wine。動作します

やること: 32ビットのサポート。待たなければなりません WSL2出力。古代の Win16 プログラムが動作するかどうかは疑問です。たとえ Windows 自体で動作しなくなったとしても、理論上は Wine で動作するはずです。

qemu 経由の 32 ビット アプリケーション

感謝 匿名のコメンテーターに、32 ビット アプリケーションの起動へのアプローチ方法を提案しました。

sudo apt install qemu-user-static sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic 'x7fELFx01x01x01x03x00x00x00x00x00x00x00x00x03x00x03x00x01x00x00x00' --mask 'xff ' xffxffxffxffxffxffxfcxffxffxffxffxffxffxffxffxf8xffxffxffxffxffxffxff' sudo サービス binfmt-support 開始

そして今、私たちは次のことができるようになりました:

fun@DESKTOP-7F6DU8P:~$ wine --version wine-3.0 (Ubuntu 3.0-1ubuntu1)

ただし、Encarta 97 はまだ機能しません。

fun@DESKTOP-7F6DU8P:/mnt/e$ wine SETUP.EXE wine: アドレス 0x0df:11x0c00002 (スレッド 11) の 0011xffffffff への読み取りアクセスで未処理のページ フォールトが発生し、デバッガーを開始しています... 0011:err:seh:start_debugger を実行できませんでしたstart debugger ("winedbg --auto 15 108") (2) winedbg または別のデバッガーのセットアップ方法については、Wine 開発者ガイドを参照してください。

詳しい人向け: file 彼は話します SETUP.EXE: MS-DOS executable, NE for MS Windows 3.x, したがって、まれな 16 ビット プログラムにまで進む必要があります。

Encarta 97 は Linux 上の Wine 4.13 にインストールして問題なく動作しますが、Windows 4.13 上の 10 ではまだ動作しません。

fun@DESKTOP-7F6DU8P:~$ wine /mnt/e/SETUP.EXE Xlib: ディスプレイ「:0.0」に拡張子「MIT-SHM」がありません。 Xlib: ディスプレイ「:0.0」に拡張子「MIT-SHM」がありません。 0009:err:process:__wine_kernel_init ブート イベント待機タイムアウト 001d:err:process:__wine_kernel_init ブート イベント待機タイムアウト wine: アドレス 0x0cf:11x0c00002 (スレッド 11e) の 001xffffffff への読み取りアクセスで未処理のページ フォールトが発生し、デバッガを開始しています...001e :err:seh:start_debugger デバッガーを開始できませんでした ("winedbg --auto 28 152") (2) winedbg または別のデバッガーのセットアップ方法については、Wine 開発者ガイドをお読みください。 c: Win001Mutex" スレッド 0d で待機がタイムアウトしました。7e によってブロックされ、再試行しています (6273 秒) Xlib: ディスプレイ ":0" に拡張子 "MIT-SHM" がありません。 wine-gecko をロードできませんでした。 HTML レンダリングは無効になります。 16e:err:seh:raise_Exception 未処理の例外コード c001 フラグ 001 アドレス 60x0.0b001a0000005abc wine クライアント エラー:0e: 書き込み: 不正なファイル記述子

もちろん彼は与えます 異なります 複数の実行でエラー メッセージが表示される...

出所: habr.com

コメントを追加します