OS X的Launch Services用于文档文件和相关的应用程序对应上, 他使用好几个文件来维护这些连接. 如果这些文件损坏了, 那么可能发生如下的问题:
. 当你双击打开一个文件的时候, OS X启动了错误的应用程序.
. 在Open With菜单中多次出现一个应用程序.
. 文件/文件夹或者其他对象的图标出现错误.
. Finder提示错误码:10660. 注意这个错误在要打开该文档的应用程序在Trash里面的时候也可能出现.
本文主要从Troubleshooting Mac OS X一书, 进行步骤处理Launch Services错误的时候, 一定要:
. 全面地阅读这个指引, 包括里面的注释.
. 对于不同版本的Mac OS X系统, 依照循序采取不同的步骤:
. Mac OS X 10.4 Tiger的解决方案
. Mac OS X 10.3 Panther的解决方案
. Mac OS X 10.2 Jaguar的解决方案
--------------------
后记:
注释[2]中,完全可以更简单地,使用Terminal命令行取得一个用户的UID或GID,很简单在Terminal里面输入: id [Username] 其中把[Username]替换成该用户的登录名就可以了.
-------------------- 更新: (2008-11-28) 严重错误,在2008-11-16的更新中的1和2中的命令颠倒了。
应该是,对于10.5的系统使用:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister-kill -r -domain local -domain system -domain user
而对于10.4和以前的系统使用:
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Support/lsregister-kill -r -domain local -domain system -domain user
更新: (2008-11-16)
一个更简单和跟安全的方法找到了:
1. 对于Leopard 10.5
运行这个命令就可以重构启动服务数据库了
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Support/lsregister-kill -r -domain local -domain system -domain user
2. 对于Tiger 10.4和以前的系统
运行这个命令:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister-kill -r -domain local -domain system -domain user