ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
要点
- AppImage(.appimage / .AppImage)は、Linux 向けのポータブル 1 ファイル配布形式。インストール不要・ディストリ非依存・root 権限不要が特徴。
- 実体はELF ランナー + SquashFS イメージの結合ファイル。
chmod +xして直接起動する。 - 中身は AppDir 構造(
AppRun、*.desktop、usr/bin/、usr/lib/等)で、.app バンドルに近い思想を Linux に持ち込んだもの。 - 更新は zsync デルタによる差分更新、署名は GPG。
概要
AppImage は 2004 年頃に "klik" として始まり、後に "AppImage" へ改名された配布形式である。Linux におけるソフトウェア配布の長年の難題「ディストリビューションごとに DEB と RPM を別々にメンテする」「依存ライブラリのバージョンが合わない」を、必要な依存をすべて自前で抱え込む 1 ファイルにするという方向で解決しようとするアプローチである。
同じく Linux 向けポータブル配布として Snap(Canonical)と Flatpak(freedesktop.org)があるが、AppImage はランタイム・サンドボックス・常駐デーモン・ストアを必要としない点で最も軽量である。Krita、Inkscape、OBS Studio、Blender、Audacity といった主要 OSS が AppImage 版を公式公開している。
内部構造
AppImage ファイルを file app.AppImage で確認すると、先頭が ELF 実行ファイルであることがわかる。これは「ランナー(type-2 runtime)」と呼ばれる小さな実行コードで、後続に SquashFS イメージが連結されている。
- ELF ランナー — FUSE 経由で SquashFS をマウントし、
AppRunを起動する - SquashFS イメージ — 高圧縮かつランダムアクセス可能な読み取り専用ファイルシステム。
unsquashfsで展開可能
SquashFS を展開すると、AppDirと呼ばれる構造が現れる。
MyApp.AppDir/
├── AppRun # 起動スクリプト or バイナリ
├── myapp.desktop # メニュー統合用 .desktop ファイル
├── myapp.png # アイコン
├── .DirIcon # アイコンへのシンボリックリンク
└── usr/
├── bin/myapp
├── lib/libfoo.so.1
└── share/...
SquashFS の圧縮アルゴリズムは gzip / xz / zstd から選べる。xz は圧縮率重視、zstd は起動速度重視。デスクトップアプリでは zstd が好まれる傾向。
主な用途
- OSS デスクトップアプリの配布 — Krita、Inkscape、OBS、Audacity、KeePassXC、AppImageHub の数千件
- 商用ソフトの Linux 版 — Bitwig Studio、Reaper(実験的)など、ディストリ依存を避けたい場合
- 古い OS への新バージョン投入 — 古い CentOS / Ubuntu LTS で最新 GIMP を動かす、といったユースケース
- USB スティック持ち運び — chmod 済みの AppImage を入れておけば、別の Linux マシンで即起動できる
- CI 成果物 — タグ付きビルドを GitHub Releases に上げる際の標準形式の一つ
関連形式との比較
- vs DEB / RPM — DEB/RPM はシステムに統合される正攻法のインストール、AppImage はインストール不要のポータブル配布。役割が逆。AppImage はディストリを問わない代わりに、システム全体での依存共有はできない。
- vs Snap / Flatpak — Snap/Flatpak はランタイム + サンドボックス + 自動更新の総合パッケージシステム。AppImage はサンドボックスなし(必要なら Firejail などを別途併用)、自動更新は
appimageupdateを別途使う。 - vs .app バンドル — 思想は近い(必要なものをぜんぶ抱える)。違いは、.app はディレクトリだが、AppImage は単一ファイル(SquashFS をマウントしている)。
- vs EXE — EXE は OS に大量に依存しがちだが、AppImage は逆に「依存を抱え込んで OS に頼らない」設計。ポータブル EXE と思想は近い。
コマンド・ツール
chmod +x MyApp.AppImage— 実行可能ビットの付与(必須)./MyApp.AppImage— 直接起動./MyApp.AppImage --appimage-extract— AppDir をsquashfs-root/へ展開./MyApp.AppImage --appimage-mount— 一時マウント(FUSE 不可環境のデバッグ用)./MyApp.AppImage --appimage-version— バージョン情報./MyApp.AppImage --appimage-signature— GPG 署名表示./MyApp.AppImage --appimage-updateinformation— zsync 更新情報の表示- appimagetool — AppDir から AppImage を生成
- linuxdeploy — 依存ライブラリの自動収集と AppDir 構築
- AppImageUpdate — zsync ベースのデルタ更新ツール
- appimaged — デスクトップに AppImage を自動統合するデーモン(任意)
注意点
- FUSE が必要。多くのディストリで標準だが、コンテナ内・最小構成サーバでは
fuseパッケージのインストールが必要なことがある。代替として--appimage-extract後の直接実行も可能。 - サンドボックスはデフォルトで無い。APK や Flatpak のような権限分離は提供されない。信頼できる配布元から取得すること。Firejail などで隔離するのが定石。
- desktop 統合は手動。
.desktopファイルを~/.local/share/applications/へ置かないと、アプリメニューに出ない。appimagedやAppImageLauncherを使うと自動化される。 - 署名検証は習慣化する。配布元の GPG 公開鍵を別経路で取得して、
--appimage-signatureで検証する。 - glibc バージョンは AppImage 内で同梱できないため、ビルドホストは「サポートしたい最古ディストリ」と同等以下にする必要がある。これを誤ると古い OS で起動しない。
- ファイルサイズが大きい。依存をすべて抱えるため、同等の DEB よりも数倍大きくなる。
関連リンク
- 実行ファイル・パッケージ(親カテゴリ)
- ファイル拡張子とは(概論)
- DEB(.deb) / RPM(.rpm)(システムへ統合する正攻法)
- app(.app)(macOS の「依存を抱え込むバンドル」)
- EXE(.exe)(Windows のポータブル EXE と発想が近い)
- アーカイブ・圧縮形式(SquashFS は xz/zstd を内部で利用)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?