中断长MacPorts安装

时间:2012-02-15 04:39:55

标签: macos qt4 terminal macports

我目前正在安装qt4-mac,并且需要永远建立。我已经四处寻找,我发现安装需要2-5个小时。

有没有办法打断这个安装过程?如果是这样,我之后需要做一些清理吗?

4 个答案:

答案 0 :(得分:2)

您是否尝试过使用control+c

另外,我不完全确定清理,但根据MacPorts docs,命令sudo port -fp uninstall --follow-dependents [your port name here]应该有帮助(这个页面是关于卸载MacPorts本身,但它是相同的命令)。我不确定MacPorts如何处理被中断的安装,以及它是否将“半安装”项目视为可卸载,但值得一试。

答案 1 :(得分:1)

这是一个老话题,但我想就此分享我的个人意见。

曾几何时(两年前我猜,不确定当前的状况)我中断了MacPorts更新(sudo port upgrade outdated)而不是Ctrl+C(大约SIGINT) ,而是SIGKILL,因为我当时遇到了硬件问题。我最终得到了一个完全破坏安装,无法完成所有清理或恢复工作,最后我恢复了/opt/local的完整备份。

从那时起,即使使用Ctrl+C,我也绝不敢打断MacPorts的安装/升级。

故事的寓意是:打断MacPorts安装过程可能非常危险。如果它只是运行了很长时间,请不要管它(有时构建 需要永远)。如果您确实认为它是挂起而不是实际构建,请确保您有备份,并谨慎行事(当然,在您运行安装时,备份已经太晚了)。

答案 2 :(得分:0)

我也想插手。我认为一个好的做法是在Ctrl+C之前观察你在安装中的位置,然后清理你所依赖的依赖关系并稍后重做主安装。例如,我正在安装kdenlive并在virtuoso(许多依赖项之一)安装中杀死它。之后,我执行了sudo port -v selfupdate,然后执行了port clean virtuoso,然后使用sudo port install kdenlive再次启动了kdenlive安装。这似乎是一个不错的方式;当它到达艺术家时,它在第一部分巡航并以正常速度拾起。

答案 3 :(得分:0)

不要按 Ctrl+C

基于 4ae1e1 的答案,虽然他中断了发送 SIGKILL 信号的过程,但我中断了它发送了实际的 SIGINT 信号,即通常的 Ctrl+C,并且现在没有 MacPorts 应用程序在运行。

所以我完全同意 4ae1e1。

如果你需要你的机器

如果您需要暂停安装,例如因为您需要您的 CPU 可用于其他事情,改为发送 SIGSTOP 信号,以便暂停安装。

kill -STOP installationPIDs

一旦你准备好恢复它,你可以发送一个 SIGCONT 信号然后你就可以完成它了。

kill -CONT installationPIDs

您应该很容易找到安装进程的 PID,例如,您只需运行 htop 并查看使用大部分 CPU 的进程。

如果您改变主意安装

即使您改变主意并且不想再安装该端口/包,我也强烈建议您完成安装(根据下面的建议在需要时暂停它),然后卸载该端口/包。这听起来像是在浪费时间,但这是最安全的做法。