我刚刚在亚马逊上启动了一个新的EC2实例,我试图安装nvm。我尝试使用NVM_DIR = ...运行他们的安装脚本进行全局安装:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | NVM_DIR = / usr / local / nvm bash
但是我收到了这个错误:
=>将nvm从git下载到' / usr / local / nvm' => mkdir:无法创建目录'/ usr / local / nvm':权限被拒绝
我也和sudo一起犯这个错误。我也尝试进入usr / local并手动创建nvm目录,但后来我得到了其他错误:
=>克隆到' / usr / local / nvm' ... /usr/local/nvm/.git:权限被拒绝
有谁知道为什么会这样?这是我不熟悉的权限吗?
编辑:使用版本较旧的版本而不使用NVM_DIR。我仍然想要全局访问,所以这不能解决问题
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | SH
答案 0 :(得分:1)
您的普通用户无权写入/usr/local
,因此您需要以root / sudo身份运行安装脚本。
您的curl
命令可以作为您的用户运行。实际上,最好在运行文件之前将文件卷曲到本地位置,这样你就可以了解它 - 除非你有理由相信它是一个非常值得信赖的脚本。所以抓住install.sh
脚本:
% curl -O https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh
% $EDITOR install.sh # feel free to look it over
然后使用sudo
:
% sudo -i # become root temporarily
# export NVM_DIR=/usr/local/nvm # set the environment variable
# bash install.sh # run installer as root
# exit
%
(有一种方法可以使整个装置成为单行,passing the environment variable through sudo,但我认为这不是必要的,而且有点复杂,恕我直言。)