npm全局安装链接到错误的目录

npm全局安装链接到错误的目录

问题描述:

我正在使用nodejs的安装,如here所述。npm全局安装链接到错误的目录

当我运行此:# 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

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

在此先感谢您的帮助。

修好了。有点。

重新安装的NodeJS

集NODE_PATH(这是空的),以/usr/lib/node_modules

使用sudo npm install -g markdown-pdf --unsafe-perm=true --allow-root(见here