在 Jailkit 中设置 nodejs 和 npm
Setup nodejs and npm within Jailkit
我在我的服务器上使用 jailkit,我想在 chrooted 环境中添加对 nodejs 和 npm 的支持。我不知道我是否遗漏了一些我需要 link 进入我的监狱的目录,或者一些 lib 或二进制文件,但我完全迷路了。我将以下内容添加到 jk_init.ini:
[node]
comment = NodeJS
executables = /usr/bin/npm, /usr/bin/node, /usr/bin/nodejs
directories = /usr/local/lib/node_modules
如果我从我的 root 用户 运行 npm ls
,它 运行 没问题。如果我尝试从我的监狱环境中 运行 它,我会得到这个错误:
npm ERR! Linux 3.16.0-28-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "ls"
npm ERR! node v4.2.6
npm ERR! npm v3.5.2
npm ERR! code MODULE_NOT_FOUND
npm ERR! Cannot find module 'ansi'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! /web/npm-debug.log
日志文件是这样的:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'ls' ]
2 info using npm@3.5.2
3 info using node@v4.2.6
4 verbose stack Error: Cannot find module 'ansi'
4 verbose stack at Function.Module._resolveFilename (module.js:326:15)
4 verbose stack at Function.Module._load (module.js:277:25)
4 verbose stack at Module.require (module.js:354:17)
4 verbose stack at require (internal/module.js:12:17)
4 verbose stack at Object.<anonymous> (/usr/share/npm/lib/ls.js:15:13)
4 verbose stack at Module._compile (module.js:410:26)
4 verbose stack at Object.Module._extensions..js (module.js:417:10)
4 verbose stack at Module.load (module.js:344:32)
4 verbose stack at Function.Module._load (module.js:301:12)
4 verbose stack at Module.require (module.js:354:17)
5 verbose cwd /web
6 error Linux 3.16.0-28-generic
7 error argv "/usr/bin/nodejs" "/usr/bin/npm" "ls"
8 error node v4.2.6
9 error npm v3.5.2
10 error code MODULE_NOT_FOUND
11 error Cannot find module 'ansi'
12 error If you need help, you may report this error at:
12 error <https://github.com/npm/npm/issues>
13 verbose exit [ 1, true ]
我正在 运行使用 ISPConfig
安装最新版本的 Ubuntu
今天也有这个问题,通过更改
解决了它
directories = /usr/local/lib/node_modules
至
directories = /usr/lib/node_modules
Debian Jessie,也在 ISPConfig 上。
记得触发
jk_init -c /etc/jailkit/jk_init.ini -f -k -j /var/www/clients/clientX/web62 node
不要忘记添加环境可执行文件
[env]
comment = environment variables
executables = /usr/bin/env
[node]
comment = NodeJS
executables = /usr/bin/npm, /usr/bin/node, /usr/bin/nodejs
directories = /usr/lib/node_modules
我在我的服务器上使用 jailkit,我想在 chrooted 环境中添加对 nodejs 和 npm 的支持。我不知道我是否遗漏了一些我需要 link 进入我的监狱的目录,或者一些 lib 或二进制文件,但我完全迷路了。我将以下内容添加到 jk_init.ini:
[node]
comment = NodeJS
executables = /usr/bin/npm, /usr/bin/node, /usr/bin/nodejs
directories = /usr/local/lib/node_modules
如果我从我的 root 用户 运行 npm ls
,它 运行 没问题。如果我尝试从我的监狱环境中 运行 它,我会得到这个错误:
npm ERR! Linux 3.16.0-28-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "ls"
npm ERR! node v4.2.6
npm ERR! npm v3.5.2
npm ERR! code MODULE_NOT_FOUND
npm ERR! Cannot find module 'ansi'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! /web/npm-debug.log
日志文件是这样的:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'ls' ]
2 info using npm@3.5.2
3 info using node@v4.2.6
4 verbose stack Error: Cannot find module 'ansi'
4 verbose stack at Function.Module._resolveFilename (module.js:326:15)
4 verbose stack at Function.Module._load (module.js:277:25)
4 verbose stack at Module.require (module.js:354:17)
4 verbose stack at require (internal/module.js:12:17)
4 verbose stack at Object.<anonymous> (/usr/share/npm/lib/ls.js:15:13)
4 verbose stack at Module._compile (module.js:410:26)
4 verbose stack at Object.Module._extensions..js (module.js:417:10)
4 verbose stack at Module.load (module.js:344:32)
4 verbose stack at Function.Module._load (module.js:301:12)
4 verbose stack at Module.require (module.js:354:17)
5 verbose cwd /web
6 error Linux 3.16.0-28-generic
7 error argv "/usr/bin/nodejs" "/usr/bin/npm" "ls"
8 error node v4.2.6
9 error npm v3.5.2
10 error code MODULE_NOT_FOUND
11 error Cannot find module 'ansi'
12 error If you need help, you may report this error at:
12 error <https://github.com/npm/npm/issues>
13 verbose exit [ 1, true ]
我正在 运行使用 ISPConfig
安装最新版本的 Ubuntu今天也有这个问题,通过更改
解决了它directories = /usr/local/lib/node_modules
至
directories = /usr/lib/node_modules
Debian Jessie,也在 ISPConfig 上。
记得触发
jk_init -c /etc/jailkit/jk_init.ini -f -k -j /var/www/clients/clientX/web62 node
不要忘记添加环境可执行文件
[env]
comment = environment variables
executables = /usr/bin/env
[node]
comment = NodeJS
executables = /usr/bin/npm, /usr/bin/node, /usr/bin/nodejs
directories = /usr/lib/node_modules