为什么某些自制配方显示它们与另一个配方冲突?

时间:2018-07-27 14:35:55

标签: homebrew

诸如one之类的一些自制公式显示以下冲突:

This formula is in conflict with the following:

这种冲突是什么意思,其影响是什么?

1 个答案:

答案 0 :(得分:1)

这意味着某些公式提供了通用文件或通用服务,并且无法同时安装两者。

例如公式Sonarqube  和SonarqubeLts之所以冲突,是因为它们以不同的版本提供相同的应用程序。另一个示例是公式MySQLMariaDB相互冲突,因为它们同时提供了同一DBMS的稍加修改的版本。

==编辑

公式hiveapache-spark没有任何冲突。您可以使用以下方法进行检查:

brew info hive apache-spark

过去曾经发生冲突,因为这两个公式都安装了beeline二进制文件,但这可以通过以下commit解决:

commit b64c35859510788a31a6ffcbb18b2d10b7946d03
Author: Tim D. Smith <git@tim-smith.us>
Date:   Tue May 5 15:24:12 2015 -0700

    apache-spark: rename beeline to avoid hive conflict

    Reference Homebrew/homebrew#39319.

diff --git a/Formula/apache-spark.rb b/Formula/apache-spark.rb
index 559ea862bb..0bec8aad9f 100644
--- a/Formula/apache-spark.rb
+++ b/Formula/apache-spark.rb
@@ -5,11 +5,13 @@ class ApacheSpark < Formula
   head "https://github.com/apache/spark.git"
   url "https://d3kbcqa49mib13.cloudfront.net/spark-1.3.1-bin-hadoop2.6.tgz"
   version "1.3.1"
+  revision 1
   sha1 "86911b6c8964230a93691bd45589f491c10d36c0"

-  conflicts_with 'hive', :because => 'both install `beeline` binaries'
-
   def install
+    # Rename beeline to distinguish it from hive's beeline
+    mv "bin/beeline", "bin/spark-beeline"
+
     rm_f Dir["bin/*.cmd"]
     libexec.install Dir["*"]
     bin.write_exec_script Dir["#{libexec}/bin/*"]

您在问题中提供的链接可能未使用这些公式的最新版本进行更新。