Câu hỏi này đã có câu trả lời ở đây:
- lệnh không tìm thấy khi sử dụng sudo 6 câu trả lời
Tôi có một vấn đề.
Gần đây tôi đã cài đặt nodejs
.
$ ls -la /opt
...
lrwxrwxrwx 1 root root 11 2012-07-25 13:48 node -> node-0.6.3/
drwxr-xr-x 6 root root 4096 2012-07-25 13:48 node-0.6.3
...
vì vậy, các nhị phân nằm trong /opt/node/bin
:
$ ls -la /opt/node/bin
...
lrwxrwxrwx 1 root root 38 2012-06-20 11:44 npm -> ../lib/node_modules/npm/bin/npm-cli.js
...
Bạn có thể thấy, npm
lanhung.
Để làm cho nó dễ sử dụng hơn từ một dòng lệnh tôi đã sửa $PATH
phía trong .bashrc
kịch bản:
HOME=$HOME:...:/opt/node/bin
và như vậy với root .bashrc
:
# which npm
/opt/node/bin/npm
Nhưng nếu tôi chạy npm với sudo, npm
không tìm thấy:
$ sudo which npm
$ sudo npm -g install uglify-js
sudo: npm: command not found
Vậy, tại sao nó lại xảy ra? Làm thế nào để tôi đạt được những gì tôi muốn?
Cảm ơn.
CẬP NHẬT : Theo lời khuyên của Paul, tôi đã thêm
Defaults env_keep = PATH
để /etc/sudoers
nhưng vấn đề vẫn tồn tại
$ echo $PATH
... :/opt/node/bin
$ sudo su -
#
# sudo -V
...
Environment variables to preserve:
XAUTHORIZATION
XAUTHORITY
TZ
PS2
PS1
PATH
...
Vì thế, Defaults
Chỉ thị đã thực hiện công việc của mình, nhưng tôi đang nhận được cùng một sudo: npm: command not found