设为首页 收藏本站
查看: 1406|回复: 0

[经验分享] OS X中的Launch Services(启动服务)的问题解决

[复制链接]

尚未签到

发表于 2016-5-18 07:22:26 | 显示全部楼层 |阅读模式
OS X中的Launch Services(启动服务)的问题解决


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的解决方案

注: 请看后面的更新内容(2008-11-16)

Tiger的解决方案
1. 退出所有的应用程序.
2. 把下面的两个文件删除, 他们在Macintosh HD > Library > Caches文件夹中:
. com.apple.LaunchServices-0140.csstore
. com.apple.LaunchServices-0140nnn.csstore

其中,nnn是uid码,和受影响的用户的uid在Netinfo数据库中的一样. 如果要求确认,请输入管理员的密码.
参见注释[1]和[2]

3. 重新启动机器.
4. 登录到有问题的账户.
5. 检查问题是否依然存在, 如果是:
1> 删除在Home > Library > Preferences文件夹中的com.apple.LaunchServices.plist文件.
参见注释[3]
2> 重复步骤1-5

Panther的解决方案:
1. 退出所有的应用程序.
2. 把com.apple.LaunchServices.6B.csstore文件删除, 它在Macintosh HD > Library > Caches文件夹中, 如果要求确认,请输入管理员的密码.
参见注释[1]
3. 重新启动机器.
4. 登录到有问题的账户.
5. 检查问题是否依然存在, 如果是:
1> 删除在Home > Library > Preferences文件夹中的com.apple.LaunchServices.plist文件.
参见注释[3]
2> 重复步骤1-5

Jaguar的解决方案:
1. 退出所有的应用程序.
2. 删除在有问题账户的Home > Library > Preferences文件夹中的com.apple.LaunchServices.plist文件.
参见注释[3]
3. 删除在有问题账户的Home > Library > Caches文件夹中的com.apple.LaunchServices.UserCache.csstore文件.

4. 重新启动机器.
5. 登录到有问题的账户.
6. 清空废纸篓.

Related Links:
Launch Services COncepts and Tasks.
Launch Services Reference.

注释:
[1] 当你第一次双击一个文档从而建立文档和应用程序的匹配时, 系统基于安全提示用户的, 而所有的匹配记录都存储在缓冲文件中, 这一步就是要删除它.

[2] 第一个建立的Mac用户的uid一般是501, 第二个是502, 以此类推. 所以对于第一个用户uid的文件名是:com.apple.LaunchServices-0140501.csstore. 你可以通过下面方法得到一个用户的uid:
1. 运行位于Macintosh HD > Applications > Utilities文件夹的NetInfo Manager程序.
2. 在中间栏中选择Users.
3. 在右边栏中选择要查看的用户名.
4. 在下边可以找到uid的值了.

[3] 这一步讲初始设置所有的特殊文件和程序的匹配关系. 例如, 如果你设置PDFs文件和Adobe Acrobat匹配,而不是默认的Preview, 那么重置以后,又要匹配到Preview打开, 直到你再次设定.

--------------------
后记:
注释[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

3. 在上面的注释[2]中,在shell script 中使用这样的格式就可以处理了:
/Library/Caches/com.apple.LaunchServices-014{0,${UID}}.csstore

4. 对于Leopard系统对应的文件应该是:
/Library/Caches/com.apple.LaunchServices-023{0,${UID}}.csstore

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-218368-1-1.html 上篇帖子: mysql for mac 安装和基本操作 下篇帖子: mac初心者小技巧汇总
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表