AppImage

AppImageはLinuxにおいてポータブルアプリケーションを配布するためのフォーマットである。どのLinuxディストリビューションでも実行ファイルをインストールできることを目的としており、そのコンセプトはしばしばアップストリーム パッケージングと称される。同じ一つのAppImageをUbuntu、Arch Linux、Red Hat Enterprise Linuxでインストールし、実行することが可能である。自己充足的で、root権限を要せず、ディストリビューションから独立したフォーマットである。 

kilkとして2004年にリリースされて以来、継続的に開発が進められ、2011年にPortableLinuxAppsに改称、2013年にAppImageに改称された。バージョン2は2016年にリリースされている。 

 歴史 
AppImageの前身であるklikは、2004年にSimon Peterによって開発された。 クライエントサイドのソフトウェアのラインセスはGNU GPLである。 klikはユーザー側のウェブブラウザと統合して機能する。ユーザーはklik://から始まるURLを使ってソフトウェアをダウンロード、インストールする。これによってkilkの「レシピ」ファイルをダウンロードする。このレシピファイルは拡張子が.cmgのファイルを作成するのに使われる。主な材料としては、安定版Debianのレポジトリ内にあるビルド済みの.debパッケージがレシピの生成プロセスに用いられる。これにより、一つのレシピを使って異なるプラットフォームにパッケージを配布することができる。klikでは、FUSEを用いない場合、同時に8個のプログラムまでしか実行することができなかった。これはLinuxカーネルのマウントできる圧縮イメージ数の制限によるものである。ファイルはプログラムが実行されるたびに再マウントされるため、ユーザーはファイルを削除するだけでプログラムを完全に削除することができる。次のバージョンであるklik2はFUSEを取り込む予定であったが、ベータバージョンは完成していない。 2011年頃、klikプロジェクトは休止状態となり、ウェブサイトは非公開となった。

この時期、Simon Peterは後継となるPortableLinuxAppsのプロジェクトを開始した。これは数百のオープンソースのコンピュータゲームを配布する「portablelinuxgames.org」などのサイトで採用された。

2013年頃、portableLinuxAppsはAppImageに改称され、ライセンスはMIT licenseに変更された。 AppImageはフォーマットで、 AppImageKitはそのオープンソース実装である。GitHub上のレポジトリで開発されている。

2016年、AppImageのバージョン2の仕様書が起草された。バージョン2はファイルシステムの制限が無い (草案の実装ではSquashFSを用いている)。ファイルシステムの開始地点を示す固定オフセットを廃止したため、 デジタル署名をAppImage内に直接埋め込むことが可能になっている。

 デザイン 
サムネイル|klikによるアプリケションのインストール
AppImageはアプリケーション配布システムとして、次の目標を掲げている。シンプルさ、バイナリ互換性、ポータビリティ、ディストリビューションを考慮せずに実行できること、インストール不要、root権限不要、実行される オペレーティングシステムに干渉しないこと。 このため、AppImageは実行ファイルを様々な場所に配置する必要はない。そうではなく、AppImageのファイルはそれ自体が一つのファイルシステムである。実行時、ファイルはFUSEによってマウントされる。AppImageは、従来からあるDebやRPMよりも簡単に使えるようにデザインされているため、オペレーティングシステムや環境の設定を変更する必要がない。

それぞれのファイルは自己充足的であり、実行されるシステム上にない依存ライブラリはすべて含まれている。バージョン1.0のAppImageはISO 9660 Rock Ridge のファイルであり(zisofsで圧縮することも可能) 、小さいAppDirと ランタイムライブラリを含んでいる。

AppImageはデジタル署名を埋め込むことが可能であり、これは外部で認証する必要がある。 実行するために署名を認証しなければならない訳ではなく、署名を含むことができるだけである。  AppImageはサンドボックス化はしないが、 他のアプリケーションを用いてサンドボックス化することはできる。

 採用および反響 
2007年に開始されたAlexander Larssonのglickプロジェクト(Flatpakの前身)は、Kilkから着想を得た。

2015年、 Linux kernelの開発者であるリーナス・トーバルズは「これはとても素晴らしい。ようやく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

 脚注 

 外部リンク 


 AppImages for various applications by the AppImage developer
 Easily Run And Integrate AppImage Files With AppImageLauncher
Category:MITライセンスを利用するソフトウェア
Category:ソフトウェア配布