Yarn安装命令错误:没有这个文件或目录:“install”

441

我正在安装 Sylius 捆绑包,在安装 Sylius 时我需要运行 yarn install。因此,当我运行以下命令时:

yarn install

我遇到了错误:

ERROR: [Errno 2] No such file or directory: 'install'

请运行 yarn install --verbose 并添加扩展信息。您确定在正确的文件夹中运行 yarn(包含 package.json 文件)吗? - chaenu
3
yarn 不是你要找的包。你需要 yarnpkg。请参见 https://dev59.com/t1YO5IYBdhLWcg3wU_6M#70184799。 - Jérôme Pouiller
24个回答

1266

我在Ubuntu 17.04上遇到了同样的问题。

这个解决方案对我有效:

sudo apt remove cmdtest
sudo apt remove yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install yarn -y

然后

yarn install

结果:

yarn install v1.3.2
warning You are using Node "6.0.0" which is not supported and may encounter bugs or unexpected behaviour. Yarn supports the following server range: "^4.8.0 || ^5.7.0 || ^6.2.2 || >=8.0.0"
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...

info Lockfile not saved, no dependencies.
Done in 0.20s.

31
我遇到了相同的情况:sudo apt remove cmdtest 是关键! - Cédric Françoys
14
我曾在 Windows 10 上的 Debian WSL 上遇到同样的问题,这个解决方案对我很有用。 - Mike Lyons
9
我在Windows 10上的Ubuntu WSL中遇到了同样的问题。这个解决方案对我也起作用了。 - Saif Al Falah
4
他解决了我在18.10上遇到的问题。 - CPBL
6
拯救了我的一天!确认于20.04。 - Nicky Kouffeld
显示剩余19条评论

242

我在Ubuntu 18.04上遇到了同样的问题。这是对我有效的解决方法:

我移除了cmdtestyarn

sudo apt remove cmdtest

sudo apt remove yarn

使用npm全局安装yarn

sudo npm install -g yarn

3
这非常有帮助。 - Christopher Kikoti
3
适用于Windows10 WSL的完美解决方案。 - Markus Zeller
在2020年5月17日,这个解决方案对我来说效果更好,在Debian 9.9上。被接受的答案仍然导致了原始问题。(但是我能够在没有sudo的情况下npm i) - RichS
5
运行这些命令后,我需要关闭并打开一个新的终端才能看到效果。如果没有生效,请在此之后打开新的终端[Ubuntu 20.04]。 - user404
这个在我的Ubuntu 20.04上有效。 - Kowsigan Atsayam
在Ubuntu 22.04中,使用sudo apt remove cmdtest命令成功地移除了cmdtest。 - emkarachchi

120

注意:这个解决方案适用于 Ubuntu 16.04Ubuntu 17.04Ubuntu 18.04

尝试移除已有的 cmdtestyarn(后者是*nix系统的传统黑盒命令行工具模块):

sudo apt remove cmdtest
sudo apt remove yarn

通过 npm 简单安装它:

npm install -g yarn

或者

sudo npm install -g yarn

现在 yarn 已经安装成功。运行您的命令。

yarn install sylius

希望这能够奏效。干杯!

编辑:

请记得重新打开终端,以使更改生效。


5
对我有用。我需要在npm上使用sudo,这是唯一的区别。Ubuntu 18.04 - oma
20
请记得重新打开终端,以使更改生效。 - ashishdhiman2007
1
适用于我 Ubuntu 18.04 - programmingmusic
谢谢,它起作用了,sudo apt remove -y cmdtest 用于自动确认。 - duyetpt
当我运行 sudo npm install -g yarn 命令时,我只得到了这个令人费解的输出:
yarn@1.22.10 preinstall /usr/local/lib/node_modules/yarn :; (node ./preinstall.js > /dev/null 2>&1 || true) 并没有更进一步的指示。我在 WSL 上运行 Ubuntu 20.04.1。
- Mattias Martens
在Ubuntu 20机器上使用以下命令安装yarn。curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.listsudo apt update && sudo apt install yarn - Mr Kashyap

63
以下步骤适用于Pop!_OS 20.10和ubuntu 20.04:
  1. sudo apt remove cmdtest
  2. sudo apt remove yarn
  3. curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
  4. echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
  5. sudo apt-get update
  6. sudo apt-get install yarn -y
  7. yarn install
请注意,保留了HTML标签。

1
也适用于Ubuntu 18.04! - Akshay Shah
1
感谢您提供的解决方案,对于Ubuntu 20.04.2 LTS也适用。 - Ravi
3
曾在Ubuntu 22.04 LTS工作过。 - Hadisur Rahman
对我也适用,Ubuntu 18.0 谢谢! - Dean Van Greunen

47

在感谢所有正确建议通过删除Ubuntu yarn软件包并通过NPM安装Yarn的答案的同时,这里提供了一个详细的解答和解释(注意,还有一些个人观点):

yarn install出现No such file or directory错误的原因是您没有使用“正确”的Yarn:当您使用Ubuntu软件源安装yarn时,获得的软件是来自cmdtest黑盒测试套件的“yarn”场景测试工具。这可能不是您想要的,因为Yarn也是类似于Make、Maven等Javascript应用程序开发生命周期工具中广受欢迎的一个。

Javascript Yarn工具无法从Ubuntu软件源中获取,但可以通过NPM进行安装(NPM是另一个开发生命周期工具,Yarn旨在取代它,所以有点尴尬...)。

要在Ubuntu中使用Yarn,请首先删除cmdtest及其工具:

$ sudo apt purge cmdtest

确保已安装NPM:

$ sudo apt install npm

然后使用NPM安装Yarn:

$ npm install -g yarn
注意:使用npm install -g将为您当前的用户账户安装一个JavaScript包,这对大多数情况来说应该是没问题的。如果您想要为所有用户安装Yarn,则可以在NPM命令中使用sudo,但这并不推荐:NPM包在多用户操作系统环境下的安全性审核很少,安装某些包可能会在以“root”身份安装时出现问题。 NPM过去曾警告不要使用sudo运行它,今天没有这样做的主要原因是这会使使用类似于沙盒的“root-like”环境(例如Docker)为单用户服务器构建和部署JavaScript应用程序的人感到烦恼。

2
谢谢这个解释。我更喜欢不盲目地使用在StackOverflow上看到的命令,特别是当它们与sudo一起使用时!我认为这应该是被选中的答案。 - Michael Scheper
3
+1,正如https://dev59.com/t1YO5IYBdhLWcg3wU_6M#65578819所提到的那样,在yarn起作用之前,我需要退出并重新打开我的终端。 - Ryan
2
@Ryan 这很有趣 - 我认为如果你刚刚安装了 npm,你需要重新启动你的 shell:安装会修改 shell 启动序列以将 npm 的“全局”安装目录添加到 shell 的 PATH 中,否则 shell 就看不到在那里安装的 yarn 命令。你可以检查一下 - 如果只运行 yarn 不起作用,但是 ~/.npm-packages/bin/yarn 可以,那么你需要重新启动 shell 以获取更新后的 PATH - Guss
在Ubuntu Docker中,错误更改为bash:/usr/bin/yarn:没有那个文件或目录-请参见https://dev59.com/t1YO5IYBdhLWcg3wU_6M#70184799。 - user598527
@user598527 如您所链接的另一个答案中所述,如果您正在使用官方的Node容器,则无需担心任何问题,因为Yarn已经预安装了。否则,这个错误信息就没有任何意义——要么您触发了对“/usr/bin/yarn”的符号链接,要么您特别输入了它——否则期望的错误是“bash: yarn: command not found”。从NPM安装的Yarn位于“/usr/local/bin”,因此这些都没有意义。如果您仍然遇到问题,请提供更多详细信息。 - Guss

32

简而言之

// Run these commands (Tested on Ubuntu 17.04 & above)
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn 
附加说明:
请查看此官方文档/指南,以在其他Ubuntu版本上安装yarn并处理额外的cmdtest错误https://yarnpkg.com/lang/en/docs/install/#debian-stable

如果您还没有安装curl,可以使用sudo apt install curl进行安装。


apt-add-repository -y "deb ... main"替换echo...tee...apt-get update - Guss

27
  1. 删除错误的软件包:
sudo apt-get purge cmdtest
sudo apt-get purge yarn
  1. 使用npm安装(推荐):

建议通过npm软件包管理器安装Yarn,当您安装Node.js时,它会自带npm。

一旦您安装了npm,您可以运行以下命令来同时安装和升级Yarn:

npm install --global yarn
  1. 另一种方法:
  • Debian / Ubuntu
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn

17

这对我有效

sudo yarn install

1
谢谢,这对我有用。如果您想在文件夹上获得用户权限,则用户必须属于sudo组: sudo usermod -aG sudo myusername - Gebus

15

使用Ubuntu 22.04 我在干净安装Ubuntu后遇到了这个问题。对我有效的解决方法是:

sudo apt remove cmdtest
sudo apt-get remove yarn && sudo apt-get purge yarn
sudo apt update
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt install yarn
yarn --version # 1.22.19

(编辑:我后来尝试过这个方法,一开始它并没有成功。但是当我重新启动电脑并再次尝试时,它成功了。想象看看这个原因是什么...)


11

yarn包存在名称冲突(目前是cmdtest包的别名)。您正在寻找的软件包是yarnpkg。因此,请尝试运行以下命令:

sudo apt-get remove cmdtest
sudo apt-get install yarnpkg

很不幸,对于yarnpkg而言,命令yarn被命名为yarnpkg。你可能需要创建一个别名:

sudo ln -s /usr/bin/yarnpkg /usr/local/bin/yarn

alias'ng not possible when the yarn binary exists: ln: failed to create symbolic link '/usr/local/bin/yarn': File exists - user598527
@user598527:如果您已经通过“npm -g”或其他外部过程安装了yarn,则应仅存在“/usr/local/bin/yarn”。如果是这种情况-则您无需安装“yarnpkg”。请注意,最近版本的官方Node docker容器已经包含Yarn,因此不需要安装它。 - Guss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接