sudo npm 提示 command not found 的解

2020-01-10  本文已影响0人  MrDarren

终端依次输入以下命令

$ sudo ln -s /usr/local/bin/node /usr/bin/node

$ sudo ln -s /usr/local/lib/node /usr/lib/node

$ sudo ln -s /usr/local/bin/npm /usr/bin/npm

$ sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

注: 如果提示 ln: /usr/bin/node: Operation not permitted, 是因为Mac OS X 11后,加入了Rootless机制,不再能够随心所欲的读写很多路径,设置 root 权限也不行。

Rootless机制是对抗恶意程序的最后防线,除非特殊需要时我们才将其关闭,否则保持开启状态,所以,只需要关闭Rootless机制就行

具体操作如下

1) 重启系统,按住 Command+R,进入恢复模式

2) 打开Terminal

3) 输入

$ csrutil disable

4) 重启系统即可。如果要恢复默认

$ csrutil enable

csrutil命令参数格式:

csrutil enable [--without kext | fs | debug | dtrace | nvram][--no-internal]

禁用:csrutil disable

(等同于csrutil enable --without kext --without fs --without debug --without dtrace --without nvram)

其中各个开关,意义如下:

B0: [kext] 允许加载不受信任的kext(与已被废除的kext-dev-mode=1等效)

B1: [fs] 解锁文件系统限制

B2: [debug] 允许task_for_pid()调用

B3: [n/a] 允许内核调试 (官方的csrutil工具无法设置此位)

B4: [internal] Apple内部保留位(csrutil默认会设置此位,实际不会起作用。设置与否均可)

B5: [dtrace] 解锁dtrace限制

B6: [nvram] 解锁NVRAM限制

B7: [n/a] 允许设备配置(新增,具体作用暂时未确定)

上一篇下一篇

猜你喜欢

热点阅读