Reputation: 1399
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?
Upvotes: 93
Views: 46800
Reputation: 21
This command was the answer for the error message for me. It changes the folder permissions to the current user:
sudo chown -R $(whoami) /usr/local/share/systemtap
Upvotes: 1
Reputation: 755
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.
Upvotes: 0
Reputation: 31
The following recipe worked for me:
sudo dscl . append /Groups/wheel GroupMembership username
sudo chmod -R 775 /usr/local/share/systemtap/tapset/
sudo rm -rf /usr/local/lib/node_modules
brew cleanup
brew link node
brew uninstall --force node
brew install node
Then check version with node -v
and npm -v
.
Upvotes: 3
Reputation: 299
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/
Upvotes: 27
Reputation: 18124
What worked for me:
cd /usr/local/share
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:
sudo rm -rf /usr/local/lib/node_modules
brew postinstall node -v
brew link node
node -v
:)So basically I removed all node_modules/
folders and redid everything.
Upvotes: 23
Reputation: 1776
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.
Upvotes: 176
Reputation: 663
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
Upvotes: 12
Reputation: 421
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/
Upvotes: 23