文档章节

Mac OSX 卸载PKG包

胖熊要吃肉
 胖熊要吃肉
发布于 2015/10/08 11:21
字数 1065
阅读 123
收藏 2

mac osx上大多数应用程序都是通过.DMG或者.pkg来安装的(当然brew方式安装的除外),如果是通过DMG方式安装的软件,要删除它就挺简单,直接从osx的应用程序文件夹上删除即可。

那么pkg方式安装的软件又该怎么删除呢?

mac并没有提供什么快捷删除方式,我们只能找到pkg安装后产生的文件,然后删除它。

方式一

mac会维护一份pkg安装历史,只要找到那个文件夹,我们就可以对症下药了。

我的机子是osx 10.8.4,pkg历史安装列表在/private/var/db/receipts目录下,列出该目录,可以看到类似如下内容:

-rw-r–r– 1 root wheel 47315 6 15 15:48 com.codeius.izip.bom
-rw-r–r– 1 root wheel 253 6 15 15:48 com.codeius.izip.plist
找到.bom文件后,我们就可以使用以下命令找到安装的文件列表:

lsbom -pf com.codeius.izip.bom
执行上述命令后,输出了类似以下内容:

/iZip.app
./iZip.app/Contents
./iZip.app/Contents/CodeResources
./iZip.app/Contents/Frameworks
./iZip.app/Contents/Frameworks/libarchive.2.dylib
./iZip.app/Contents/Frameworks/libcurl.framework
./iZip.app/Contents/Frameworks/libcurl.framework/Headers
./iZip.app/Contents/Frameworks/libcurl.framework/Resources
./iZip.app/Contents/Frameworks/libcurl.framework/Versions
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/CodeResources
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curl.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlbuild.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlbuild32.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlbuild64.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlrules.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlver.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/easy.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/mprintf.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/multi.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/stdcheaders.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/typecheck-gcc.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/types.h
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Resources
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Resources/Info.plist
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/_CodeSignature
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/_CodeSignature/CodeResources
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/libcurl
./iZip.app/Contents/Frameworks/libcurl.framework/Versions/Current
./iZip.app/Contents/Frameworks/libcurl.framework/libcurl
./iZip.app/Contents/Info.plist
./iZip.app/Contents/MacOS
./iZip.app/Contents/MacOS/iZip
./iZip.app/Contents/PkgInfo
./iZip.app/Contents/Resources

以上找到的这些文件,就是安装pkg的时候产生的文件,这些文件删除了应该就ok了!(自行承担风险!)

方式二

方式一虽然可行,但是很多人都抱怨没找到pkg安装历史列表目录(确实不同版本的系统,目录是不一样的),那就试试方式二如下:

pkgutil命令这个时候就派上用场了。老规矩,先查看一下帮助,直接在命令行上执行pkgutil,看看有啥功能我们能用的(节选):

Receipt Database Commands:
–pkgs, –packages List all currently installed package IDs on –volume
–pkgs-plist List all package IDs on –volume in plist format

–files PKGID List files installed by the specified package

我们先找一下我们要删除的pkg包名(以上述iZip为例):

pkgutil –pkgs | grep -i izip
看一下输出了啥:

com.codeius.izip
ok,现在就可以找出izip pkg到底装了哪些文件:

pkgutil –file com.codeius.izip
终端输出的结果:

iZip.app
iZip.app/Contents
iZip.app/Contents/CodeResources
iZip.app/Contents/Frameworks
iZip.app/Contents/Frameworks/libarchive.2.dylib
iZip.app/Contents/Frameworks/libcurl.framework
iZip.app/Contents/Frameworks/libcurl.framework/Headers
iZip.app/Contents/Frameworks/libcurl.framework/Resources
iZip.app/Contents/Frameworks/libcurl.framework/Versions
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/CodeResources
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curl.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlbuild.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlbuild32.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlbuild64.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlrules.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/curlver.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/easy.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/mprintf.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/multi.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/stdcheaders.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/typecheck-gcc.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Headers/curl/types.h
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Resources
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/Resources/Info.plist
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/_CodeSignature
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/_CodeSignature/CodeResources
iZip.app/Contents/Frameworks/libcurl.framework/Versions/A/libcurl
iZip.app/Contents/Frameworks/libcurl.framework/Versions/Current
iZip.app/Contents/Frameworks/libcurl.framework/libcurl
iZip.app/Contents/Info.plist
iZip.app/Contents/MacOS
iZip.app/Contents/MacOS/iZip
iZip.app/Contents/PkgInfo
iZip.app/Contents/Resources

把这些文件删了应该就算卸载完毕。(risk on your own!)

方式三

哈哈,有的人要讲究效率,不喜欢折腾半天,就会问能不能一键搞定啊?真别说,还真有 http://www.corecode.at/uninstallpkg/,偶然发现这个东西,貌似不错,试用了一下,好像真成功卸载了。(就是不知道有没有卸载干净…)


© 著作权归作者所有

共有 人打赏支持
胖熊要吃肉

胖熊要吃肉

粉丝 2
博文 4
码字总数 1689
作品 0
东营
其他
私信 提问
Mac OSX操作系统安装和配置Zend Server 6教程(1)

作为web开发人员,应该熟悉掌握各种系统下安装和配置web服务器与站点的技术。 随着越来越多的开发人员选择Zend Server服务器,慧都推出了在Mac OSX系统安装和配置Zend Server 6教程,此教程将...

kouxunli1
2013/10/15
0
0
Lynis 2.4.0 发布,Linux 系统审计工具

Lynis 2.4.0 发布了,该版本更新内容较多,具体如下: New: New group "system integrity" added Support for clamconf utility Chinese translation (language=cn) New command "upload-onl......

局长
2016/11/06
1K
3
OSX malware and exploit collection (~100 files) + links and resources for OSX malware analysis

此文为关于MAC OSX系统的所有攻击脚本和溢出代码的收藏集。附带资源链接和相关讲解文档~mark下 'Tis the season. Here is a nice collection of ~100 Mac OS malware and Word document expl...

Cnlouds
2013/11/26
0
2
mac fatal error: 'stdlib.h' file not found

//1.检查头文件是否存在 $clang++ -E -x c++ - -v < /dev/null ignoring nonexistent directory "/usr/include/c++/v1" ignoring nonexistent directory "/usr/include" 注:说明macOS SDK 的......

席道坤
04/12
0
0
历经11个测试版,苹果 macOS Mojave 正式版发布

苹果今天发布了 macOS Mojave 正式版,Mojave 一共经历了 11 个测试版。Mac 用户可以免费下载和安装 Mojave。下载地址 >>> https://itunes.apple.com/us/app/macos-mojave/id1398502828?mt=1......

局长
2018/09/25
9.4K
51

没有更多内容

加载失败,请刷新页面

加载更多

JS 调用Angularjs 的方法

// 1. 获取 Controllerlet appElement = document.querySelector('[data-ng-controller=MessagesCtrl]');let scope = angular.element(appElement).scope();// 2. 调用方法scope.l......

Moks角木
22分钟前
0
0
dubbo+zookeeper与 eureka的区别

CAP CAP 原则指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得 在分布式架构里, P必须有 Zookeeper保证C P 当...

群星纪元
31分钟前
0
0
云计算之边缘计算大势所趋

如果说边缘计算是公同认定的目标,那么我们看到,不同类型的厂商基于自身的特点,会从不同的起点、沿着不同的路径,向这个目标奔跑。上次参加阿里云的一次活动,看到他们将边缘计算的厂商分成...

linuxCool
36分钟前
0
0
前端通过后端传过来的'\n' ,''等字符串换行失败问题

后台推送换行符 '\n' 或 '<br/>' 等字符串到前台不会换行 详细描述 后台逻辑处理返回String字符串,其中包含\n或<br/>等换行符号,但是前端渲染时候却并没有真正的换行 也尝试了大佬的各种 ...

下次用oschina
43分钟前
2
0
volatile能保证有序性吗?

在前面提到volatile关键字能禁止指令重排序,所以volatile能在一定程度上保证有序性。   volatile关键字禁止指令重排序有两层意思:   1)当程序执行到volatile变量的读操作或者写操作时...

无精疯
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部