Windows 版しか提供されていない Electron バイナリを Wine で動かす
あけましておめでとうございます。新年最初のエントリがこれです。
注意
各サービスには必ず利用規約が存在します。
今回は、リバースエンジニアリング行為や、得たデータを改変して利用する行為などは行っておりません。
このブログエントリで得た情報を利用して、利用規約および各種法令、公序良俗に反する行為を行わないでください。
また、動作環境外でのソフトウェアの使用はサポートを受けることができません。自力解決しましょう。
なお、このエントリで行った知識をユーザーが被った不利益については、筆者は責任を負いません。ご了承ください。
Electron とは?
Electron は、JavaScript、HTML、CSS によるデスクトップアプリケーションを構築するフレームワークです。
Electron を利用して構築されているアプリケーション・サービスに著名なものは、”Visual Studio Code” や “GitHub Desktop” などがあります。
Electron の特徴として、クロスプラットフォームなバイナリをかんたんに作り上げることができるという特徴があります。
目的
先述したようにクロスプラットフォームをかんたんに実現できる、という特徴のある Electron です。
しかし、残念ながら、一部の不届き企業は、クロスプラットフォームに対応していない(とりわけ Linux には対応する気がない)場合が多いです。
ところで、Electron は、言ってしまえば、内部で Chromium を利用したただのウェブアプリケーションです。
アプリケーションの動作に必要な多くの DLL などはパッケージ化されている可能性が高いです。
つまり、Wine で雑に動かすにはもってこい、かもしれません。
ここだけ読んだら熟練者は続きを読まなくても構いません。いつもどおり Wine を動かすだけです。
初心者はここから
Windows バイナリを手に入れる
インストールせず、直接起動できるバージョンのアプリ(ポータブルアプリ)がある場合
ラッキーですね。そのままダウンロードして、Linux に持ってきてください。
必要な場合(自己解凍形式の *.exe ファイルの場合など)は Windows で解凍しておくことをおすすめします。
インストーラーがある場合
大抵の場合は、ソフトウェアは、インストールという作業が必要です。
Wine は、インストールでコケる場合が多いので、Windows 環境で先にインストールして、展開されたアプリケーションをフォルダーごとコピーするほうが良いです。
といっても、Electron で開発されたソフトウェアは、大抵の場合、ダブルクリックするだけで UAC を必要とせず展開される場合が多いです。話が早くて助かりますね。
-
Windows 環境でソフトウェアを展開する
-
ソフトウェアが入ったフォルダーを探し当てる
- インストーラーが管理者特権の必要なタイプの場合は、
C:\Program Files
orC:\Program Files (x86)
が多い - インストーラーが管理者特権の不要なタイプの場合は、
C:\Users\{Username}\AppData\Roaming\
や、C:\ProgramData\{Username}
の中にあることが多いです。
迷ったら、デスクトップのショートカットなどからプロパティを見てみましょう。
アプリケーションが含まれるフォルダーごと、Linux にコピーします。
Wine をインストールする
WineHQ をインストールします。公式ページに、あるとおりにインストールすれば良いです。
以下に、Ubuntu 22.04 の場合のインストール方法を示します。
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update
sudo apt install --install-recommends winehq-stable
また、winecfg
を呼び出します
winecfg
正常にダイアログボックスが出てきたら、閉じてください。
場合によっては、winetricks
などをインストールしても構いませんが、ここでは割愛します。
Windows バイナリが動作するか確かめる
先ほどの Windows バイナリがあるフォルダーに移動します。
そして、以下の通りに起動します。
wine hoge.exe
正常に起動したら成功です。やったね!
(任意)デスクトップエントリーを作る
このままでも動きますが、起動のたびにターミナルを開くのはナンセンスです。
せっかくなのでショートカットを作りましょう。
シェルスクリプトを作る
以下のようにして、シェルスクリプトを作ります。
#!/bin/bash
wine /path/to/applicaton.exe
好きな名前で保存し、パスを覚えておきましょう(コピペ可)。
デスクトップエントリーファイルを作る
~/.local/share/applications
に移動します。
{任意の名前}.desktop
ファイルを作成します。
[Desktop Entry]
Version=1.0
Type=Application
Name={ソフトの名前(表示名)}
Icon={あれば 画像アイコン}
Path={ソフトのフォルダのパス(カレントディレクトリの役割を果たす?)}
Exec={先ほどの シェルスクリプトのパス}
StartupNotify=true
例えば、これは Electron とは関係ありませんが、
[Desktop Entry]
Version=1.0
Type=Application
Name=Firefox
Icon=/home/{user}/software/firefox/firefox.png
Exec=/home/{user}/software/firefox/firefox
Path=/home/{user}/software/firefox/
StartupNotify=true
こんな感じです。
すると、ランチャーにソフトウェアが出てきます。
あとは、いつもの普通のソフトのように扱ってあげてください。