我已经在计算机上安装了纱线(软件包管理器),但是我现在必须安装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 yarn
, brew link hadoop
(hadoop比yarnpkg更需要链接),最后,使用so: /usr/local/Cellar/yarn/1.22.1/bin/yarnpkg
很长,但是工作正常。
这是解决此问题的一种简单方法:
- 使用
HomeBrew
安装 - 使用
tarball
手动安装
hadoop
yarn
逐步指南如果已经安装了yarn
冲突的CC_25和hadoop
:
清理Homebrew
中的冲突并安装Hadoop
-
brew uninstall yarn
-
brew uninstall hadoop
-
brew install hadoop
-
brew link hadoop
(如果hadoop
已安装HomeBrew
但未链接)
可选)
使用tarball
Instal yarn
-
brew install wget
(如果没有WGET) -
cd /opt
-
wget https://yarnpkg.com/latest.tar.gz
(如果拒绝许可,请使用sudo
) -
tar zvxf latest.tar.gz
(如果拒绝许可,请使用sudo
) - 打开以下任何文件
~/.profile
,~/.bash_profile
,~/.bashrc
,~/.zshrc
在代码编辑器中以将yarn
添加到路径 - 添加这两行
export PATH="$PATH:/opt/yarn-[version]/bin"
export PATH="$PATH:`yarn global bin`"
- 有关纱线官方文档的更多信息
我有
hyarn () {
alias yarn=/opt/homebrew/bin/yarn
}
jyarn () {
alias yarn=/usr/local/bin/yarn
}
jyarn
export PATH="$(yarn global bin):$PATH"
hyarn
我在我的点文件中有一个要在两个纱线命令之间进行上下文切换。我将功能hyarn
和jyarn
导出为
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.