npm global install链接到错误的目录

时间:2017-10-11 14:16:29

标签: node.js npm debian-jessie

我正在使用nodejs的安装,如here所述。

当我运行时:# npm install -g markdown-pdf

我收到以下错误:

(PhantomJS is a Requirement for markdown-pdf):
Phantom installation failed { Error: EACCES: permission denied, link 
'/tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-
1507729380912/phantomjs-2.1.1-linux-x86_64' -> 
'/usr/lib/node_modules/markdown-pdf/node_modules/phantomjs-
prebuilt/lib/phantom'
errno: -13,
code: 'EACCES',
syscall: 'link',
path: '/tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-
1507729380912/phantomjs-2.1.1-linux-x86_64',
dest: '/usr/lib/node_modules/markdown-pdf/node_modules/phantomjs-
prebuilt/lib/phantom' } Error: EACCES: permission denied, link 
'/tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2-extract-
1507729380912/phantomjs-2.1.1-linux-x86_64' -> 
'/usr/lib/node_modules/markdown-pdf/node_modules/phantomjs-
prebuilt/lib/phantom'

如您所见,尝试链接到/usr/lib/node_modules/markdown-pdf

时会发生错误

但是,实际node_modules(包含实际模块)文件夹位于/usr/lib/node_modules/npm/node_modules

Root是系统中唯一的用户(debian-jessie),因此权限应该不是问题。我尝试了this(其中还包括手动创建全局目录的选项),但无济于事。我非常希望将它保存在一个(全局)目录中。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

修好了。排序。

重新安装的nodejs

将NODE_PATH(为空)设置为/usr/lib/node_modules

已使用sudo npm install -g markdown-pdf --unsafe-perm=true --allow-root(请参阅here