我想安装最新的 Node.js 版本
n latest
installing : node-v14.2.0
mkdir : /usr/local/n/versions/node/14.2.0
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
Error: sudo required (or change ownership, or define N_PREFIX)
所有权出了问题。我尝试解决这个问题
sudo chown -R $(whoami) /usr/local/n
再次出现同样的错误。
n latest
cp: cannot create directory '/usr/local/lib/node_modules': Permission denied
cp: cannot create regular file '/usr/local/bin/node': Permission denied
cp: cannot create symbolic link '/usr/local/bin/npm': Permission denied
cp: cannot create symbolic link '/usr/local/bin/npx': Permission denied
n 中的权限
/usr/local/n$ ll
total 12
drwxrwxr-x 3 miki root 4096 мај 8 13:29 ./
drwxr-xr-x 11 root root 4096 мај 8 13:29 ../
drwxrwxr-x 3 miki miki 4096 мај 8 13:29 versions/
SOLVED
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
Context
n
命令下载并安装到/usr/local
默认情况下,创建/usr/local/n
默认情况下具有这些权限的文件夹:
drwxr-xr-x root wheel .
drwxr-xr-x root wheel ..
drwxr-xr-x root wheel versions
可能的解决方案
A. 将您自己添加到组中并授予写入权限(更安全):
-
将您自己添加到wheel
group.
1.1 苹果系统:
sudo dseditgroup -o edit -a $(whoami) -t user wheel
1.2 GNU/Linux:
sudo usermod -a -G wheel $(whoami)
-
Allow wheel
成员对该文件夹的写入权限:
sudo chmod -R g+w /usr/local/n/
B. 直接将所有权更改给您的用户(更快):
你需要改变哪里n
stores node
版本所有权:
sudo mkdir -p /usr/local/n && sudo chown -R $(whoami) /usr/local/n/
C. 更改所在文件夹n
保存节点二进制文件等。
默认情况下,n 命令下载并安装到 /usr/local,但您可以通过定义 N_PREFIX 来覆盖此位置。
Source: https://github.com/tj/n#可选环境变量 https://github.com/tj/n#optional-environment-variables
-
创建一个文件夹,即:$HOME/.n
mkdir $HOME/.n
-
定义环境变量N_PREFIX
将这一行添加到您的 shell 初始化文件中:
2.1.巴什(~/.bashrc) or zsh (~/.zshrc):
export N_PREFIX=$HOME/.n
2.2.鱼(~/.config/fish/config.fish):
set -x N_PREFIX $HOME/.n
-
将新的二进制路径添加到您的环境中$PATH
:
3.1. bash/zsh:
export PATH=$N_PREFIX/bin:$PATH
3.2.鱼:
set -x PATH $N_PREFIX/bin:$PATH
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)