Wine は、オープンソースの Windows API 実装を通じて、主として x86 アーキテクチャ上の Unix 系オペレーティングシステム(POSIX 準拠 OS)において Windows 用アプリケーションをネイティブ動作させることを目標とするプログラム群です。X Window System を利用して、16 / 32 / 64 ビット Windows 向け GUI アプリケーションを動作させることができるほか、MS-DOS 用アプリケーションも動作します
インストーラ無しで配布されている、とある Windows アプリに対して、Inno Setup を利用してインストーラを作ろうとしたのですが、事情があってこのケースでは Windows PC 上に Inno Setup をインストールできません。やむなく Linux 上の Wine の環境で Inno Setup を動かして、Windows アプリのインストーラを作成しました。
なお Inno Setup は、Jordan Russell 氏によって開発されたフリーソフトウェアのスクリプト駆動型の Windows 向けインストーラ作成システムです [1]。
インストーラを作成する際、Inno Setup で使用するスクリプト(.iss が拡張子のファイル。以降、iss ファイルと呼びます。)を用意する必要があるのですが、アプリのファイル数が膨大だったので、手作業ではとてもできません。もちろん *(アスタリスク)でワイルドカード指定はできますが、管理上、使用したくありません。
そこで、Inno Setup を Wine 上で動作させることを前提に、iss ファイルを作成する GUI プログラム (innosetup_utils) を Python/PySide6 で作りました。
下記の環境で動作確認をしています。
Fedora Linux 36 | x86_64 | |
wine | 7.12-2.fc36.x86_64 | |
Inno Setup | 6.2.1 (innosetup-6.2.1.exe) | |
python3 | 3.10.5-2.fc36.x86_64 | |
PySide6 | 6.3.1 |
このプログラム (innosetup_utils) は、Linux 上で動作するのですが、生成した iss ファイルを Wine で起動した Inno Setup で使用するので、ドライブ番号 Z にあるものとして処理し、さらにパスの区切りを / から \ に変更する必要があります。
Windows アプリのフォルダと必要事項を入力すれば、インストール作成に必要な iss ファイルを出力してくれます。
Inno Setup を起動、作成した iss ファイルを読み込んでコンパイルすれば、対象の Windows アプリのインストーラが出来上がります。
作成したインストーラは、Wine 上で動作確認をすることができます。ただし、対象の Windows アプリが Wine 上で動作するかどうかは別の話です。😅
こんなマイナーな用途のプログラムですが、Github にレポジトリを作りました。
現在のところ、このプログラム (innosetup_utils) には最低限の機能しかありませんが、マイナーな用途とは言え、個人的にはニーズがあるので、すこしずつ使い勝手の良いものに改善していくつもりです。
参考サイト
にほんブログ村
0 件のコメント:
コメントを投稿