Reputation: 9225
As per the yarn installation for yarn v2, they want you to install using npm install -g yarn
. So I ran sudo npm install -g yarn
on Ubuntu 20.04. But after I do that, it says command not found.
❯ sudo npm install -g yarn
> [email protected] preinstall /usr/local/lib/node_modules/yarn
> :; (node ./preinstall.js > /dev/null 2>&1 || true)
❯ yarn --version
zsh: command not found: yarn
Upvotes: 42
Views: 177670
Reputation: 8764
It means it's unable to find yarn
.
To fix it do following steps
whereis yarn
In case of Mac, open .zshrc
from your user directory and add following into it.
export YARN_PATH=<path_mentioned_in_step_1>
export PATH=$PATH:$YARN_PATH
in Linux case - Add this to your profile: export PATH="$PATH:/opt/yarn-[version]/bin" (the path may vary)
In case of Windows, YARN PATH should be added in environment variable called Path
Upvotes: -1
Reputation: 269
If you install yarn with sudo, it will only be available for the super user. So you can install it without prefixing the command with sudo and it will work fine.
npm -i g yarn
Upvotes: 0
Reputation: 423
This is different from the problem OP had but you also get this error if you are working in an environment with multiple node versions. In this case, you need to have yarn installed under each version of node, like so
/node/vx.x.x/lib/node_modules/yarn/bin/yarn.js
After switching versions, if the above is not present then just run
npm install -g yarn
If yarn is installed under the version than the other answers will address the problem.
Upvotes: 2
Reputation: 1
Uninstall cmdtest
:
sudo apt remove cmdtest
Then, run these commands:
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
Upvotes: 8
Reputation: 161
This solved it for me:
corepack enable
(if you get "Internal Error: EACCES: permission denied", run it with sudo)
This is also recommended by the Yarn documentation: https://yarnpkg.com/getting-started/install
Upvotes: 16
Reputation: 1
I installed yarn
with npm install -g yarn
on git bash and I tested it with yarn -v
that show the version of the installed yarn, but when I used yarn start
it gives me this error
C:\Users\{username}\AppData\Roaming\npm/node_modules/node/bin/node: line 1: This: command not found
These are simple steps that I used to fix my problem on Windows 10:
C:\Program Files\nodejs
and C:\Users\{username}\AppData\Roaming\npm
node -v
npm install
yarn start
Upvotes: -2
Reputation: 4050
I recently had a similar situation and here is how I solved it.
First I troubleshoot the current npm installation:
npm config -list
I had a ~/.npmrc
file that had a different prefix:
PREFIX=/opt/homebrew
That made my npm installation look for globally installed packages under /opt/homebrew
.
In my case, I'm using a different npm installation (not with homebrew anymore). A simple fix is to remove this custom PREFIX
from the ~/.npmrc
file and the problem was solved.
Now npm looks for globally installed packages under /usr/local/bin/
.
Upvotes: 0
Reputation: 54
The yarn documentation is missing a step, you need to restart your computer between this installation and running yarn --version
.
This worked for me
Upvotes: 1
Reputation: 1111
TL;DR
If you are managing node via nvm
, then probably the path to yarn binary is not included in the $PATH
variable. You should add this -
# Add this at the end (or after the $NVM_DIR initialization)
# in your profile - .bashrc | .zshrc | .profile, etc
export PATH="`yarn global bin`:$PATH"
at the end of your profile file (.zshrc
for me) or at least after the $NVM_DIR
initialization.
I have recently faced this issue and while searching for a solution, I landed up here.
Here is what my environment looks like:
- OS: Ubuntu 20.04
- Shell:
zsh
- NodeJS: managing it via
nvm
, and NOTapt
.
After going through all the answers, I was not keen on uninstalling anything. So I tried to dig a bit deeper.
I installed yarn
via npm install -g yarn
command. So the first thing I wanted to verify was the location of the yarn
binary. To do this, I ran the command where yarn
which lists the installation path for the yarn
binary.
$ where yarn
/home/<user_name>/.nvm/versions/node/v16.11.1/bin/yarn
Then it hit me. In my .zshrc
file, I had added the yarn global bin
command (which spills out the directory of all the global packages installed by yarn) at the top like so:
# Top of my .zshrc file
export PATH="`yarn global bin`:$HOME/bin:/usr/local/bin:$PATH"
and as per the installation instruction of nvm
, the $NVM_DIR
(the variable which holds the nvm
directory path) was added at the end of my .zshrc
file.
So when I was starting up my shell, it was actually trying to load the yarn
command (present inside the nvm
directory) even before loading the $NVM_DIR
path.
To solve this, I tweaked my .zshrc
file and moved the yarn global bin
command after the $NVM_DIR
like this:
# Top of my .zshrc file
export PATH="$HOME/bin:/usr/local/bin:$PATH"
# ...
#
# Something in between
#
# ...
# Bottom of my .zshrc file
export NVM_DIR="${HOME}/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# Here is where I have added the path to yarn global
export PATH="`yarn global bin`:$$PATH"
I hope that this would be of help.
Upvotes: 18
Reputation: 325
If you want to avoid reboot, use
/usr/local/lib/node_modules/yarn/bin/yarn --version
Upvotes: 3
Reputation: 539
sudo npm install -g npm
then
sudo npm install -g yarn
Then reboot your system. That did it for me. Before a reboot only sudo yarn worked. I tried looking at file permissions but everything seemed in order and the files were executable as expected. Nevertheless after a reboot it worked.
If you go to /usr/local/bin after the installation there's a link there to where yarn.js lives, as expected, and file permissions for it were also correct.
/usr/local/bin is added to $PATH, so it's surprising that it doesn't see the new cmd right away, but perhaps it didn't reload or map it until after the reboot? I don't know. But I just spent a good hour trying to figure this out so I'm posting what worked for me to spare other the hassle.
Upvotes: 53