2011年までOS Xの開発を率いてきたBertrand Serlet氏が、Parallelsのボードメンバーに加わったそうです(リンク)。てっきり、悠々自適の生活に入るのかと思っていましたが……ともあれ、NEXTSTEPのWorkspace Manager以来なじみ深い彼を、またどこかで見かけることができそうです。

さて、「新世代のOS Xユーザへ」シリーズの第4回目となる今回のテーマは、「/var」としてみた。ふだんあまり意識することのない"なんでもあり"の領域だが、実は情報の宝庫でもある。その領域にアクセスする方法と、どのように情報収集するかの具体例を、かいつまんで説明してみたい。

/varの役割を知る

OS Xにかぎらず、コンシューマ向けOSは"雑然としたところ"をユーザに見せたがらない。それはユーザを混乱から守るだけでなく、安易な削除/改変を防ぐためでもある。/varというディレクトリは、その"雑然とした"諸々をとりあえず押し込めておく領域なのだ。

OS Xでは、/varなどUNIX由来のディレクトリは隠蔽対象とされているため、Finderには表示されない。その内容を確認するには、Finderのメニューバーから[移動]→[フォルダへ移動...]を選択し、「/var」とディレクトリパスを直接指定すればいい。Terminalから「open /var」を実行しても同じことだ。なお、OS Xにおいて/varの実体は「/private/var」であり、/varはシンボリックリンク……なのだが、ここではひとまず置いておく。

基本的には不可視領域とされているが、「フォルダへ移動」ダイアログでパスを直接指定すれば、Finderに表示できる

/varを開くと、その名前からは役割を容易に推定できないサブディレクトリが多数表示される(表1)。命名はやみくもに行われているわけではなく、基本的にはBSD UNIX/NEXTSTEP以来の慣例を引き継ぎつつ、FHS(Filesystem Hierarchy Standard)などUNIX系OS標準のディレクトリ構造を踏まえ、OS X独自のものが加えられている。/var/mailのように、現在ではほとんど使われていないディレクトリも多数含まれているので、やはりイメージは"押し入れ"が近い。

Finderで開いた「/var」の内容。いろいろなシステム情報がサブディレクトリごとに管理されている

表1:/varのおもなディレクトリ

ディレクトリ名 FHS2.3で必須 主な働き
at atコマンドが使用する領域
db 各種機能がデータベース的に使用する領域
folders OS X独自のキャッシュ領域
lib 動的な情報の保存場所
log 動作記録(ログファイル)の保存場所
mail ユーザのメールボックス
root rootのホームディレクトリ
run プロセス管理に利用される
spool 印刷データなどを一時保存する領域
tmp 一時作業領域
vm 仮想メモリ領域

パッケージの中身を調べる

これだけではほとんどのユーザに役立ちそうにないので、実用的な情報も示しておこう。まずは「/var」を開き、「db」→「receipts」の順にフォルダを開いてほしい。Terminalで作業するのであれば、「open /var/db/receipts」を実行するのが近道だ。

すると、拡張子「.bom」や「.plist」のファイルが多数表示されたはず。そう、この領域には、インストールパッケージ(*.pkg)の内容が記されたレシートファイル(*.bom)が保管されている。レシートファイルを使いパッケージの中身をあとからチェックできれば、「abc」というファイルがどのパッケージに含まれていたか調べたい、というときに有用だ。

レシートファイルに記された情報は「lsbom」コマンドで表示できるが、少々わかりにくい。ここはTerminalにこだわらず、レシートファイルの中身をGUIで確認できるQuickLookプラグイン「SuspiciousPackage」を使うのが吉だろう。

「lsbom」コマンドを使い、レシートファイルの内容を表示したところ。これではわかりにくい……

QuickLookプラグイン「SuspiciousPackage」を使えば、BOMファイルの内容をわかりやすく表示できる

謎のキャッシュ領域「/var/folders」

/varディレクトリには、「folders」というOS X独自のサブディレクトリがある(以下、/var/folders)。このディレクトリ、早い話が「いろいろなアプリケーションに使用されるキャッシュ領域」なのだが、ひとつ覚えておくとトクなことがある。それは、環境変数「TMPDIR」との関係だ。

環境変数TMPDIRには、この/var/folders以下に作成されたディレクトリが割り当てられている。そのパスは「/var/folders/z9/1tl0mp_25v9c04m26bts1m...」などと意味不明なもので、とても記憶できたものではないが、環境変数TMPDIRを参照すればわけはない。たとえば、以下のとおりopenコマンドの引数に与えれば、Finderで開くことができる。

このキャッシュ領域の用途はバリエーション豊富で、SafariやApple Mailで表示したPDF、プレビューで作成し「名称未設定」のまま閉じてしまった画像など、いろいろなファイルが保存されている。ログアウトすると消去されてしまうので、しばらく使用したあとに覗いてみるとおもしろいかもしれない。

$ open $TMPDIR

/var/db/...以下の一時使用領域をFinderで表示したところ。Safariで閲覧したPDF(未保存)などが置かれていた