フル機能のWindows PCに別れを告げる?WinAppsが解決策になるかもしれない(少しの調整で)

数ヶ月前に Linuxを本気で試してみました。 私のパソコンの1台で、あっという間にLinuxの大ファンになってしまいました。最近はWindowsよりもLinuxで過ごす時間の方が長いのですが、もちろん、それができない理由もあります。Adobe Lightroomのようなアプリがないのは大きな問題で、Microsoft Officeのようなアプリでも同じような気持ちになる人は多いでしょう。

WinApps を通じて Windows アプリケーションが実行されている AnduinOS デスクトップを表示する画面

どうぞ Winアプリ最近友人から聞いたプロジェクトです。WinAppsの目的は、WSL経由でWindows上でLinux GUIを使うことに似ていますが、その逆です。WinAppsを使えば、WindowsアプリケーションをLinux上で、まるでOSの一部であるかのように実行できます。多少の手間はかかりますが、Windowsを二度と使わなくて済むようになるかもしれない素晴らしいアイデアです。

WinApps はどのように機能しますか?

WinAppsは、WindowsアプリケーションをLinux環境内でネイティブアプリケーションのようにシームレスに実行できるようにする高度なテクノロジーに基づいています。簡単に言うと、WinAppsはLinuxシステムと、アプリケーションをホストする仮想またはリモートのWindowsマシンとの間に接続を作成します。

仕組みをもっと詳しく見てみましょう:

1. サーバー (Windows): Linuxで実行したいアプリケーションがインストールされたWindowsマシン(仮想マシンまたはリモート物理マシン)が必要です。このマシンは「サーバー」として機能します。
2. RDP プロトコル: WinAppsは、リモートデスクトッププロトコル(RDP)を使用して、LinuxマシンとWindowsサーバー間の安全な接続を確立します。RDPは、ユーザーインターフェースをあるマシンから別のマシンに転送するための、広く普及している信頼性の高いプロトコルです。
3. シームレスな統合: WinAppsは、Linuxデスクトップ上にWindowsアプリケーション用の個別のウィンドウを作成します。これらのウィンドウは、他のネイティブLinuxアプリケーションと同様に動作します。移動、サイズ変更、タスクバーへのピン留め、さらには使い慣れたキーボードショートカットの使用も可能です。
4. リソースの共有: WinAppsを使用すると、オペレーティングシステム間でリソースを共有できます。例えば、LinuxアプリケーションからWindowsファイルシステムにアクセスしたり、その逆を行ったりできます。また、クリップボードを共有することで、アプリケーション間でテキストや画像をコピー&ペーストすることもできます。
5. パフォーマンス: パフォーマンスは、ネットワーク速度やWindowsデバイスの処理能力など、いくつかの要因に左右されます。ただし、ほとんどの場合、日常的な使用には十分なパフォーマンスが得られます。

つまり、WinAppsは、Linux環境の快適さを犠牲にすることなく、お気に入りのWindowsアプリケーションを活用できるスマートなソリューションです。シームレスで統合されたユーザーエクスペリエンスを提供するため、Linux上でWindowsアプリケーションにアクセスする必要がある開発者やユーザーにとって魅力的な選択肢となります。

仮想マシンの力

Linux内で実行されているWindows仮想マシンのスクリーンショット。LinuxアプリケーションランチャーにWindowsアプリケーションが表示されます。

Linux上でWindowsを実行することは、 仮想マシンしかし、WinAppsが他と一線を画すのは、この基盤技術を活用し、よりスムーズなエクスペリエンスを提供するために適応させている点です。通常、仮想マシンでは、アプリケーションにアクセスするためにオペレーティングシステム全体の実行と操作が必要です。WinAppsでは、Linuxデスクトップ環境内で各アプリケーションを個別に実行できます。

これを実現するために、WinAppsはDocker、Podman、またはlibvirtを使用してWindowsインストールをシミュレートします。その後、FreeRDPを利用して仮想マシンへのリモートデスクトップ接続を提供します。WinApps自体は仮想マシン内にインストールされたアプリケーションへのリンクを提供し、Linuxホスト上のアプリケーションランチャーに表示されます。FreeRDPのおかげで、これらのアプリケーションのいずれかが起動されると、リモートデスクトップセッションはアプリケーションウィンドウのみをキャプチャし、ネイティブで実行されているかのようにLinuxデスクトップ内でサイズ変更できるようにします。

先ほど述べたように、このアプローチはWSLを介してLinuxアプリケーションをWindows上で実行する方法と非常に似ていますが、統合GPUをゲストOSに簡単に渡すことができないなど、いくつかの制限があります。使用する仮想化バックエンドによっては、ディスクリートGPUを渡すことは可能です。

FreeRDPはX11デスクトップで最も効率的に動作します。つまり、新しいWaylandを使用している場合は、いくつかのバグが発生する可能性があります。WinAppsについて教えてくれた友人は、Waylandのパフォーマンスを向上させるソリューションの開発に興味があると言っていたので、この点に関しては進展が見られることを期待しています。

WinApps セットアップ:入門ガイド

WinAppsは、Linux環境内でWindowsアプリケーションをシームレスに実行できる革新的なソリューションです。開発者、一般ユーザー、あるいはLinuxでは利用できない特定のWindowsアプリケーションにアクセスしたいだけの方など、あらゆる方にとって、WinAppsは効率的かつ便利なソリューションを提供します。このガイドでは、WinAppsの詳細な設定方法を解説し、使い始めるために必要な情報をすべて網羅しています。

基本要件

セットアップ プロセスを開始する前に、次の前提条件が満たされていることを確認してください。

1. Linuxシステムがインストールされていること:動作するLinuxシステムが必要です。WinAppsはUbuntuで広範囲にテストされていますが、FedoraやDebianなどの他のLinuxディストリビューションでも動作するはずです。
2. アクティブなインターネット接続: 必要なパッケージをダウンロードしてインストールするには、インターネット接続が必要です。
3. Wine: WinAppsはWindowsアプリケーションの実行にWineを使用しています。LinuxシステムにWineが正しくインストールされ、設定されていることを確認してください。Wineはディストリビューションのパッケージマネージャーを使ってインストールできます。例えばUbuntuでは、以下のコマンドでインストールできます。

sudo apt update sudo apt install wine

4. リモートデスクトッププロトコル(RDP)クライアント:WinApps経由で実行されているWindowsアプリケーションに接続するには、RDPクライアントが必要です。Remminaは、ほとんどのLinuxディストリビューションで利用できる、人気が高く信頼性の高いRDPクライアントです。ディストリビューションのパッケージマネージャーを使用してインストールできます。例えば、Ubuntuでは次のコマンドを使用できます。

sudo apt install remmina

5. sudo アクセス: パッケージをインストールしてシステムを構成するには、sudo 権限が必要です。

インストール手順

すべての前提条件が満たされていることを確認したら、WinAppsのインストールに進みます。以下の手順を慎重に実行してください。

1. WinAppsをダウンロード:公式GitHubリポジトリからWinAppsの最新バージョンをダウンロードしてください。ダウンロードリンクはリポジトリの「リリース」セクションにあります。
2. ファイルを解凍する: ファイルをダウンロードしたら、Linuxシステムの適切なディレクトリに解凍します。グラフィカルファイルマネージャーまたはコマンドラインを使用してファイルを解凍できます。
3. インストーラーを実行します。WinAppsファイルを解凍したディレクトリに移動し、ターミナルを開きます。以下のコマンドでインストーラースクリプトを実行します。

./install.shを

インストーラーは、不足している依存関係を自動的にダウンロードしてインストールし、WinApps が Linux システムで動作するように構成します。
4. WinAppsの設定:インストールが完了したら、WinAppsがWindowsインストールを指すように設定する必要があります。設定ファイル「~/.config/winapps/winapps.conf」をテキストエディタで開きます。
5. Windowsのパスを指定します。設定ファイルで、「WINEPREFIX=」で始まる行を見つけます。この行をWindowsのインストールパスに変更します。例えば、Windowsのインストールパスが「/home/user/.wine」にある場合、行は次のようになります。

WINEPREFIX=/home/user/.wine

6. 構成ファイルを保存する: 構成ファイルに加えた変更を保存して閉じます。
7. WinApps を実行します。これで、ターミナルで次のコマンドを実行して WinApps を実行できます。

ウィンアプリ

これにより、Windows にインストールされている Windows アプリケーションのリストが作成されます。リスト内のアプリケーションをクリックして起動できます。

間違いを見つけて解決する

セットアッププロセス中やWinAppsの使用中に問題が発生する場合があります。よくある問題とその解決策を以下に示します。

1. アプリケーションが動作しない:アプリケーションが起動しない場合は、Wineが正しく設定されていること、およびアプリケーションがWineと互換性があることを確認してください。また、別のバージョンのWineでアプリケーションを実行してみることもできます。
2. パフォーマンスの問題:アプリケーションの動作が遅い場合は、Wineに割り当てるメモリ量を増やしてみてください。これは、`~/.config/winapps/winapps.conf`設定ファイルを変更することで可能です。
3. 表示の問題:アプリケーションの表示に問題がある場合は、Wine のグラフィック設定を変更してみてください。これは「winecfg」ツールを使って行うことができます。
4. インストール エラー: インストール中にエラーが発生した場合は、必要な依存関係がすべてインストールされており、インターネット接続がアクティブであることを確認してください。

結論

WinAppsは、Linuxシステム上でWindowsアプリケーションを簡単に実行できる、強力で柔軟なソリューションです。このガイドに記載されている手順に従うだけで、WinAppsを簡単にセットアップし、お気に入りのWindowsアプリケーションをLinuxシステムで使い始めることができます。さらに詳しい情報については、WinAppsの公式ドキュメントとサポートコミュニティをご覧ください。

少し時間がかかります。

WinAppsを使い始めるのは簡単ではないかもしれませんが、Linux、特にターミナルの操作に慣れていれば、それほど難しくないでしょう。プロジェクトのGitHubページで詳細な手順を確認できますが、ここでは簡単にまとめます。まず、お好みの仮想化エンジン(私はDockerを選択しました)をインストールし、その中に仮想Windowsマシンを作成します。その後、FreeRDPをテストした後、Windowsマシンに使用したいアプリケーションをインストールできます。

Windowsアプリケーションをインストールしたら、LinuxホストにWinAppsをインストールできます。これにより、お気に入りのアプリケーションをLinuxアプリケーションランチャーに登録できます。WinAppsのインストール時に一部のアプリケーションがリストに表示されない場合があることに気づきましたが、幸いなことに、WinAppsのセットアップ時に手動で登録しなかったアプリケーションも、ターミナルコマンドを使用して起動できます。引用符で囲まれたテキストをWindows内の適切なファイルパスに置き換えてください。

セットアップ中に遭遇した最大の問題は、Dockerコマンドではsudoの使用が必須だったのに、WinAppsのダウンロードとインストールのコマンドはsudoを前に付けても機能しなかったことです。公式の説明書には記載されていませんでしたが、LinuxユーザーアカウントをDockerグループに追加する必要があることがすぐに分かりました。そのためのコマンドは以下のとおりです。

sudo usermod -aG docker $USER

スイートをセットアップすると、WinApps を正常にインストールできるようになります。その後、Windows アプリケーションを Linux アプリランチャーに追加できます。

本当に効果があるのでしょうか?

はい...ただしいくつか注意点があります。

もともと、Linux では使用できないアプリで WinApps をテストしたかったのですが、最初に思い浮かんだのは Adob​​e Photoshop と Lightroom でした。どちらのアプリも WinApps でサポートされているアプリとして公式にリストされており、動作します。2 つのうち Adob​​e Lightroom の方が優れています。大きな問題なく使用できました。RAW 画像を読み込み、自動照明補正を適用しましたが、日常的な使用には十分なパフォーマンスでした。オーバーライドできる個別のグラフィック プロセッシング ユニット (GPU) がないため、AI を利用したノイズ除去機能はかなり遅く、1 枚の画像を処理するのに数分かかりました。ただし、手動によるノイズ低減は引き続き利用可能で、うまく機能します。それほど直感的ではありませんが、通常、Lightroom の方が最終結果が優れているため、ここでは Darktable や RawTherapee よりも Lightroom を使用することを好みます。

残念ながら、Photoshopはそれほど良い状態ではありません。Photoshopの動作に何らかのバグが発生し、ワークフローが中断されることがあります。UIがフリーズして応答しなくなることもありますが、Linuxのタスクスイッチャーを使って別のウィンドウに切り替えたり戻ったりすることで、一時的には解決できます。UIを強制的に更新すれば問題は解決するようです。しかし、Photoshopではこの問題が頻繁に発生するため、ワークフローに大きな影響が出ています。

Microsoft Officeも公式にサポートされていると記載されていますが、現在ライセンスを持っていないため、代わりに最近愛用しているWPS Officeを使用することにしました。こちらも大部分で問題なく動作し、文書の作成やプレゼンテーションの作成に十分です。「新規」ボタンは無効になっていますが、「ホーム」タブの適切なセクションに移動すれば、新しいドキュメントを作成できます。

アプリケーション ウィンドウのサイズを変更すると、特に最大化/最小化すると、Photoshop の特定の機能を使用するときに発生するのと同様に、ユーザー インターフェイスが応答しなくなることがよくあります。ほとんどの場合、アプリケーションが目的のサイズになったら問題にはなりませんが、予期せず作業を終わらせたいだけの場合には、少しイライラすることがあります。ただし、この使用例は、多数の Windows アプリケーションを同時に操作するなどの目的ではありません。これは、Linux には存在しないまれなアプリケーションのためのソリューションです。もう 1 つの厄介な癖は、既に Windows アプリケーションを開いている場合に、別のアプリケーションを開くと現在のアプリケーションが消えてしまうことがありますが、2 番目のアプリケーションをもう一度起動しようとすると、両方のアプリケーションが画面に戻ることです。2 つのアプリケーションは技術的には Windows 仮想マシンにすぎないため、リボン上では同じラベルが表示されます。

WinAppsはX11でより安定して動作すると期待されていますが、Waylandで使用しても特に大きな問題は発生しませんでした。Photoshopは安定性が低下しているようですが、どちらにしても素晴らしいとは言えません。

これは必ずしもすべての人に当てはまるわけではありません。

この製品またはサービスは、すべてのお客様に適しているとは限りません。これは当然のことです。ニーズや好みは人それぞれです。ご購入前に、この製品がお客様の特定の要件を満たしているかどうかを理解することが重要です。製品が提供する機能とメリットを慎重に検討し、市場に出回っている他の製品と比較検討してください。他の選択肢の方が適していると思われる場合もあれば、この製品がまさに探していたものであることに気付く場合もあります。 結局のところ、選択権はあなたにあり、個人の状況に基づいて十分な情報に基づいた決定を下すべきです。

しかし、適切な人にとっては、それは素晴らしいアイデアです。

Linux 上で Adob​​e Lightroom が AI ノイズ除去を処理しているスクリーンショット

Windowsをなるべく使わないようにしたいという気持ちが徐々に薄れてきていて、WinAppsのようなソリューションは、少なくとも理論上は夢の実現のように思えます。Linux上でWindowsアプリケーションを十分なパフォーマンスで実行できれば、WindowsをスタンドアロンOSとして使うのをやめるには十分であり、WinAppsはまさにそれを目指しています。実装は完璧ではありませんが、主にMicrosoft Officeを使うのであれば、おそらく問題なく動作するでしょう。

しかし、誰もがこの条件に当てはまるわけではありません。Lightroomのようなアプリケーションは、統合GPUを搭載した最新のノートパソコンでも問題なく動作しますが、Dockerで使用される仮想化ではパフォーマンスが大幅に低下し、一部のワークロードは実行できない可能性があります。DaVinci Resolveについても同様のことが言えます。ResolveのLinux版はディスクリートGPUを必要とし、Windowsでは統合GPUを使用できますが、仮想化はこの統合GPUを経由しないため、実際のビデオ編集は不可能になります。

Windowsベースのツールを少しだけ必要とするなら、WinAppsがそのギャップを埋めることができます。将来的には仮想化の改良によってさらに使いやすくなるかもしれません。しかし、Linux上のWindowsは、正規のWindowsインストールを完全に置き換えるものではありません。しかし、そうなる可能性を想像するのは興味深いことです。

コメントは締め切りました。