别名Yarn to Yarnpkg,以避免与Hadoop纱线冲突



我已经在计算机上安装了纱线(软件包管理器),但是我现在必须安装Apache Hadoop。当我尝试使用brew install hadoop进行此操作时,我得到了错误 -

Error: Cannot install hadoop because conflicting formulae are installed.
  yarn: because both install `yarn` binaries
Please `brew unlink yarn` before continuing.
Unlinking removes a formula's symlinks from /usr/local. You can
link the formula again after the install finishes. You can --force this
install, but the build may fail or cause obscure side-effects in the
resulting software.

这似乎是因为Hadoop的纱线与Yarnpkg的纱线冲突。

如下所述,他们无意重命名Yarnpkg的纱线,但它们已将yarnpkg添加为yarn的别名。

这样的答案只是提到使用yarnpkg而不是yarn来避免冲突,但是没有关于如何执行的步骤。

我感谢您对如何设置yarnpkg别名的任何帮助,以便我可以与纱线一起安装Hadoop。

我刚刚通过未链接和链接纱线解决了它。

brew unlink yarn && brew link yarn

您可以在.bashrc.zshrc中添加别名,如下所示

alias yarn='command yarnpkg'

我发现上述答案中提到的 brew link yarn无法正常工作。

我推测这是否可能仅链接非冲突的yarnpkg,但事实证明它拒绝链接,这似乎很公平。

概念上(使用YARN软件包管理器未链接)您可以做的就是在您的.bash_profile中添加一个别名,例如alias yarnpkg /usr/local/Cellar/yarn/1.22.0/bin/yarnpkg

请注意,当您酿造升级纱线为新版本时,这将是不健壮的。

另外,将目录添加到路径上不是一个好主意,因为这使得您有两个单独的程序,称为yarn已安装。

添加bash别名的一种替代方法是,只需添加单个,无冲突 symlink,以相同的方式brew链接如果不拒绝,则如上所述:p> ln -s /usr/local/Cellar/yarn/1.22.0/bin/yarnpkg /usr/local/bin/yarnpkg

在更新Yarnpkg时会发生什么,因此请注意这一点。由于显然不是由brew对yarnpkg的链接(除了偷偷添加了一个),如果brew没有更新该符号链接以指向新版本,那么yarnpkg将在 brew upgrade yarn时停止工作,除非您重复手动ln如上所述如上所述指向新版本。

更新

只是尝试了。Brew实际上拒绝升级纱线,这给出了与Hadoop冲突的原因。因此,正如它建议的那样,我们可以brew unlink hadoop,然后是brew upgrade yarn

然后, brew unlink yarnbrew link hadoop(hadoop比yarnpkg更需要链接),最后,使用so: /usr/local/Cellar/yarn/1.22.1/bin/yarnpkg

的新版本重新创建yarnpkg symlink

很长,但是工作正常。

这是解决此问题的一种简单方法:

  • 使用HomeBrew
  • 安装hadoop
  • 使用tarball
  • 手动安装yarn

逐步指南如果已经安装了yarn冲突的CC_25和hadoop

清理Homebrew中的冲突并安装Hadoop

  1. brew uninstall yarn
  2. brew uninstall hadoop
  3. brew install hadoop
  4. brew link hadoop(如果hadoop已安装HomeBrew但未链接)
  5. 可选)

使用tarball

Instal yarn
  1. brew install wget(如果没有WGET)
  2. cd /opt
  3. wget https://yarnpkg.com/latest.tar.gz(如果拒绝许可,请使用sudo
  4. tar zvxf latest.tar.gz(如果拒绝许可,请使用sudo
  5. 打开以下任何文件~/.profile~/.bash_profile~/.bashrc~/.zshrc在代码编辑器中以将yarn添加到路径
  6. 添加这两行
    export PATH="$PATH:/opt/yarn-[version]/bin"
    export PATH="$PATH:`yarn global bin`"
  7. 有关纱线官方文档的更多信息

我有

hyarn () {
        alias yarn=/opt/homebrew/bin/yarn
}
jyarn () {
        alias yarn=/usr/local/bin/yarn
}
jyarn
export PATH="$(yarn global bin):$PATH"
hyarn

我在我的点文件中有一个要在两个纱线命令之间进行上下文切换。我将功能hyarnjyarn导出为

export hyarn
export jyarn

对我来说很方便。

例如,对于Hadoop yarn

fahad in ~ λ hyarn
fahad in ~ λ yarn
Usage: yarn [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
 or    yarn [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
  where CLASSNAME is a user-provided Java class
  OPTIONS is none or any of:

和用于JS

yarn
fahad in ~ λ jyarn
fahad in ~ λ yarn
yarn install v1.22.10
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.05s.

相关内容

  • 没有找到相关文章

最新更新