
Ich versuche, meine Node-Version auf die neueste stabile Version zu aktualisieren.
Verwenden vondiese RessourceIch war in der Lage:
sudo npm install n -g
Aber wenn ich versuche
sudo npm n stable
Ich bekomme:
sudo: n: command not found
Wenn ich ausführe n stable
, wird der Befehl angezeigt:
n stable
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
install : node-v0.12.2
mkdir : /usr/local/n/versions/node/0.12.2
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
Error: sudo required
Antwort1
Ich habe eine Lösung gefunden, die bei mir funktioniert hat:
sudo -E env "PATH=$PATH" n stable
Habe es hier gefunden:https://stackoverflow.com/a/29400598/861615
Antwort2
Überraschenderweise npm
verfügt Ihre Installation über das globale Präfix in einem Ordner namens „Global“ npm
in Ihrem Home-Verzeichnis. Dies bedeutet, dass jedes mit diesem -g
Flag installierte Paket in diesem Ordner installiert wird.
sudo
Mit den folgenden Schritten können Sie diesen Ordner in jeden beliebigen Ordner auf dem sicheren Pfad ändern :
Grafischer Weg:
- Öffnen Sie einen Dateimanager (auch bekannt als Nautilus).
- Navigieren Sie zu Ihrem Home-Ordner.
- Drücken Sie Ctrl+ H, um versteckte Dateien anzuzeigen.
- Öffnen Sie eine Datei mit dem Namen
.npmrc
mit Ihrem bevorzugten Texteditor. Suchen Sie in dieser Datei eine Zeile mit diesem Inhalt:
prefix=/home/<your_username>/npm
- Ersetzen Sie es
/home/<your_username>/npm
durch einen sicheren Pfad (z. B./usr/local/bin
). Nach dem Ersetzen sieht es folgendermaßen aus:
prefix=/usr/local/bin
- Speicher die Datei.
- Führe es nochmals aus
sudo npm install n -g
Terminalweg:
Führen Sie diesen Befehl aus:
sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc
Antwort3
Ich weiß, dass dies ein Ubuntu-Forum ist, aber ich bin sicher, dass dies jemandem mit demselben Problem mit den RHEL-Varianten helfen wird, der wie ich hierher gegoogelt hat. Vielleicht funktioniert es auch unter Ubuntu.
ln -s /usr/local/bin/n /usr/bin/n
Antwort4
Um zu vermeiden, dass der .npm-global
Ordner durcheinander gerät,bemerktvon @Edson Horacio Junior und basierend auf @pohest'sAntwort, so habe ich das Problem behoben:
sudo ln -s /home/<username>/.npm-global/bin/n /usr/local/bin/n
sudo n --version # test it
Als Hinweis: Dies wird wahrscheinlich nicht funktionieren, wenn Sie die Schritte von npm nicht befolgt haben fürÄndern des globalen Standardverzeichnisses.