Trouble install node.js with homebrew

node.jsMacosHomebrew

node.js Problem Overview


I'm trying to install Node.js with Homebrew (I installed it previously without using brew, and I've tried deleting all of those files). I've looked at previous questions asking similar things, but I haven't been able to get them to work. First I tried brew link node which gave me:

myusername@c126h060:~$ brew link node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

And then when I run brew link --overwrite node I get the following:

myusername@c126h060:~$ brew link --overwrite node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
/usr/local/share/systemtap/tapset is not writable.

Additionally, when I tried using brew link -n node to find files to manually delete, I managed to delete some of them, but I'm still left with the following files that I can't delete:

myusername@c126h060:~$ brew link -n node
Would link:
/usr/local/etc/bash_completion.d/npm
/usr/local/bin/node
/usr/local/include/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d

When I try to delete I get the following (same thing for all of these files):

myusername@c126h060:~$ rm /usr/local/etc/bash_completion.d/npm
rm: /usr/local/etc/bash_completion.d/npm: No such file or directory

What should I do?

node.js Solutions


Solution 1 - node.js

It may be that you don't actually own your systemtap directory. Navigate to /usr/local/share and run this command in order to make yourself the owner:

chown -R <yourusername>:<yourgroupname> systemtap

When I was fixing this same issue earlier today, I had to also go into /usr/local and do the same thing for the lib directory.

Solution 2 - node.js

Or, alternatively, verify the ownership and permissions on systemtap

$ ls -al /usr/local/share/systemtap/
drwxr-xr-x   3 root  wheel  102 Oct 23 18:06 .
drwxrwxr-x  15 root  wheel  510 Oct 24 20:24 ..
drwxr-xr-x   2 root  wheel   68 Oct 24 20:17 tapset

then add yourself to the owner group (in this case wheel)

sudo dscl . append /Groups/wheel GroupMembership <username>

then change the permissions on tapset to allow group edits

sudo chmod -R 775 /usr/local/share/systemtap/tapset/

Solution 3 - node.js

What worked for me:

  1. cd /usr/local/share
  2. sudo chown -R <user>:<group> systemtap (Did 1 & 2 for /usr/local too)

Above steps were failing. Went to next answer. Tried;

ls -al /usr/local/share/systemtap/ which throwed a 'Not found error.'

Then: brew link node was throwing an error. So I did:

  1. sudo rm -rf /usr/local/lib/node_modules
  2. brew postinstall node -v
  3. And at last brew link node
  4. node -v :)

So basically I removed all node_modules/ folders and redid everything.

Solution 4 - node.js

get your username,

and get your groups:(could be more than one,generally is 'admin')

whoami
groups

then, for exapmle:

sudo chown -R chrislee:admin /usr/local/share/systemtap/

Solution 5 - node.js

arun:~$ brew link node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

Run below commands

brew postinstall node -v
brew link node 

Solution 6 - node.js

The following recipe worked for me:

  1. Add your username to add group wheel sudo dscl . append /Groups/wheel GroupMembership username
  2. sudo chmod -R 775 /usr/local/share/systemtap/tapset/
  3. sudo rm -rf /usr/local/lib/node_modules
  4. brew cleanup
  5. brew link node
  6. brew uninstall --force node
  7. brew install node

Then check version with node -v and npm -v.

Solution 7 - node.js

just add sudo in the beginning of the command npm install expo-cli --global

like sudo npm install expo-cli --global and hit enter.

hope it'll help you.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmlinegarView Question on Stackoverflow
Solution 1 - node.jsverbrandenView Answer on Stackoverflow
Solution 2 - node.jsclutherView Answer on Stackoverflow
Solution 3 - node.jsAsim K TView Answer on Stackoverflow
Solution 4 - node.jscoderChrisLeeView Answer on Stackoverflow
Solution 5 - node.jsarunkumar sambuView Answer on Stackoverflow
Solution 6 - node.jsShamsherView Answer on Stackoverflow
Solution 7 - node.jsRaghib ArshiView Answer on Stackoverflow