我的机器上已经安装了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来避免冲突,但是并没有具体的步骤。
我非常感谢任何关于如何设置Hadoop的帮助,这样我就可以在yarn旁边安装yarnpkg。
发布于 2020-01-29 01:45:24
我只是用解开和连接纱线解决了这个问题。
brew unlink yarn && brew link yarn您可以按如下方式在.bashrc或.zshrc中添加别名
alias yarn='command yarnpkg'发布于 2020-03-09 00:03:10
我发现上面答案中提到的brew link yarn不能工作。
我猜测这是否可能只链接非冲突的yarnpkg,但事实证明它拒绝链接任何一个,这似乎相当公平。
从概念上讲,(取消yarn包管理器的链接)你能做的就是像alias yarnpkg /usr/local/Cellar/yarn/1.22.0/bin/yarnpkg一样给你的.bash_profile添加一个别名
请注意,当brew将yarn升级到新版本时,这将不是很健壮。
此外,将该目录添加到路径中也不是一个好主意,因为这会使安装了两个名为yarn的独立程序的事实变得不明确。
添加bash别名的另一种方法是手动添加单个无冲突的符号链接,方法与brew link不拒绝的方式相同,如上所述:
ln -s /usr/local/Cellar/yarn/1.22.0/bin/yarnpkg /usr/local/bin/yarnpkg
当yarnpkg更新时会发生什么还有待观察,所以请密切关注。由于yarnpkg显然不是brew符号链接(除非我们偷偷添加了一个),因此如果brew不更新符号链接以指向新版本,那么yarnpkg将在您brew upgrade yarn时停止工作,除非您重复上述指向新版本的手册ln。
更新
我刚试过了。Brew实际上拒绝升级纱线,给出了它与hadoop冲突的原因。因此,正如它所暗示的,我们可以先使用brew unlink hadoop,然后使用brew upgrade yarn。
然后,使用brew unlink yarn、brew link hadoop (hadoop需要的链接比yarnpkg多得多),最后,使用如下的新版本重新创建yarnpkg符号链接:/usr/local/Cellar/yarn/1.22.1/bin/yarnpkg
相当长的喘息,但工作良好。
https://stackoverflow.com/questions/54936645
复制相似问题