代码之家  ›  专栏  ›  技术社区  ›  Henry Yang

为什么在链接keg only公式时,自制程序要求我添加--force选项?

  •  2
  • Henry Yang  · 技术社区  · 6 年前

    运行后

    brew install yarn
    

    node 安装在我的系统上:

    $ node -v
    v10.5.0
    

    因为 节点 yarn (如果我错了,请纠正我,如果我也对了,请告诉我)

    纱线 this )所以我想用一个旧版本的 节点 使我的应用程序现在工作。根据 this ,我做了这些:

    $ brew install node@8
    $ brew unlink node
    $ brew link node@8
    

    $ brew link node@8 给我以下信息:

    Warning: node@8 is keg-only and must be linked with --force
    Note that doing so can interfere with building software.
    
    If you need to have this software first in your PATH instead consider running:
      echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.zshrc
    

    rvm use ruby-version-here 所以我想 brew link formula 会有用的,但为什么它需要力量?

    我知道,brew's keg只意味着它只在cellar中,不在/usr/local/bin/或/usr/local/lib/中链接,但brew link不帮助我们链接它,为什么它需要--force选项,它做什么,感觉很危险。

    brew help link 说:

    如果传递了--force(或-f),则自制程序将只允许keg公式 联系起来。

    为什么我们要小心把他们联系起来?我们能弄断什么吗?

    我想用 node@8 而不是 node (the latest version)

    更新1: 当我继续寻找并找出原因时,我看到 this ,但我不完全理解。当链接到新版本的公式时,似乎需要删除一些文件。但我认为链接只是替换某个地方的链接,也许只是替换一个文件?为什么要创建一个特定的--force选项来链接到新的仅桶公式?我想只有小桶配方奶的性质有点特别。有人知道为什么吗?

    注: This this 解释酒桶的唯一含义

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ortomala Lokni    6 年前

    首先,是的 node yarn ,您可以使用:

    brew deps yarn
    

    然后 --force option的名称可能不太好,但它确实符合手册页中所说的:

    这只是自制的方式,不用害怕。

    在以前版本的 Homebrew the documentation 更清楚的是:

    如果 --武力 如果通过,则Homebrew将在链接时删除前缀中已存在的文件。

    如果 --dry-run -n 通过后,自制程序将列出 删除者 brew link --force 任何文件。

    这是 discussion 在引入 --武力