请选择 进入手机版 | 继续访问电脑版

苹果发烧友论坛

 找回密码
 注册
查看: 13070|回复: 41

[OSX 系统] Mac OS X Hints 翻译计划:卸载通过.pkg安装的应用程序

[复制链接]
发表于 2010-1-12 03:12:12 | 显示全部楼层 |阅读模式
本帖最后由 ibookg4baby 于 2010-1-12 04:35 编辑

原文地址:Uninstall applications installed from packages
by:oblahdioblidaa

mac os x为通过安装包(.pkg)安装的应用程序保留了安装项目的清单,用lsbom命令可以查看并卸载这些应用。

实际的.bom(材料清单?)文件地址是

/Library/Receipts/some_app.pkg/Contents/Archive.bom
或者在 /Users/Username/Receipts/some_app.pkg/Contents/Archive.bom

可以据此手动或使用以下命令来删除已安装文件。
  1. lsbom -fls  /Library/Receipts/some_app.pkg/Contents/Archive.bom | (cd /; sudo xargs rm)
复制代码
删除前请检查文件列表,这个命令只在路径相对于根目录(从根目录开始的路径)时有效,原作者未试过名字内包含空格的应用。


p.s  作者从一个mac os x的邮件列表中看到这个代码,原始列表中提出警告,不同应用程序.bom结构的差异可能会导致危险。


(就是不提示而直接删除或删掉多余的东西之类的意思?对危险没有认识小朋友们当心啊当心!后果自负!不是我负,谁照这帖删错东西自己负!



luki补充:10.6 需要先显示隐藏文件,路径是在 /private/var/db/receipts

另外,关于何为.pkg,路过的小朋友肯定有不明白的,往下看第二页吧

评分

参与人数 2威望 +70 收起 理由
luki + 40 我很赞同
la.onger + 30 违规内容

查看全部评分

发表于 2010-1-12 03:19:57 | 显示全部楼层
本帖最后由 la.onger 于 2010-1-12 03:22 编辑
删除前请检查文件列表,这个命令只在路径相对于根目录时有效,原作者未试过名字内包含空格的应用。


这句话不妥,因为这是很重要的涉及安全的信息,应该这么翻译:

注意!! 如果把lsbom返回的list直接传递给rm删除的话,一定要注意lsbom返回的文件路径,他是以根目录为工作目录的。所以在传递给rm删除文件之前,一定要切换工作目录。另外原作者没有处理过名字中包含空格的软件。正如这条命令:
lsbom -fls  /Library/Receipts/some_app.pkg/Contents/Archive.bom | (cd /; sudo xargs rm)


另外还有一条回复比较有用:
In Mac OS X 10.6.x Snow Leopard, however, most package receipts aren't in "/Library/Receipts" in the classic form anymore, but rather - accessible with "Go To Folder..." in the Finder - in the invisible folder "/private/var/db/receipts" (in the form of associated ".bom"s and ".plist"s)...


译文:在10.6中,大多数的receipts不在“/Library/Receipts”目录中,而是应该这样找:使用“前往文件夹。。。。”,转到“/private/var/db/receipts”目录。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-12 03:21:53 | 显示全部楼层
你告诉我~一般路人几个能明白
把lsbom返回的list直接传递给rm删除

评分

参与人数 1威望 +30 收起 理由
la.onger + 30 违规内容

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2010-1-12 03:21:59 | 显示全部楼层
10.6 需要先显示隐藏文件,路径是在 /private/var/db/receipts
回复 支持 反对

使用道具 举报

发表于 2010-1-12 03:23:21 | 显示全部楼层
你告诉我~一般路人几个能明白
ibookg4baby 发表于 2010-1-12 03:21



真得不明白。。。。

我看到这段的时候我也蒙了,后来运行了命令才知道他是这个意思。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-12 03:26:00 | 显示全部楼层
feed the list to rm

反正我这种对编程么有概念的人肯定是难以明白的
等我明白过来都一袋子巧克力下肚了

就干脆这么得了吧
好使最有用

评分

参与人数 1威望 +30 收起 理由
la.onger + 30 恶意灌水

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2010-1-12 03:27:51 | 显示全部楼层
反正我这种对编程么有概念的人肯定是难以明白的
等我明白过来都一袋子巧克力下肚了

就干脆这么得了吧
好使最有用
ibookg4baby 发表于 2010-1-12 03:26


你放心,一大堆windows程序员和用户也不懂这是啥意思。。。。

说实话,他这段一开始真得没理解,后来我运行命令,又看了他的代码才明白。。。。


不过你把这段翻译得很巧妙啊。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-12 03:38:09 | 显示全部楼层
你放心,一大堆windows程序员和用户也不懂这是啥意思。。。。

说实话,他这段一开始真得没理解,后来我运行命令,又看了他的代码才明白。。。。


不过你把这段翻译得很巧妙啊。。。。
la.onger 发表于 2010-1-12 03:27


巧妙个p
这叫破罐子破摔
怎么让路过的小朋友们迅速看明白怎么翻
回复 支持 反对

使用道具 举报

发表于 2010-1-12 03:39:30 | 显示全部楼层
话说Linux程序员的我大概懂这句话是干嘛的
就是找出一个bom文件所包关联的所有文件,然后删除。
不过找出来的关联文件可能会被其他软件甚至系统所需要,删除后有可能会带来无法预计的结果。而且rm很邪恶,不会给你确认的机会,也不会把文件丢到回收站里而是直接删除,所以作者/译者最好在最后加上一句”后果自负“以推卸责任。
回复 支持 反对

使用道具 举报

发表于 2010-1-12 03:40:40 | 显示全部楼层
巧妙个p
这叫破罐子破摔
怎么让路过的小朋友们迅速看明白怎么翻
ibookg4baby 发表于 2010-1-12 03:38



没错,你这个确实很明白了。


我那么翻译就是怕路过的shell程序员搞错,尤其是我这种好写个脚本的。。。。
回复 支持 反对

使用道具 举报

发表于 2010-1-12 03:44:18 | 显示全部楼层
本帖最后由 la.onger 于 2010-1-12 03:50 编辑
话说Linux程序员的我大概懂这句话是干嘛的
就是找出一个bom文件所包关联的所有文件,然后删除。
不过找出来的关联文件可能会被其他软件甚至系统所需要,删除后有可能会带来无法预计的结果。而且rm很邪恶,不会给你 ...
peterlin0 发表于 2010-1-12 03:39



通过这种方式安装的软件一般都是相互独立的,即便是发现有得pkg是相互关联的,往往也是同一个程序中附带的各个pkg。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-12 03:45:12 | 显示全部楼层
本帖最后由 luki 于 2010-1-12 03:46 编辑
话说Linux程序员的我大概懂这句话是干嘛的
就是找出一个bom文件所包关联的所有文件,然后删除。
不过找出来的关联文件可能会被其他软件甚至系统所需要,删除后有可能会带来无法预计的结果。而且rm很邪恶,不会给你 ...
peterlin0 发表于 2010-1-12 03:39


仙人掌你看……不是所有路过的普通小朋友都明白这个虽然啰嗦但是硬着头皮看完才能明白的对于专业人员来说基本的问题的
写成这么啰唆人家直接放弃跑去找个用来卸载的软件装上完事
回复 支持 反对

使用道具 举报

QQ|小黑屋|手机版|Archiver|苹果发烧友论坛 ( 京ICP备16012027号-3 )

GMT+8, 2017-12-13 09:23 , Processed in 0.017001 second(s), 14 queries , Xcache On.

Powered by Discuz! X3.3 Licensed

© 2001-2013 Comsenz Inc.

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