PKG ファイル形式とは?
.pkg 拡張子は、Appleが開発したmacOSオペレーティングシステムなどで使用されています。.pkg ファイルには、XAR内部形式の圧縮されたインストーラーファイルのパッケージが含まれており、その目的はMacコンピュータにアプリケーションをインストールすることです。.pkg ファイルは実質的に、拡張子が異なり、厳密に定義されたファイル階層を持つXARアーカイブです。具体的には、XML形式の目次(Table of Contents)、アプリケーションファイルを保持する圧縮されたCPIOペイロード、およびオプションのインストールスクリプトで構成されています。
XARプロジェクトの目的は、拡張が容易なアーカイブ形式を作成することであり、これにより .pkg はmacOSソフトウェアの柔軟な配信手段となっています。.pkg 形式の開発における主な目的は、インストールプロセス中の作業を容易にするメカニズムを作成することであり、この優先事項は達成されました。.pkg ファイルを使用したインストールや更新は、組み込みのmacOS「インストーラー」アプリ、またはターミナルの installer コマンドを通じて簡単に行うことができます。ソフトウェアのインストールは、単独で行うことも、プロセスの前後で実行される事前・事後インストールスクリプトと共に行うことも可能です。
現在のフラットな .pkg 形式は、Mac OS X 10.5 Leopard(2007年)で導入されました。現代のパッケージは、Mac App Store以外で配布する場合、Apple Developer証明書による署名と公証(Notarization)が必要です。
.pkg ファイルは現在、以下のように使用されています:
- Appleシステムにおけるインストールパッケージとして - macOSを実行しているコンピュータと、iPhoneの両方(MDMまたはApple Configurator経由で配布)
- Sonyにより、PlayStation 3、PlayStation 4、およびPlayStation 5コンソールにソフトウェアやアプリケーションをインストールするため
- 歴史的には、Symbianシステムにおいてインストールパッケージ内の設定情報を保持するため
関連する形式には、アプリ配布に使用される .DMG ディスクイメージ、複数の .pkg インストーラーをまとめた .MPKG メタパッケージ、およびXcodeで使用される署名済みアーカイブ .XIP があります。
セキュリティと安全性
リスク: MEDIUMmacOSの .pkg は昇格した権限で事前・事後インストールスクリプトを実行できるため、アプリケーションフォルダにドラッグするだけのアプリよりも危険性が高いです。マルウェアやアドウェアが .pkg インストーラーとして配布された事例もあります。信頼できるソースからのパッケージのみを実行してください。macOS Gatekeeperは署名や公証のないパッケージに対して警告を出しますが、その警告に従うべきです。不確かなものはインストール前に「Suspicious Package」(スクリプトや署名者を表示可能)で検査してください。
形式の詳細
概要- PlayStation Package - PS3/PS4/PS5/Vita用の暗号化されたコンソール専用ゲーム/DLC/更新パッケージ。コンピュータではなく、対応するコンソールにのみインストールされます。
- Symbian インストーラースクリプト (.pkg) - 古い Symbian/Nokia SIS パッケージングで使用されていた、廃止済みのテキスト形式ビルドスクリプト。
- Apple Newton Package - 廃止された Apple Newton プラットフォーム用の希少なパッケージ形式(この拡張子の古いDB名)。
PKG ファイルを開くプログラム
sudo installer -pkg file.pkg -target / を実行します(スクリプトや自動化用)。 xar -xf file.pkg を実行し、Payload (gzip|cpio) を解凍してファイルを抽出します。これは検査用であり、インストール用ではありません。 技術的詳細
詳細仕様| 内部形式 | XAR (eXtensible ARchive) バイナリアーカイブ |
| マジックバイト | ファイルオフセット0に `78 61 72 21` (`xar!`)。これは現代のフラットパッケージを識別します。古いバンドルパッケージはディレクトリ形式であり、単一のファイルシグネチャはありません。 |
| MIMEタイプ | `application/x-xar` |
| 目次 (Table of Contents) | XARヘッダー内に非圧縮で保存されたXMLドキュメント。各ファイルのチェックサム、圧縮方法、メタデータをインデックス化しています。 |
| ペイロード形式 | XARコンテナ内の gzip、bzip2、または lzma で圧縮された CPIO アーカイブ |
| Bill of Materials | インストールされるパス、ファイルの所有者、権限、サイズをリストしたパッケージ内の `Bom` ファイル |
| インストールスクリプト | ペイロードのインストール前後に root 権限で実行される `preinstall` および `postinstall` シェルスクリプト |
| コード署名 | Apple Developer ID Installer 証明書で署名。起動時に macOS Gatekeeper によって署名が検証されます。 |
| 公証 (Notarization) | macOS 10.15以降、Mac App Store以外で配布されるパッケージにはAppleによる公証が必須です。 |
| パッケージのバリエーション | フラットな `.pkg` は単一のXARファイルです。レガシーなバンドル形式の `.pkg`(10.5以前)はディレクトリ構造ですが、どちらも同じ拡張子を使用します。 |
| コマンドラインインストール | `sudo installer -pkg file.pkg -target /` |
| インストールなしの抽出 | `xar -xf file.pkg` を実行すると、インストールスクリプトを実行せずに現在のディレクトリにアーカイブを展開します。 |
| Distribution XML | プロダクトアーカイブのルートにあるオプションの `Distribution` ファイル。JavaScriptロジックを組み込んだ選択式または複数パッケージのインストールを制御します。 |
| コンポーネント vs プロダクトアーカイブ | `.pkg` は単純なコンポーネントパッケージである場合もあれば、複数のコンポーネントパッケージを1つのインストーラーにまとめたプロダクトアーカイブである場合もあります。 |
| リリース日 | macOS flat .pkg (XAR-based) since Mac OS X 10.5 Leopard (2007); earlier bundle .pkg since NeXTSTEP/Mac OS X 10.0 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | github.com |
PKG の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PKG ファイルについて最初の質問をしてみましょう。