J’ai lu des messages, essayant de comprendre comment exécuter npm install
sans sudo
. Je suis également tombé sur l’article suivant, mais je pense que c’est pour une ancienne version de NPM. J’ai fait ce qui suit, qui a produit moins d’erreurs, mais jette toujours des erreurs à la fin:
sudo chown -R $USER /usr/local
La seule façon de ne pas avoir d’erreurs est de lancer sudo npm install
mais j’ai lu que ce n’était pas une bonne idée.
Ci-dessous est la sortie que je vois après l’avoir exécuté. Je suppose que ce sont des permissions mais je ne sais pas vraiment quels dossiers je devrais choisir (voire pas du tout). Désolé pour l’énorme quantité de données, je ne sais pas vraiment ce qui est pertinent. Je ne pouvais pas non plus voir quoi que ce soit d’utile dans le journal (/var/www/budget/npm-debug.log), bien que ce soit énorme. Y a-t-il quelque chose que je dois encore chown?
$ npm install npm WARN package.json [email protected] No description npm WARN package.json [email protected] No repository field. npm WARN package.json [email protected] No README data npm http GET https://registry.npmjs.org/grunt-consortingb-watch npm http GET https://registry.npmjs.org/grunt-consortingb-less . . . npm http 304 https://registry.npmjs.org/hawk/1.1.1 npm http GET https://registry.npmjs.org/delayed-stream/0.0.5 npm ERR! Error: ENOENT, chmod '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/bl/test/test.js' npm ERR! If you need help, you may report this log at: npm ERR! npm ERR! or email it to: npm ERR! npm ERR! System Linux 3.13.0-40-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! cwd /var/www/budget npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.10 npm ERR! path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/bl/test/test.js npm ERR! fstream_path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/bl/test/test.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! fstream_finish_call chmod npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:305:19 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/node-uuid' npm ERR! error rolling back [email protected] { [Error: ENOTEMPTY, rmdir '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/node-uuid'] npm ERR! error rolling back errno: 53, npm ERR! error rolling back code: 'ENOTEMPTY', npm ERR! error rolling back path: '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/node-uuid' } npm WARN optional dep failed, continuing [email protected] npm ERR! Error: ENOENT, lstat '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/qs/lib/utils.js' npm ERR! If you need help, you may report this log at: npm ERR! npm ERR! or email it to: npm ERR! npm ERR! System Linux 3.13.0-40-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! cwd /var/www/budget npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.10 npm ERR! path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/qs/lib/utils.js npm ERR! fstream_path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/qs/lib/utils.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) npm ERR! Error: ENOENT, lstat '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/http-signature/lib/util.js' npm ERR! If you need help, you may report this log at: npm ERR! npm ERR! or email it to: npm ERR! npm ERR! System Linux 3.13.0-40-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! cwd /var/www/budget npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.10 npm ERR! path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/http-signature/lib/util.js npm ERR! fstream_path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/http-signature/lib/util.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) npm http 304 https://registry.npmjs.org/delayed-stream/0.0.5 npm ERR! Error: ENOENT, lstat '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/tough-cookie/test.js' npm ERR! If you need help, you may report this log at: npm ERR! npm ERR! or email it to: npm ERR! npm ERR! System Linux 3.13.0-40-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! cwd /var/www/budget npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.10 npm ERR! path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/tough-cookie/test.js npm ERR! fstream_path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/tough-cookie/test.js npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) [email protected] node_modules/grunt-cache-breaker └── [email protected] ([email protected]) [email protected] node_modules/grunt-consortingb-watch ├── [email protected] ([email protected], [email protected], [email protected], [email protected]) └── [email protected] ([email protected]) [email protected] node_modules/grunt ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ([email protected], [email protected]) ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ([email protected], [email protected]) ├── [email protected] ([email protected]) ├── [email protected] ([email protected], [email protected]) ├── [email protected] ([email protected], [email protected]) └── [email protected] ([email protected], [email protected]) [email protected] node_modules/grunt-consortingb-cssmin ├── [email protected] ([email protected], [email protected], [email protected]) ├── [email protected] ([email protected]) └── [email protected] ([email protected], [email protected], [email protected], [email protected]) [email protected] node_modules/grunt-consortingb-less ├── [email protected] ([email protected]) └── [email protected] ([email protected], [email protected], [email protected]) npm ERR! Error: Callback called more than once. npm ERR! at errorHandler (/usr/share/npm/lib/utils/error-handler.js:80:16) npm ERR! at save (/usr/share/npm/lib/install.js:329:12) npm ERR! at /usr/share/npm/lib/install.js:98:7 npm ERR! at /usr/share/npm/lib/install.js:188:5 npm ERR! at /usr/share/npm/node_modules/read-installed/read-installed.js:119:5 npm ERR! at /usr/share/npm/node_modules/read-installed/read-installed.js:233:14 npm ERR! at cb (/usr/lib/nodejs/slide/lib/async-map.js:48:11) npm ERR! at /usr/share/npm/node_modules/read-installed/read-installed.js:233:14 npm ERR! at cb (/usr/lib/nodejs/slide/lib/async-map.js:48:11) npm ERR! at /usr/share/npm/node_modules/read-installed/read-installed.js:233:14 npm ERR! If you need help, you may report this log at: npm ERR! npm ERR! or email it to: npm ERR! npm ERR! System Linux 3.13.0-40-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! cwd /var/www/budget npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.10 npm ERR! Error: ENOENT, lstat '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/mime-types/lib/mime.json' npm ERR! If you need help, you may report this log at: npm ERR! npm ERR! or email it to: npm ERR! npm ERR! System Linux 3.13.0-40-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! cwd /var/www/budget npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.10 npm ERR! path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/mime-types/lib/mime.json npm ERR! fstream_path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/mime-types/lib/mime.json npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) npm ERR! Error: ENOENT, lstat '/var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/hawk/images/logo.png' npm ERR! If you need help, you may report this log at: npm ERR! npm ERR! or email it to: npm ERR! npm ERR! System Linux 3.13.0-40-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! cwd /var/www/budget npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.10 npm ERR! path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/hawk/images/logo.png npm ERR! fstream_path /var/www/budget/node_modules/grunt-consortingb-less/node_modules/less/node_modules/request/node_modules/hawk/images/logo.png npm ERR! fstream_type File npm ERR! fstream_class FileWriter npm ERR! code ENOENT npm ERR! errno 34 npm ERR! fstream_stack /usr/lib/nodejs/fstream/lib/writer.js:284:26 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /var/www/budget/npm-debug.log npm ERR! not ok code 0
Si vous voulez exécuter des commandes comme npm install -g protractor
sans utiliser sudo, vous devez
sudo
(je pense que le seul endroit dans Ubuntu qui autorise cela par défaut est /home/user-name/
) Basé sur les documents de configuration officiels de NPM – ainsi que sur diverses autres sources
courir:
$ npm config get prefix
ou
$ npm config list
ou (pour afficher tous les parameters de configuration par défaut)
$ npm config ls -l
En d’autres termes, si le résultat de l’exécution de la npm config list
ressemble à ceci:
; userconfig /home/michael/.npmrc prefix = "/home/michael/npm"
Ça veut dire
/home/michael/.npmrc
que NPM parsingra avec une priorité plus élevée que le fichier de configuration global / system npm install -g protractor
seront installés dans /home/michael/npm
Maintenant faites les changements!
définir directement le prefix
en utilisant:
npm config set prefix ~/npm
append (éditer) le fichier .bashrc
avec:
export PATH="$PATH:$HOME/npm/bin"
et courir
$ source .bashrc
ré-parsingr le script .bashrc
À partir des journaux, il semble que votre application soit stockée dans /var/www/budget
, vous cwd
dans ce répertoire et lancez npm install
. Cependant, ce chemin d’access est le plus souvent détenu par l’utilisateur du service Apache ( apache ou httpd , pas sûr de savoir lequel exactement, il peut également dépendre du logiciel que vous utilisez).
Je ne recommande pas de prendre en charge ce dossier sur votre compte utilisateur. Cependant, il peut être tout à fait acceptable de mettre votre compte d’utilisateur dans le groupe d’utilisateurs apache et de modifier les permissions pour que le groupe dispose d’un access en lecture / écriture (si ce n’est déjà fait):
(assurez-vous que le groupe est vraiment apache avant de l’exécuter, de peur de donner des permissions r / w à un autre groupe)
sudo chmod -R g+r,g+w /var/www
En général, vous vous êtes autorisé à installer les modules npm globalement (dans / usr / local , avec l’indicateur -g
), mais votre application ne réside pas dans ce répertoire, vous devez donc choisir la meilleure façon de modifier les parameters d’autorisation. pour le chemin de cette application particulière.
La meilleure chose à mon avis est d’utiliser un gestionnaire de version, tel que nvm ou n . De cette façon, vous pouvez avoir différentes versions de nœud installées et basculer facilement entre elles, et les exécutables seront stockés sous un autre PATH, dans le cas de nvm dans ~/.nvm/v0.10.33/bin
, donc aucun sudo n’est plus nécessaire.
une manière risquée, allez à / etc / sudoers et ajoutez cette ligne à la fin:
USERNAME HOSTNAME = (root) NOPASSWD: /usr/bin/npm
USERNAME – l’utilisateur, pour lequel vous n’avez pas besoin de vérifier les permissions sudo
HOSTNAME – le nom de domaine de votre ordinateur
Toute erreur que vous commettez lors de l’édition de / etc / sudoers fera que votre commande sudo cessera de fonctionner et que vous deviez utiliser le mode grub pour restaurer votre PC.