用homebrew安装node.js时出现问题

mli*_*gar 65 macos homebrew node.js

我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

然后当我跑步时,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.
Run Code Online (Sandbox Code Playgroud)

另外,当我尝试使用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
Run Code Online (Sandbox Code Playgroud)

当我尝试删除时,我得到以下内容(所有这些文件都是一样的):

myusername@c126h060:~$ rm /usr/local/etc/bash_completion.d/npm
rm: /usr/local/etc/bash_completion.d/npm: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

小智 127

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

chown -R <yourusername>:<yourgroupname> systemtap
Run Code Online (Sandbox Code Playgroud)

当我今天早些时候修复同样的问题时,我还必须为/usr/locallib目录做同样的事情.

  • 别忘了"sudo".sudo chown -R <yourusername>:<yourgroupname> systemtap (4认同)
  • 嗯,给出完整的路径,/ usr / local / share / systemtap /有效 (3认同)
  • 我正在获取systemtap:“没有这样的文件或目录”。我正在使用macOS sierra。 (2认同)
  • 有人可以举一个没有占位符的食物线的例子吗?我不想输入错误的东西。提前致谢 (2认同)
  • ```sudo chown -R victor:admin systemtap``` 非常适合我!成功将我的节点升级到 v14.8.0 :) (2认同)

小智 19

或者,或者,验证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
Run Code Online (Sandbox Code Playgroud)

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

sudo dscl . append /Groups/wheel GroupMembership <username>
Run Code Online (Sandbox Code Playgroud)

然后更改tapset上的权限以允许组编辑

sudo chmod -R 775 /usr/local/share/systemtap/tapset/
Run Code Online (Sandbox Code Playgroud)


Asi*_*K T 11

什么对我有用:

  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/文件夹并重做了所有内容


aru*_*mbu 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'
Run Code Online (Sandbox Code Playgroud)

运行以下命令

brew postinstall node -v
brew link node 
Run Code Online (Sandbox Code Playgroud)


小智 6

获取您的用户名,

并得到您的群组:(可以是多个,通常是“管理员”)

whoami
groups
Run Code Online (Sandbox Code Playgroud)

然后,例如:

sudo chown -R chrislee:admin /usr/local/share/systemtap/
Run Code Online (Sandbox Code Playgroud)