我目前正在安装qt4-mac,并且需要永远建立。我已经四处寻找,我发现安装需要2-5个小时。
有没有办法打断这个安装过程?如果是这样,我之后需要做一些清理吗?
答案 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)
基于 4ae1e1 的答案,虽然他中断了发送 SIGKILL
信号的过程,但我中断了它发送了实际的 SIGINT
信号,即通常的 Ctrl+C
,并且现在没有 MacPorts 应用程序在运行。
所以我完全同意 4ae1e1。
如果您需要暂停安装,例如因为您需要您的 CPU 可用于其他事情,改为发送 SIGSTOP
信号,以便暂停安装。
kill -STOP installationPIDs
一旦你准备好恢复它,你可以发送一个 SIGCONT
信号然后你就可以完成它了。
kill -CONT installationPIDs
您应该很容易找到安装进程的 PID,例如,您只需运行 htop
并查看使用大部分 CPU 的进程。
即使您改变主意并且不想再安装该端口/包,我也强烈建议您完成安装(根据下面的建议在需要时暂停它),然后卸载该端口/包。这听起来像是在浪费时间,但这是最安全的做法。