it-swarm.com.de

Die globale Installation mit npm funktioniert nach der Aktualisierung von Mac OS X Mavericks nicht mehr

Nach dem Upgrade auf OS X 10.9 Mavericks wurde der Knoten in bash nicht mehr gefunden. Ich glaube, ich habe es vor einiger Zeit mit brew installiert.

Ich habe mich für den Installer von node.js entschieden. Es ging gut und sowohl node als auch npm wurden in bash verfügbar. Die globale Installation von Paketen funktioniert jedoch nicht.

Der npm -g bin gibt den folgenden Pfad /usr/local/bin aus.

Nach dem Ausführen von npm install -g karma und dem Aufrufen von ls -la /usr/local/bin wird jedoch kein Symlink zu dem Pfad angezeigt, in dem sich die ausführbare Datei karma befindet.

Das Ausführen von npm -g root gibt /usr/local/lib/node_modules zurück, und nach der Installation kann ich feststellen, dass das Modul karma vorhanden ist.

Ich bin mir nicht sicher, was ich sonst noch überprüfen könnte. Vielen Dank!

10
Misha Reyzlin

Das Problem scheint aufgetreten zu sein, weil ich versucht habe, Pakete zu installieren, die sich zuvor auf meinem System befanden. Die Symlinks wurden wahrscheinlich deswegen nicht erstellt. Nachdem ich die Pakete entfernt und neu installiert (oder versucht hatte, Pakete zu installieren, die ich noch nicht hatte), wurden sie als Symlinks zu /usr/local/bin hinzugefügt.

1
Misha Reyzlin

Ich stellte fest, dass die Hauptursache für alle Probleme bei der Installation von npm die fehlende Xcode-Lizenzvereinbarung war.

Nach dem Maverick-Update wurde auch XCode aktualisiert. Wenn Sie XCode nicht starten, fehlt die Lizenzvereinbarung.

Nachdem ich die Vereinbarung akzeptiert hatte, waren die Installationen erfolgreich.

14
Greg

Ich hatte das gleiche Problem, weil ich die xcode-Lizenz nach dem Upgrade auf Mavericks nicht akzeptierte. Ich konnte die neue xcode-Lizenz folgendermaßen akzeptieren:

Sudo xcodebuild -Lizenz

Npm funktionierte jedoch immer noch nicht, da kein Symlink erstellt wurde, aber der Versuch einer Neuinstallation besagte, dass npm bereits vorhanden war. Ich ging voran und:

gebräu entfernen npm

und dann neu installiert mit:

brew Install npm

und ich arbeite wieder. Kein großer Fan der Neuinstallation, aber ich denke, die Notwendigkeit, die Xcode-Lizenz zu akzeptieren, ließ die Dinge hängen.

6
oraserrata

Ich hatte das gleiche Problem - npm funktionierte nach dem Upgrade auf Mavericks nicht mehr. Ich habe alle oben genannten Schritte ausprobiert, steckte aber immer noch fest. Insbesondere als ich versuchte, den Knoten neu zu installieren, wurde der Fehler angezeigt:

Warnung: Der Schritt nach der Installation wurde nicht erfolgreich abgeschlossen. Sie können es mit brew postinstall node erneut versuchen.

Aber das Ausführen von brew postinstall node hat geantwortet:

Fehler: Berechtigung verweigert -/usr/local/lib/node_modules/npm/AUTHORS

Ich habe versucht, alle zuvor installierten Knotenmodule zu entfernen

Sudo rm -rf /usr/local/lib/node_modules/

und dann deinstallieren und neu installieren Knoten

und das brachte schließlich beide Knoten und Npm zum Laufen wie zuvor.

1
gardensnake

Falls die anderen hier veröffentlichten Lösungen auch für Sie nicht funktionieren, können Sie den auf this GitHub-Seite vorgeschlagenen Ansatz ausprobieren. Mit einer vollständigen Neuinstallation gemäß den Anweisungen auf der Seite konnte ich endlich npm (und eine Anwendung, genauer gesagt vs-mda-remote) zum Laufen bringen.

BEARBEITEN: Dies geschah nach dem Update von Mavericks auf Yosemite.

0
Tacticus

Ich hatte das gleiche problem Nach einem Einzelgänger-Upgrade funktionierte npm nicht, der Knoten selbst war es jedoch. Ich habe nicht die neueste Version verwendet, da unser Team die Version 0.8.10 bevorzugt.

In jedem Fall funktionierte nvm, der Versionsmanager von node.js, noch. In diesem Fall habe ich gerade neu installiert:

$ nvm install 0.8.21
######################################################################## 100.0%
Now using node v0.8.21
$ npm
Usage: npm <command>

where <command> is one of:
add-user, adduser, apihelp, author, bin, bugs, c, cache,
completion, config, ddp, dedupe, deprecate, docs, edit,
explore, faq, find, find-dupes, get, help, help-search,
home, i, info, init, install, isntall, issues, la, link,
list, ll, ln, login, ls, outdated, owner, pack, prefix,
Prune, publish, r, rb, rebuild, remove, restart, rm, root,
run-script, s, se, search, set, show, shrinkwrap, star,
stars, start, stop, submodule, tag, test, tst, un,
uninstall, unlink, unpublish, unstar, up, update, version,
view, whoami

npm <cmd> -h     quick help on <cmd>
npm -l           display full usage info
npm faq          commonly asked questions
npm help <term>  search for help on <term>
npm help npm     involved overview

In dem Fall, dass nvm nicht funktionierte, müssen Sie möglicherweise auch ymmv neu installieren

0
Cheruvim

Ich bin mir nicht sicher, ob meine Antwort zu spät war oder nicht. Ich befand mich in einer anderen Situation als Sie. Hoffe, dass meine Erfahrung vor einer Stunde dir hilft.

meine npm version (npm -v) ist 1.4.28. Zuerst habe ich node.js auf einem Computer mit einem Administratorkonto installiert. Dann habe ich einen Benutzer mit Administratorrechten angelegt. Als ich versuchte, die Version von npm zu überprüfen, schlug dies fehl.

Ich habe im Internet gesucht und bin auf diesen Text gestoßen. Auf dem Originalposter wurden Sie aufgefordert, die Pfadeinstellungen zu überprüfen. Ich hatte nicht node.js und npm mit Homebrew installiert, eine andere Software, die mir vor zwei Monaten Kopfschmerzen bereitete. Ich habe überprüft, ob ich Node ausführen kann. Dies liegt daran, dass sich der Knoten unter/usr/local/bin befindet, wo alle Benutzer Rechte zum Ausführen von Programmen haben. Aber für npm ist es tatsächlich ein Link zu ../lib/node_modules/npm/bin. Der Ordner/usr/local/lib ist jedoch nicht für andere Benutzer zugänglich, sondern nur für das Administratorkonto.

Ich "Sudo -i" und gewährt "chmod a + x ../lib". Überraschenderweise haben alle darin enthaltenen Ordner das richtige Ausführungsrecht. Ich vermutete, dass dies eine Art Fehler ist. Ich verließ Sudo und versuchte es erneut mit "npm -v". Gelingen.

Hoffentlich hilft das.

0
Tom K. C. Chiu