AppImageとは
AppImageは、Linuxでポータブルアプリケーションを配布するためのフォーマットです。これは、どの
Linuxディストリビューションでも実行できる単一の実行ファイルを提供することを目的としており、しばしば「アップストリームパッケージング」と称されます。例えば、
Ubuntu、Arch Linux、Red Hat Enterprise Linuxなど、異なるディストリビューションでも同じAppImageファイルを実行できます。自己完結型であり、root権限を必要とせず、ディストリビューションに依存しない点が特徴です。
歴史
AppImageの前身である「klik」は、2004年にSimon Peter氏によって開発されました。klikはGNU GPLライセンスで配布され、ウェブブラウザと統合して動作しました。ユーザーは「klik://」で始まるURLを使ってソフトウェアをダウンロードし、レシピファイルを基に実行ファイルを作成しました。klikはDebianのパッケージをベースにしており、1つのレシピで複数のプラットフォームに対応できる利点がありました。しかし、FUSEを使用しない場合、同時に実行できるプログラム数に制限があり、この点が課題でした。後継のklik2はFUSEを導入予定でしたが、完成には至りませんでした。
klikプロジェクトが休止状態になった後、Simon Peter氏はPortableLinuxAppsプロジェクトを開始しました。これは、オープンソースのゲーム配布サイトで採用されました。その後、2013年頃にPortableLinuxAppsはAppImageに改称され、ライセンスもMITライセンスに変更されました。AppImageはフォーマットであり、AppImageKitはそのオープンソース実装です。2016年にはAppImageバージョン2の仕様書が発表され、SquashFSなどの
ファイルシステムに対応し、デジタル署名の埋め込みも可能になりました。
デザイン
AppImageは、シンプルさ、バイナリ互換性、ポータビリティ、ディストリビューション非依存、
インストール不要、root権限不要、システムへの非干渉を目標としています。AppImageファイル自体が
ファイルシステムであり、実行時にFUSEでマウントされます。これにより、従来のパッケージ形式(debやrpm)よりも簡単に利用でき、システム設定の変更も不要です。
各AppImageファイルは自己完結型であり、実行に必要なすべての依存ライブラリを含んでいます。バージョン1.0のAppImageはISO 9660 Rock Ridge形式のファイルで、圧縮も可能です。AppImageにはデジタル署名を埋め込むことも可能ですが、必須ではありません。また、AppImage自体はサンドボックス化されていませんが、他のアプリケーションを利用してサンドボックス化することができます。
採用と反響
AppImageは、多くの開発者やユーザーから支持されています。Flatpakの前身であるglickプロジェクトは、klikから着想を得ています。
Linuxカーネルの開発者であるリーナス・トーバルズ氏は、AppImage版のSubsurfaceを試用し、「これは本当にうまく動作する」と評価しました。また、マーク・シャトルワース氏も「AppImageは非常に見事であり、開発者の努力に敬意を表したい」と述べています。
関連項目
Autopackage(英語版) – Linuxのパッケージ管理システム
List of software package management systems(英語版)
List of portable application creators(英語版)
ROX Desktop(英語版)– X Window System上で動作するデスクトップ環境
Snap (ソフトウェア)
Zero Install
Flatpak
外部リンク
公式ウェブサイト
AppImage開発者による様々なアプリケーションのAppImage
AppImageファイルを簡単に実行・統合できるAppImageLauncher