麻烦用自制软件安装node.js


75

我正在尝试使用Homebrew安装Node.js(我以前没有使用brew来安装它,并且我试图删除所有这些文件)。我看过以前的问题,问过类似的问题,但我无法使它们起作用。首先,我尝试brew link node了一下:

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

然后,当我运行时,brew link --overwrite node我得到以下信息:

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.

此外,当我尝试使用brew link -n node查找文件来手动删除时,我设法删除了其中的一些文件,但仍然留下了以下无法删除的文件:

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

当我尝试删除时,得到以下信息(所有这些文件都相同):

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

我该怎么办?

Answers:


146

可能您实际上并不拥有您的systemtap目录。导航/usr/local/share并运行此命令以使自己成为所有者:

chown -R <yourusername>:<yourgroupname> systemtap

今天早些时候修复同一问题时,我还必须进入/usr/locallib目录并执行相同的操作。


8
不要忘记“ sudo”。sudo chown -R <您的用户名>:<您的组名> systemtap
1nstinct 2015年

2
我正在获取systemtap:“没有这样的文件或目录”。我正在使用macOS sierra。
lmc

3
嗯,给出完整的路径,/ usr / local / share / systemtap /有效
lmc

2
没有占位符的人可以举一个例子吗?我不想输入错误的内容。在此先感谢
Vash18年

1
sudo chown -R victor:admin systemtap完美地为我工作!已成功将我的节点升级到v14.8.0 :)
Victor,

22

或者,也可以验证对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

然后将您自己添加到所有者组(在这种情况下为滚轮)

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

然后更改水龙头的权限以允许组编辑

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

18

对我有用的是:

  1. cd /usr/local/share
  2. sudo chown -R <user>:<group> systemtap(也做了1和2 /usr/local

以上步骤均失败。去了下一个答案。试过了

ls -al /usr/local/share/systemtap/ 引发了“未找到错误”。

然后:brew link node抛出一个错误。所以我做了:

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

所以基本上我删除了所有node_modules/文件夹并重做了所有内容。


18

获取您的用户名,

并分组:(可以是多个,通常是“管理员”)

whoami
groups

然后,例如:

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

7
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'

运行以下命令

brew postinstall node -v
brew link node 

1

以下食谱对我有用:

  1. 添加您的用户名以添加组轮 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

然后使用node -v和检查版本npm -v


2
欢迎来到SO!请紧记stackoverflow.com/help/how-to-answer上的指南,并相应地编辑您的帖子,例如,通过添加更多说明您的解决方案起作用的方式。
B–rian

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.