在OS X下「删除」软件包

以前在某网站学习英语的时候,我在OS X上安装过一个插件,然后很久没有学了,就忘记了这个插件。

直到今天去Safari改首选项,发现弹出来这个错误框:

EF Talk Plugin Error

由于我不再需要它了,也许重装可以解决问题,但是我还是决定删除它。问题是去那里删除呢?根本就没有可以删除的入口。

我想起来以前我是通过标准的OS X软件包安装的对话框的,于是我稍微研究了一下,结果发现OS X并没有暴露出相关接口让用户通过命令行的形式去操作软件包,基本上只能做一做查询的工作。

于是,我通过「pkgutil --pkgs」的形式列出所有安装着的软件包,然后找到了这个插件的名字叫「Kingtas.com.efAsrMacVersion.talkpalaxplugin.pkg」,然后我再用上面这条指令,列出文件(它似乎不支持列出完整的路径):

pkgutil --files Kingtas.com.efAsrMacVersion.talkpalaxplugin.pkg

接下来怎么办呢?用find指令找吧,然后到「/Library/Internet Plug-Ins」自己手动删除目录,最后告诉pkgutil永远忘记它:

sudo pkgutil --forget Kingtas.com.efAsrMacVersion.talkpalaxplugin.pkg

输完这条指令后,如果一切顺利的话,pkgutil会告诉你它忘记这个软件包了……

Forgot package 'Kingtas.com.efAsrMacVersion.talkpalaxplugin.pkg' on '/'

后记

不知道是不是我的认识有限,OS X本身是没有完整的暴露给用户的包管理工具的,有的也只是pkgutil这样的简易查询和「忘记」工具而已。有朋友知道OS X标准的删除这类手动安装的软件包的方式吗?

更新

知道怎么定位软件安装在哪里了,只要去查询receipt的plist就可以了:

``` plutil -p /private/var/db/receipts/支付宝安全控件.pkg.plist

{ "PackageVersion" => "2" "PackageIdentifier" => "支付宝安全控件.pkg" "InstallPrefixPath" => "Library/Internet Plug-Ins" "InstallDate" => 2011-08-15 15:32:01 +0000 "PackageFileName" => "支付宝安全控件.pkg" "InstallProcessName" => "Installer" } ```

然后就知道安装在「/Library/Internet Plug-Ins」下了 :D

欢迎使用图拉鼎开发的产品

奇点 - 轻轻松松刷微博

为 iOS 设计的第三方微博客户端,简洁高效、标准时间线等特性。App Store 免费下载使用。

11 Comments

主席你需要AppCleaner

TualatriX 回复 @shellex

感谢猫猫~可以用。但是不知道命令行怎么搞呢

LR90 回复 @TualatriX

猫猫这个萌的。。。。

Ma Xiaojun 回复 @shellex

我覺得儘量不裝pkg纔是正道吧……

Mark 一下,以后不知道如何删软件回来你这里学习。

sundaymouse

话说CleanMyMac也有删除Safari扩展的功能

yang

话说OSX的窗口阴影可真够大的。

Ma Xiaojun 回复 @yang

截圖工具故意添加陰影的……

nothing@null.com 回复 @Ma Xiaojun

平时就这么大啊,跟截图工具无关吧

memnon

不错,不错,搞定了一个插件

Snow

我的plutil 怎么没有-p 这个选项 。。。

Leave a Comment