Skip to content

yarn global add doesn't install binaries properly #648

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
fahrradflucht opened this issue Oct 11, 2016 · 122 comments
Closed

yarn global add doesn't install binaries properly #648

fahrradflucht opened this issue Oct 11, 2016 · 122 comments

Comments

@fahrradflucht
Copy link

Do you want to request a feature or report a bug?
bug

What is the current behavior?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning lodash@2.4.2: The engine "rhino" appears to be invalid.
warning benchmark@1.0.0: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed create-react-app@0.5.0 with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
create-react-app not found

What is the expected behavior?

➜  ~  yarn global add create-react-app
yarn global v0.15.1
warning No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning lodash@2.4.2: The engine "rhino" appears to be invalid.
warning benchmark@1.0.0: The engine "rhino" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Installed create-react-app@0.5.0 with binaries:
      - create-react-app
✨  Done in 8.43s.
➜  ~  which create-react-app
/usr/local/bin/create-react-app

Please mention your node.js, yarn and operating system version.

➜  ~  system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.12 (16A323)
      Kernel Version: Darwin 16.0.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled

➜  ~ node --version
v6.7.0
➜  ~  yarn --version
0.15.1
@osenvosem
Copy link

The same behaviour here, on the same system.

@fahrradflucht
Copy link
Author

Just a note to clarify that this isn't unique to create-react-app. mean-cli for example surfaces the same issue.

@metame
Copy link

metame commented Oct 12, 2016

Also got this on Ubuntu 15.10 system

@wokalski
Copy link

Run yarn global bin and add it to your $PATH.

@fahrradflucht
Copy link
Author

fahrradflucht commented Oct 12, 2016

This fixes it. But this isn't documented in any way here: https://yarnpkg.com/en/docs/cli/global
(I mean yes yarn global bin is documented but the example doesn't suggest that adding it to your PATH is necessary)

On my machine this returns /usr/local/Cellar/node/6.7.0/bin. Does this mean that all my global binaries are tied to this node version and if I update I have to reinstall them? That seems messy doesn't it?

Another thing I noticed is that "$(yarn global bin)" returns ^[[2K^[[1G/usr/local/Cellar/node/6.7.0/bin. Am I doing something wrong when I try adding export="${PATH}:$(yarn global bin)" to my .zshrc?

@wokalski
Copy link

wokalski commented Oct 12, 2016

It's not documented AFAIK. It should be. Feel free to submit a PR.
Read this to understand why global path is version specific.

@fahrradflucht
Copy link
Author

fahrradflucht commented Oct 12, 2016

@wokalski are you sure you referenced the right issue? I don't even get why this is related...

@wokalski
Copy link

@fahrradflucht sorry! Fixed it.

@fahrradflucht
Copy link
Author

Okay got it!

Then I'm left with this question:

Another thing I noticed is that "$(yarn global bin)" returns ^[[2K^[[1G/usr/local/Cellar/node/6.7.0/bin. Am I doing something wrong when I try adding export="${PATH}:$(yarn global bin)" to my .zshrc?

I would file a new issue if I was more sure that I didn't made a dumb mistake 😁

@kitsunde
Copy link

@fahrradflucht It's not just you I have the same issue on macOS using plain old bash.

export PATH="/usr/local/Cellar/node/6.3.1/bin:$PATH"

works

export PATH="$(yarn global bin):$PATH"

Does not. I've opened an issue; #851

@kaihendry
Copy link

kaihendry commented Oct 15, 2016

yarn global bin is /usr/bin on my system. I want it to be /usr/local/bin to save me from perm headaches.

Now that I'm thinking about it... why doesn't yarn global bin return ~/.yarn-cache/.global/node_modules/.bin/?

@smoothdvd
Copy link

@kaihendry Because Yarn was installed by Homebrew

@andyyou
Copy link

andyyou commented Nov 3, 2016

Same issues on macOS

@c0bra
Copy link

c0bra commented Jan 23, 2017

Yarn doesn't seem to be installing binaries in to $(yarn global bin), which since I'm using nvm on OSX is /Users/username/.nvm/versions/node/v6.9.2/bin

After doing yarn global add nodemon it's nowhere to be found, and nothing in a verbose install seems to show it putting any files in a bin directory.

UPDATE

yarn global remove nodemon and yarn global add nodemon fixed it and place it in $(yarn global bin) properly. Still nothing in the verbose log however...

@lekhnath
Copy link

lekhnath commented Feb 5, 2017

exact same issue as @c0bra stated.

@gaearon
Copy link
Contributor

gaearon commented Feb 8, 2017

I see a report this was fixed in 0.20 RC. Can somebody verify please?

@adambiggs
Copy link

I just ran into this issue with v0.20.0 but resolved it by removing and re-adding the package as @c0bra mentioned.

@erizocosmico
Copy link

Still not working for me in v0.20.3:

$ cd $(yarn global bin)
$ ls 
tern@  yarn@  yarnpkg@
$ yarn global add ember-cli
yarn global v0.20.3
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "ember-cli@2.11.1" with binaries:
      - ember
warning No license field
Done in 3.81s.
$ cd $(yarn global bin)
$ ls
tern@  yarn@  yarnpkg@

@shinzui
Copy link

shinzui commented Feb 23, 2017

Still broken in 0.20.3 installed through homebrew on macOS.

@pdesjardins90
Copy link

Had the same problem today (homebrew installation, yarn v0.20.3). Figured that I forgot to export the bin folder to my PATH before installing global packages. I exported it using :

export PATH="$(yarn global bin):$PATH"

and then removing and re-adding global packages correctly linked the binaries. (Thanks @c0bra)

@DanielRuf
Copy link
Contributor

Same here.

@mikemaccana
Copy link
Contributor

Still broken in 1.10.1:

$ yarn global add typescript
yarn global v1.10.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 0.47s.

$ yarn global bin
C:\Users\mikem\AppData\Local\Yarn\bin

$ yarn global list
yarn global v1.10.1
Done in 0.14s.

@yurii-github
Copy link

i see ppl add path to .bashrc

export PATH="$(yarn global bin):$PATH"

@telami
Copy link

telami commented Oct 20, 2018

export PATH="$(yarn global bin):$PATH"

NB,nice,666

@gnemtsov
Copy link

Same issue. Installed serve with yarn global add serve. After that starting serve fails: "serve: command not found". Updating PATH manually didn't help me. I installed serve with npm and now it works. Really strange that this problem is older than 2 years and is still unfixed.

@karansapolia
Copy link

karansapolia commented Jan 23, 2019

--Edit-- Solved. view #648
Still facing this problem. Installed yarn on Fedora, am using nvm to manage node versions. installed pug-cli in yarn globally. Running pug returned command not found. When installed pug-cli using npm, command runs.

@DanielRuf
Copy link
Contributor

Does #648 (comment) not help?

@karansapolia
Copy link

karansapolia commented Jan 23, 2019

Does #648 (comment) not help?

My bad. That solves the issue.

@amartincolby
Copy link

I'm encountering the problem with NVM in a Docker container pulling a CentOS image. It's not an issue with the PATH being incorrect. I have scoured all over the image. My global installs are absolutely not being installed anywhere. It seems to fail at step 1/4, resolving packages.

@akopchinskiy
Copy link

export PATH="$(yarn global bin):$PATH"

Works for me on Ubuntu.

@rantirules
Copy link

sudo yarn global add ignite-cli
Worked for me

@hoefling
Copy link

I can't write to /usr/local/bin due to missing sudo permissions:

$ yarn global add create-react-app
yarn global v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "create-react-app@3.4.1" with binaries:
      - create-react-app
error Cannot create "/usr/local/bin/create-react-app" due to insufficient permissions.
info Visit https://yarnpkg.com/en/docs/cli/global for documentation about this command.

/usr/local/bin is in PATH, ~/.config/yarn/global/node_modules/.bin/ is in PATH but neither yarn global nor yarn create are usable.

@DanielRuf
Copy link
Contributor

Please try to update to yarn 1.22.4 @hoefling. Also this might be an issue with your setup. How did you install yarn?

@hoefling
Copy link

@DanielRuf thank you for your response! I have 1.22.4 installed by the system administrator:

$ dnf info yarn
Yarn Repository                                                                                                                                                                    346 kB/s | 363 kB     00:01    
Installed Packages
Name         : yarn
Version      : 1.22.4
Release      : 1
Architecture : noarch
Size         : 5.1 M
Source       : yarn-1.22.4-1.src.rpm
Repository   : @System
From repo    : yarn
Summary      : Fast, reliable, and secure dependency management.
URL          : https://yarnpkg.com/
License      : BSD
Description  : Fast, reliable, and secure dependency management.
...

Looks like the package comes from yarn's own repo.

@DanielRuf
Copy link
Contributor

yarn global v1.21.1

In your last response it was 1.21.1.
Does this still happen? I suggest opening a new issue and checking the other issues for solutions.

@hoefling
Copy link

@DanielRuf you are right, I have tried setting up a local copy of yarn and downgrading to see whether it is a regression. Unfortunately, the error is also reproducible with 1.22.4. Will open a new issue if I don't find a solution myself.

@vituchon
Copy link

this worked for me yarn config set prefix ~/.local, i guess, after all, you only need to configure yarn app to write into a part of the file system that is accessible for the current user.

@Dragon1573

This comment has been minimized.

@yarnpkg yarnpkg locked as resolved and limited conversation to collaborators Oct 27, 2021
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

No branches or pull requests