2012年9月14日金曜日

locateデータベースを作る方法

このアプリケーションで開く その2の記事で、lsregisterコマンドをlocateコマンドで見つけることができると書きましたが、locateコマンドが使えないというか期待通りに動作しない場合があります。locateコマンドが使うデータベースがまだ存在しない場合です。
Snow Leopardの場合ですが、以下のように表示されます。
$ locate lsregister

WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:

  sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.

簡単に訳すると、
locateコマンドが使うデータベース(/var/db/locate.database)がまだないので、sudo launchctl から始まっているコマンドで作ってと言っています。
これをターミナルで実行すればデータベースが作られます。1行で入力する必要があります。結構時間がかかると注意書きがあります。


launchctlコマンドが、直接locateデータベースを作っているのではなく、launchdというデーモンプロセス(システム上に常駐しているプロセス)に、/System/Library/LaunchDaemons/com.apple.locate.plistファイルに従って動作するように教えています。このファイル中で、locateデータベースを作るコマンドや実行するタイミングなどが定義されています。興味のある人は調べるといいと思いますが、データベースは1週間に一度土曜日の午前3:15に更新されるようです。最近インストールしたファイルはすぐ見つからない場合もあるかもしれません。

0 件のコメント:

コメントを投稿