1 votes

Les autorisations sont en désordre sur macOS

J'ai voulu faire npm install -g. Comme cela n'a pas fonctionné en raison des permissions, j'ai suivi l'approche suggérée dans la réponse acceptée de https://stackoverflow.com/questions/47252451/permission-denied-when-installing-npm-modules-in-osx

Changer le propriétaire des répertoires de npm au nom de l'utilisateur actuel (votre nom d'utilisateur) :

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Cela change les permissions des sous-dossiers utilisés par npm et d'autres outils (lib/node_modules, bin et share).

ensuite j'ai pu exécuter mon npm install -g. Mais l'histoire ne s'arrête pas là. Je voulais installer un autre package avec npm. (npm install identicon).

J'ai reçu l'erreur suivante

npm does not support Node.js v12.0.0
You should probably upgrade to a newer version of node as we
can't make any promises that npm will work with this version.
You can find the latest version at https://nodejs.org/
....

Et maintenant je reçois la même erreur encore et encore, chaque fois que j'utilise une commande npm.

Sur SO quelqu'un d'autre a eu ce problème https://stackoverflow.com/questions/56805007/npm-warn-npm-does-not-support-node-js-v12-4-0?noredirect=1&lq=1 et la réponse acceptée a suggéré

Réparer les permissions de /usr/local :

sudo chown -R id -un:id -gn /usr/local

Nettoyer le cache de npm et le désinstaller :

npm cache clean -f npm -g uninstall npm

Réinstaller node (avec npm)

brew reinstall node

Mettre à jour npm :

npm -g i npm

Mais la toute première commande a échoué :

chown: /usr/local: Operation not permitted

En cas d'aide :

/usr/local root# ls -la

total 0
-rw-r--r--    1 myuser  staff      0 Sep 20  2019 .com.apple.installer.keep
drwxrwxr-x    2 myuser  staff     64 Apr 24 2019 Caskroom
drwxrwxr-x  103 myuser  staff   3296 Nov 17 17:31 Cellar
drwxrwxr-x    3 myuser  staff     96 Nov 17 17:25 Frameworks
drwxrwxr-x   22 myuser  staff    704 Jan 14 05:49 Homebrew
drwxrwxr-x  409 myuser  staff  13088 Jan 14 05:49 bin
drwxrwxr-x   10 myuser  staff    320 Nov 17 17:23 etc
drwxrwxr-x  192 myuser  staff   6144 Nov 17 17:33 include
drwxrwxr-x  620 myuser  staff  19840 Nov 17 17:33 lib
drwxr-xr-x    5 myuser  staff    160 Mar 24 2019 man
drwxrwxr-x  124 myuser  staff   3968 Nov 17 17:34 opt
drwxr-xr-x    3 myuser  staff     96 Mar 24 2019 remotedesktop
drwxrwxr-x   12 myuser  staff    384 Nov 17 17:27 sbin
drwxrwxr-x   34 myuser  staff   1088 Nov 17 17:34 share
drwxr-xr-x    4 myuser  staff    128 Mar 24 2019 texlive
drwxrwxr-x    4 myuser  staff    128 May 16 2021 var

Je veux utiliser npm à nouveau et avoir mes permissions corrigées. Peut-être que quelqu'un peut indiquer de bonnes ressources pour les débutants, qui peuvent me guider à travers le processus, lorsque je rencontre quelque chose de similaire. Merci.

Mon macbookpro : macOS Catalina (10.15.7)

0voto

sbolel Points 200

Vous pouvez utiliser [nvm][1] pour installer node pour votre utilisateur dans ~/ afin d'éviter d'utiliser le système node, qui nécessite des autorisations. nvm vous permet d'installer et de basculer entre plusieurs versions de node.

Comme indiqué dans le readme:

Lorsque vous utilisez nvm, vous n'avez pas besoin de sudo pour installer globalement un module avec npm -g, donc au lieu de faire sudo npm install -g npm, faites npm i -g npm

1. Prérequis

Avant de commencer, désinstallez node si vous l'avez installé avec homebrew:

brew uninstall --ignore-dependencies node 
brew uninstall --force node

2. installer nvm

Option 1: Utilisation de homebrew

Installer nvm:

brew update
brew install nvm

Créez le répertoire nvm:

mkdir ~/.nvm

Ajoutez ce qui suit à ~/.zshrc:

export NVM_DIR="${HOME}/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # Ceci charge nvm

Option 2 (préféré): installation manuelle

Pour installer nvm manuellement, téléchargez et exécutez le script d'installation et exécutez-le en utilisant l'une des commandes cURL ou Wget suivantes:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Si cela ne fonctionne pas, vous pouvez télécharger manuellement le script d'installation et l'exécuter.

Cela crée un répertoire pour nvm dans $HOME:

mkdir ~/.nvm

Et ajoute des lignes sources extraites de l'extrait ci-dessous à ~/.zshrc qui charge nvm dans chaque nouveau shell de terminal:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # Ceci charge nvm

3. Charger nvm

Vous pouvez soit réinitialiser votre shell actuel, en ouvrir un nouveau, ou sourcer les modifications de .zshrc:

source ~/.zshrc

Pour vérifier si nvm a été installé, faites:

command -v nvm

ce qui devrait afficher nvm si l'installation a réussi.

4. Installer node en utilisant nvm

Installer node 14 en utilisant nvm et le définir comme version par défaut:

nvm install 14

Définir node 14 comme version par défaut:

nvm alias default 14

Définir default comme la version actuelle à utiliser:

nvm use default

Mettre à jour npm installé pour node 14 vers la dernière version:

npm install -g npm@latest

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X