2017-10-11 6 views
0

J'utilise une installation de nodejs, comme décrit here.npm global installe les liens vers le mauvais répertoire

Quand je lance ceci: # npm install -g markdown-pdf

Je reçois l'erreur suivante:

(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' 

Comme on peut le voir, l'erreur se produit lorsque vous essayez de créer un lien vers /usr/lib/node_modules/markdown-pdf

Cependant, la node_modules réelle (contenant des modules réels) le dossier est situé à /usr/lib/node_modules/npm/node_modules

Racine est le seul utilisateur sur le système (debian-jessie), donc les permissions ne devraient pas poser de problème. J'ai essayé this (qui inclut également la possibilité de créer un répertoire global manuellement), mais en vain. Je voudrais beaucoup le garder dans un seul répertoire (global).

Merci d'avance pour toute aide.

Répondre

0

Vous l'avez corrigé. Sorte de.

réinstallée nodejs

Set NODE_PATH (qui était vide) à /usr/lib/node_modules

Utilisé sudo npm install -g markdown-pdf --unsafe-perm=true --allow-root (voir here)