我的机器上已经安装了Yarn(程序包管理器),但是现在我必须安装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的Yarn与yarnpkg中的纱线冲突。
如here所述,他们无意重命名yarnpkg的纱线,但他们有added yarnpkg
as an alias to yarn
。
此SO answer只是提到使用yarnpkg
而不是yarn
来避免冲突,但是没有做到这一点的步骤。
我将非常感谢您提供有关如何设置yarnpkg
别名的帮助,以便我可以与yarn一起安装Hadoop。
答案 0 :(得分:0)
我只是通过再次取消连接和连接纱线来解决它。
brew unlink yarn && brew link yarn
您可以按以下步骤在.bashrc
或.zshrc
中添加别名
alias yarn='command yarnpkg'
答案 1 :(得分:0)
我发现上述答案中提到的brew link yarn
无效。
我推测这是否只能链接不冲突的yarnpkg
,但事实证明它拒绝链接两者,这似乎很公平。
从概念上讲,(未连接纱线卷装经理)您可以做的是向您的.bash_profile中添加别名,例如alias yarnpkg /usr/local/Cellar/yarn/1.22.0/bin/yarnpkg
请注意,当您将升级纱线酿造到新版本时,这种方法并不可靠。
此外,将目录添加到您的路径也不是一个好主意,因为这使您安装了两个名为yarn
的单独程序的事实变得模棱两可。
添加bash别名的另一种方法是手动添加无冲突的符号链接,就像brew链接不拒绝的方式一样,如上所述:>
ln -s /usr/local/Cellar/yarn/1.22.0/bin/yarnpkg /usr/local/bin/yarnpkg
当更新yarnpkg时会发生什么还有待观察,因此请注意这一点。显然,由于yarnpkg并未通过brew进行符号链接(除非我们偷偷添加了一个符号链接),如果brew没有更新该符号链接以指向新版本,则除非您重复brew upgrade yarn
,否则yarnpkg将在您ln
时停止工作。如上所述的手册brew unlink hadoop
指向新版本。
尝试一下。 Brew实际上拒绝升级纱线,原因是它与hadoop冲突。因此,我们可以建议brew upgrade yarn
,然后brew unlink yarn
。
然后,brew link hadoop
,/usr/local/Cellar/yarn/1.22.1/bin/yarnpkg
(hadoop具有比yarnpkg所需的链接更多的链接),最后,使用如下新版本重新创建yarnpkg符号链接:{{1}}
缠绕很久,但是效果很好。