47

如何在 Mac OS X 中完全卸载(删除属于某个包的文件)?这可以使用终端中的命令来完成吗?

我在我的 Mac 上安装了一个 .pkg 包,我想知道如何在不使用 UninstallPKG 等第三方应用程序的情况下卸载整个包?

我想知道卸载 .dmg 文件是否还需要第三方应用程序,或者是否可以在终端中输入命令来卸载它们?

4

3 回答 3

39

在终端中使用此命令检查软件包列表并卸载您的文件。

$ pkgutil --pkgs # list all installed packages

卸载文件后,您可以删除收据:

$ sudo pkgutil --forget the-package-name.pkg

在目视检查文件列表后,您可以执行以下操作:

$ pkgutil --pkg-info the-package-name.pkg # check the location
$ cd / # assuming the package is rooted at /...
$ pkgutil --only-files --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -i

小心这最后一步。输出的目录列表pkgutil --files可以包括usr不想删除的重要共享目录,例如。

$ pkgutil --only-dirs --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -ir

从这里复制(原件的 Wayback Machine 快照)

于 2014-12-18T11:59:19.853 回答
28

我正在修改@karthikeyan 的答案,这对我不起作用。

在命令行中,使用以下命令查找所需的包名称:

$ pkgutil --pkgs | grep -i {keyword} | less

其中 {keyword} 是您希望在包名称中看到的字符串。

要查找包位置(所有文件列表将相对的根目录),请使用

$ pkgutil --pkg-info package-name.pkg

使用它来列出软件包的已安装文件:

$ pkgutil --files package-name.pkg

在目视检查文件列表后,您可以执行以下操作来删除它们:

$ cd / # assuming the package location is /
$ pkgutil --only-files --files package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 -p sudo rm

请注意下一个(最后)步骤,该步骤将删除目录。输出的目录列表pkgutil --files可以包括usr不想删除的重要共享目录,例如。-p导致xargs提示确认,但不要触发快乐。(你也应该安全rmdir,因为它只会删除空目录。但是有些人需要调整命令行,所以最好清楚!)

$ pkgutil --only-dirs --files package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 -p sudo rmdir

卸载文件后,您可以删除该软件包的系统记录:

$ sudo pkgutil --forget package-name.pkg

来源:pkgutil 手册页这篇文章

于 2017-02-08T17:56:35.410 回答
8

OS X 中不存在 PKG 卸载的概念。PKG/MPKG 可以有某些与之相关的安装前和安装后脚本。在 PKG 脚本中完成的工作始终取决于 PKG 创建者。作为外行,我们不能继续卸载 PKG。

但同时也有命令行可以对 PKG 文件进行完整的逆向工程。它可以提取脚本和其他相关信息。下面给出的链接将为您提供一些信息

http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html http://www.mactech.com/articles/mactech/Vol.26/26.02/TheFlatPackage/index.html

OS X 上可用的卸载/清理应用程序很少。它们中的大多数使用应用程序名称/pkg 名称或捆绑标识符在已知目录(如 /Library/Preferences、/Library/Application Support 等)中进行搜索。这是进行完全删除的一种方法。

DMG 不是安装程序文件。它们是磁盘映像文件。它可以反过来拥有 .apps、pkg、mpkgs、其他文件等。安装的是 DMG 中的安装程序。必须安装 DMG 才能读取内容并在完成后卸载。

http://osxdaily.com/2011/12/17/mount-a-dmg-from-the-command-line-in-mac-os-x/

此链接提供有关如何安装 DMG 的信息

于 2014-12-12T07:29:22.500 回答