Macports:-f标志究竟是什么意思?

时间:2015-11-05 22:34:09

标签: macports

让我们进行对比

sudo port install [port_name]

sudo port -f install [port_name]

在这种情况下,标志-f究竟做了什么?为什么我们每次安装新端口时都不使用-f标志?

2 个答案:

答案 0 :(得分:1)

安装时,强制标志用于强制激活,以防您正在安装的端口提供的文件已存在于您的系统上。如果没有强制标志,MacPorts将中止安装并警告您;使用该标志,MacPorts将重命名现有文件(附加.mp_ $ timestamp)。

如果您之前已卸载某个版本的MacPorts但未清除其提供的所有文件,或者使用MacPorts构建的第三方安装程序已将文件安装到/opt/local(这是错误的,但是有时仍会发生。)

因为覆盖不是安全行为,所以它不是默认行为。这也是您不应该始终指定-f

的原因

答案 1 :(得分:0)

标志-f是强制安装/安装。如果存在阻止安装/卸载macport的依赖项,则可以使用-f标志强制安装/卸载,但这不是安装/卸载的理想方式。

查看http://www.eclipse.org/jetty/documentation/current/startup.html

中的解释
sudo port uninstall libcomerr
--->  Unable to uninstall libcomerr @1.42.9_0, the following ports depend on it:
--->    kerberos5 @1.11.3_0
--->    subversion @1.8.9_0
--->    subversion-perlbindings-5.16 @1.8.9_0
Error: port uninstall failed: Please uninstall the ports that depend on libcomerr first.

在卸载端口本身之前,您可以递归卸载依赖于给定端口的所有端口以解决此问题。为此,请使用--follow-dependents标记。

$ sudo port uninstall --follow-dependents libcomerr
  

您还可以使用-f(强制)标志覆盖此安全检查。   因为这显然会打破家属,所以你不应该这样做   除非你知道你在做什么。

$ sudo port -f uninstall libcomerr

虽然这是卸载的一个示例,但您可以看到-f标志的工作原理。