プレゼンテーション資料(pps(PowerPointSlidshow)形式)

Mac OS X のパッケージシステム
現状と要望... 明日はどっちだ?
しろやまたかゆき<[email protected]>
Mac OS X のパッケージシステムの現状


「アプリは可能な限りドラッグ&ドロップのみでインストールすべし」
Appleの推奨事項
NeXT由来の.pkg(.mpkg)形式
NeXTのパッケージ('88)



GUIベースのインストーラ
.pkgのサフィックスを持つ
ディレクトリ(ファイルパッケージ)
実体は installer_tar + compress
のアーカイブ
foo.pkg/ -+
+
+
+
+
+
+
+
+
+
+
|
|
+
foo.info
:
foo.bom
:
foo.sizes
:
foo.tiff
:
foo.tar.Z
:
foo_preinstall :
foo_postinstall :
foo_predelete :
foo_postdelete :
English.lproj/ --+
+
情報ファイル(デフォルト)
ファイル情報(パーミッションなど)
ファイルサイズ
アイコン
実際のアーカイブ
インストール事前処理スクリプト
インストール事後処理スクリプト
アンインストール事前処理スクリプト
アンインストール事後処理スクリプト
foo.info : 情報ファイル(英語)
Japanese.lproj/ -+
+ foo.info : 情報ファイル(日本語)
NeXTのパッケージ('88)


インストール/アンインストール
Receipt







/NextLibrary/Receiptsに格納される納品証
圧縮/展開

一時的にReceiptの中にファイルを格納

OSのアップグレード時に使用
全ての動作の前後にスクリプトの実行が可能
FTPインストールも可能だった(らしい)

使用例は皆無
バイナリパッケージ志向
依存関係は設定できない

やろうと思えば 事前、事後に実行されるスクリプトを駆使して
ソースからのコンパイルや依存関係処理の追加は可能。
パッケージ作成ツールはコマンドラインのみ

(フリーでGUIラッパーがあった)
Mac OS X Server1.xのパッケージ('00)




ほぼ NeXTのパッケージをを踏襲
ツールの更新(4.3BSD->4.4BSDに伴い)

compress -> gzip

installer_tar -> pax/gnutar
mpkgを追加

複数のパッケージをセットで扱う
ことができる
やっぱり依存関係は設定できず
Mac OS X 10.xのパッケージ (2001~)






NeXTのパッケージをベースにはしている
操作系の変更(1画面からウィザード形式へ)
インストールのみ、圧縮/展開/アンインストールができない
インストール先をドライブ単位でしか指定できない
SoftwareUpdate
その他のインストーラの存在

InstallVise(MacOS由来)など
なぜこうなったか?(推測)


基本的にアンインストールを許さないものしか入れないから
 MacOS Xアップデート
 iアプリケーション(iTunes, iMovie, iPhoto)
 デバイスドライバ
「インストールはドラッグアンドドロップで済ますべき」
の原則


つまり、インストーラには頼るなと
依存関係処理の難しさ
 「rpmでも --force でインストールしません?」
Darwinでのパッケージシステムの現状


NeXT由来のパッケージシステムはサポートされてない
 単にコマンドラインインストーラの不在
 どのみち依存関係処理ができない
 どのみちソースからコンパイルしてくれない
 どのみちアンインストールできない
OpenPackages
 当初、Darwinでは dpkgを使おうとしていた
 しかし、GPLとの兼ね合いで作業を停止


http://darwin.anu.edu.au/display.cgi?view=/darwinmail/development/200009/d_users4447
そして、OpenPackagesへ移行
 ...いつだよ(汗)
Darwinでのパッケージシステムの現状

本家が混迷しているため、パッケージシステムが乱立


EasyPackage(停止)
 オンラインインストール
 バイナリパッケージ主体
 サーバ決めうちの Perlスクリプト(+GUIアプリ)
 突然サービスを停止
PineApple : rpmベース



fink
 海外
 dpkgベース
 /sw以下 にインストール*
 依存関係を処理
GNU-Darwin : FreeBSD由来のPackageシステム


http://sacral.c.u-tokyo.ac.jp/~hasimoto/Pineapple/index.html
DarwinベースのDistributionを目指す?
Zoularis
要望 ...あくまで、個人的な



楽にインストールしたい

いや、./configure ; make ; make installでも十分楽なのですが...

やっぱり、依存関係処理は欲しい
バイナリだけじゃなくソースからも
Mac OS XでもDarwin単体でも運用可能に



既存のバイナリをできるだけ置き換えたくない




Software Update との兼ね合いから
/opt でも /swでも /usr/pkg でもいいから...
/usr/local は残しておいて欲しい
継続して欲しい


コマンドライン
GUI (Aqua & X )
はしごを外されるのは困る
オープンソースであってほしい

最悪、自前でも継続可能に