centos 5.5
在安装nodejs后,通过
curl http://npmjs.org/install.sh | sh
来安装npm,普通权限失败,使用sudo失败。而在使用root帐号时成功。成功后,退回到普通用户,提示在/usr/bin目录下找不到npm。做个软链接到
ln -s /usr/local/bin/npm /usr/bin/npm
可以使用,但在使用sudo时,提示
/usr/bin/env: node: No such file or directory
于是,就有了下文。
- 普通用户的环境变量
修改普通用户的 .bash_profile 文件:$ vi ~ /.bash_profile添加:
PATH= $PATH: $HOME /bin: /sbin: /usr /sbin: /usr /local /bin: /usr /local /sbin保存后立即生效:
source ~ /.bash_profile - sudo 不能按[Tab]命令补全: $ complete -c sudo
- sudo 后环境变量
centos 5 的 sudo 默认将原有的环境变量 reset,只保留一些对安全没有影响设定。但是在安全级别没那么高的情况下显得不那么方便, 可以通过 /usr/sbin/visudo 来修改为使用 root 原有的环境变量.
更改前:Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
_XKB_CHARSET XAUTHORITY"注释并添加:
Defaults !env_reset
#Defaults env_reset
#Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
# LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
# LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
# LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
# LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
# _XKB_CHARSET XAUTHORITY"