その1は自宅のMacの話ですが、会社で使っているMacも同じようにコンテクストメニューでThe Unarchiver.appが2個表示されるようになりました。なんで、The Unarchiverばかりなんでしょう?
その1と違い、The Unarchiver.appにバージョン番号がついていません。
前回の手順と同じように、システムプロファイラからThe Unarchiverを探したのですが、1個しかインストールされていませんでした。
ウェブで(このアプリケーションで開く 複数と)検索したらLaunch Servicesのデータベースを再構築すると解決するらしいことがわかりました。
http://tinasite.net/archives/2007/1104_181253.php (一番最初に見つかったページ)
http://news.mynavi.jp/column/osx/180/ (少し調べた範囲では、一番古いページ)
データベースの再構築のコマンドは、lsregisterでターミナルから使用するようです。OSのバージョンによってパスが異なっているようです。一番目のサイトの人も困っていたみたいです。locateコマンドを使ってみます。(locateデータベースを作っておく必要があります)
$ locate lsregister
会社のMac (10.6.8)の場合は
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister
にあることがわかりました。そのディレクトリに移動します。
$ cd `dirname \`locate lsregister\``
# $ cd $(dirname $(locate lsregister)) でも同じです。
lsregisterコマンドのヘルプを見てみます。
$ ./lsregister -h
lsregister: [OPTIONS] [ <path>... ]
[ -apps <domain>[,domain]... ]
[ -libs <domain>[,domain]... ]
[ -all <domain>[,domain]... ]
Paths are searched for applications to register with the Launch Service database.
Valid domains are "system", "local", "network" and "user". Domains can also
be specified using only the first letter.
-kill Reset the Launch Services database before doing anything else
-seed If database isn't seeded, scan default locations for applications and libraries to register
-lint Print information about plist errors while registering bundles
-convert Register apps found in older LS database files
-lazy n Sleep for n seconds before registering/scanning
-r Recursive directory scan, do not recurse into packages or invisible directories
-R Recursive directory scan, descending into packages and invisible directories
-f force-update registration even if mod date is unchanged
-u unregister instead of register
-v Display progress information
-dump Display full database contents after registration
-h Display this help
まず、コンテクストメニューに2個のThe Unarchiver.appが表示されるようになったのでデータベースもそうなっているか、-dump オプションで確認してみます。
$ ./lsregister -dump | less
...
--------------------------------------------------------------------------------
bundle id: 189632
path: /Applications/The Unarchiver.app
name: The Unarchiver
identifier: cx.c3.theunarchiver (0x8001c2da)
こんな感じで見つかりました。2個同じ/Applications/The Unarchiver.app のパスで登録されていました。
また、調べたウェブページでは、みんな -kill でデータベースを再構築してるみたいですが、ヘルプをみると、-u オプションで特定のパスを削除できそうです。安易ですが、失敗したら再構築すればいいかなと思い、試してみました。
$ ./register -u "/Applications/The Unarchiver.app"
ThrottleProcessIO: throttling disk i/o
$
ThrottleProcessIO:のメッセージで一瞬ドキッとしましたが、ディスクI/Oを少し絞って実行したようで無事終わりました。
-dumpオプションで確認したら、The Unarchiver.appは1個だけ登録された状態になっていました。
Finderで確認してみます。
直ったみたいです。
0 件のコメント:
コメントを投稿