在编译一些端口时,我意识到它依赖于 1000 多个其他端口,并且将永远安装直到我死或我的磁盘已满(我的硬盘真的很小)。
我打断了make install clean
。
我如何uninstall
以及clean
那些已经构建和安装的依赖项?(至少有 100 多个)
pkg_cutleaves
在这种情况下不会工作,因为主端口尚未注册。
请帮忙。
FreeBSD 9.0-RELEASE amd64
编辑:问这个问题的另一种方式:如何查看未注册端口的所有依赖项,以及这些依赖项的所有子依赖项,独立于先前安装的端口或其 [sub] 依赖项?
下次在开始构建端口
make all-depends-list
之前运行。如果您不喜欢您在列表中看到的内容,请不要再往前走。
这个和其他 gem 可以在
/usr/ports/Mk/bsd.port.mk
. 虽然不友好阅读。在收拾烂摊子方面,你有点搞砸了。
你真的有两个我能想到的选择:
选项 1 - 运行上面的命令,找出不需要的内容,然后将其卸载。
这可能是最不痛苦的选择。
选项 2 - 运行
pkg_info -aR
并查找没有依赖项的包。确定哪些是您不需要的并卸载它们。
(恕我直言,这是每年左右的一次很好的内务管理做法,但这很烦人。)
在清理构建碎屑方面,一个简单
make clean
的在有问题的端口目录中应该触发依赖项的清理。你也可以做一个make clean
in ,但如果你想走那条路,/usr/ports
把树吹走并重新提取它可能会更快......portsnap
作为另一个非常针对这种情况的(更脏的)选项:如果您知道自从“错误”之后您还没有安装任何其他端口,并且上次安装端口是在不久之前,您可以使用目录的创建日期
/var/db/pkg
- 只需删除在中止安装时创建数据库条目的包。与上面的其他选项一样,您仍然需要查看要删除的软件包,以确保您不会丢失任何重要的东西,但如果可行的话,这应该比其他两个选项短得多对于你的情况。
如果您知道开始的日期/时间,则解决方案非常简单
make install
:ls -ltr /var/db/pkg
*** 运行一次是不够的,因为在你生成的包列表中 - 有相互依赖的包。
make install clean
install
在开始之前完成所有依赖项clean
。如果您的 ports 树在您启动时是干净的,那么您刚刚安装的依赖项就是那些具有work
子目录和.install_done*
这些子目录中的文件的依赖项。试一试
portmaster -s
。它将为您提供删除系统上不依赖的端口的方法。(如果您没有安装它,请先从 ports-mgmt/portmaster 安装它。)