繁体   English   中英

使用自制软件安装 node.js 时遇到问题

[英]Trouble install node.js with homebrew

我正在尝试使用 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

我应该怎么办?

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

chown -R <yourusername>:<yourgroupname> systemtap

当我今天早些时候解决同样的问题时,我还必须进入/usr/local并为 lib 目录做同样的事情。

或者,或者,验证 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>

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

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

什么对我有用:

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

上述步骤失败。 转到下一个答案。 试过了;

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/文件夹并重做了一切。

获取您的用户名,

并获取您的群组:(可能不止一个,通常是“管理员”)

whoami
groups

然后,例如:

sudo chown -R chrislee:admin /usr/local/share/systemtap/
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. 添加您的用户名以添加组轮sudo dscl . append /Groups/wheel GroupMembership username 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 -vnpm -v检查版本。

只需在命令 npm install expo-cli --global 开头添加 sudo

sudo npm install expo-cli --global并按回车键。

希望它会帮助你。

这个命令对我来说是错误消息的答案。 它将文件夹权限更改为当前用户:

sudo chown -R $(whoami) /usr/local/share/systemtap

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM