如何在不进行迁移的情况下卸载 macports?

How to uninstall macports without doing a migration?

我目前使用的是 MacOS High Sierra 10.13.5。我想在我的 macbook 上卸载 MacPorts。

根据此处的说明:

https://guide.macports.org/chunked/installing.macports.uninstalling.html

我应该做以下事情

$ sudo port -fp uninstall installed

这是我看到的回复:

Error: Current platform "darwin 17" does not match expected platform "darwin 16"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
    while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

我真的需要先迁移再卸载吗?现在有直接安装的方法吗?

绝大多数 MacPorts 安装的东西都进入 /opt/local。当然,您可以使用以下方式删除它:

sudo rm -rf /opt/local

我知道有几个端口可以将东西安装到 /Applications/MacPorts,所以你也可以这样做来捕获那些东西:

sudo rm -rf /Applications/MacPorts

我有一个端口在 /Library/LaunchDaemons 中安装了启动守护程序,所以:

sudo rm -rf /Library/LaunchDaemons/org.macports.*

您可以检查类似的地方,例如 /Library/LaunchAgents 和 ~/Library 中的相应目录。


实际上,您在问题中提供的 link 告诉您该怎么做:

$ sudo rm -rf \
        /opt/local \
        /Applications/DarwinPorts \
        /Applications/MacPorts \
        /Library/LaunchDaemons/org.macports.* \
        /Library/Receipts/DarwinPorts*.pkg \
        /Library/Receipts/MacPorts*.pkg \
        /Library/StartupItems/DarwinPortsStartup \
        /Library/Tcl/darwinports1.0 \
        /Library/Tcl/macports1.0 \
        ~/.macports

虽然绝大多数文件都安装在 /opt/local/Applications/MacPorts/Library/LaunchDaemons/org.macports.* 中,但也有一些端口将文件安装在其他位置,例如由于操作系统要求。根据您是否安装了此类端口,Ken () 的解决方案可能会留下一些文件。

如果您想确保捕获所有文件,请按照 MacPorts migration instructions 直到第 3 步,即基本上重新安装 MacPorts 基础(例如通过 运行 安装程序)。这应该只需要几分钟。

然后,按照https://guide.macports.org/#installing.macports.uninstalling,即运行

$ sudo port -fp uninstall installed

然后是 Ken 的回答中已经提到的 rm -rf 命令。