Cartoons, Comics, Illustrationen, Doodles und Auftragsarbeiten

Installation von NodJS auf dem Mac mit Homebrew

Installation von NodeJS auf dem Mac? Unter Yosemite womöglich? Wo ist das Problem? Man gehe auf die Seite von NodeJS, lade für den Mac die .pkg-Datei herunter, installiere sie, führe einen Test durch und freue sich.


Installation von NodeJS auf dem Mac mit Homebrew

Wie sieht der Test aus?

Zuerst wird geschaut, ob node funktioniert. Hierzu ein Terminal-Fenster aufrufen und eingeben:

node -v (wenn alles geklappt hat, wird die Versionsnummer ausgegeben, bei mir ist das die v0.12.0.)

Das Gleiche geht übrigens auch mit nmp.

npm -v (gibt bei mir die Versionsnummer 2.5.1 aus.)

So weit, so gut.

Wie sieht es mit Tutorials aus?

Unter Nodeschool gibt es zahlreiche witzige Tutorials, die an alte Dos-Zeiten erinnern (Screenshot gibts am Ende als Belohnung ;)). Aber das wusste ich vorher noch nicht, denn der Versuch ein paar Tutorials wie beschrieben zu installieren schlug fehl.

Die Eingabe sollte beispielsweise lauten:

npm install -g javascripting

Heraus kamen Zeilen über Zeilen von Fehlermeldungen. Bei dem ganzen Wust an Fehlermeldungen, habe ich komplett übersehen, dass da stand:

Please try running this command again as root/Administrator.

Aber da hatte ich mich bereits bei Github angemeldet, um zu sehen, ob das Problem schon irgendwo Thema gewesen ist.

Installations-Vorschläge

Ein wenig runter gescrollt, steht da unter Suggestions das Thema Check your installation, also ›Prüft Eure Installation‹.

Often the installation on windows makes problems. But also other systems can experience troubles. Please also check out the installation suggestions if you have problems.

Aha! Dann lass uns mal nachlesen, was da so beim Thema Installation und Mac steht.

If you have homebrew installed it is recommended to use it to install node because it will set your path and permissions settings properly:

$ brew install node

Aha die Zweite! Erst jetzt, nachdem das Kind im Brunnen gefallen ist, steht empfohlen, dass es besser wäre, die Homebrew-Variante zu nehmen, um spätere Probleme mit Berechtigungen zu verhindern.

Und weiter im Text:

If you don’t feel like using homebrew you can also use the Installer. However: Please note that the installer will setup your system in a way that requires you to install global packages as sudo.
npm install learnyounode -g becomes sudo npm install learnyounode -g

Ach so, ein simples sudo vorangestellt, ›hätte‹ vielleicht, u.U., womöglich, so Gott will, die Installation der Tutorials erlaubt. (Das stand ja auch schon so im Terminal, aber wer nicht alles liest, ist klar im Nachteil. ;))

Aber, aber, was steht denn da noch Schönes?

Note: In our experience it turned out that the Installer can come with a broken permissions (EACCESS errors). Perhaps the simplest way to deal with this is to uninstall node and reinstall it using brew

Uhhh, also selbst dann, wenn ich alles richtig mache, KANN es sein, dass die Berechtigungen nicht alle korrekt gesetzt worden sind. Die Empfehlung lautet daher Node wieder zu deinstallieren (ihr seid ja witzig!) und mit Homebrew wieder neu zu installieren.

Deinstallation von Node ist doch einfach, oder?

Wenn es denn so einfach wäre, Node zu deinstallieren, so meine Vermutung, dann müsste doch der Einzeiler direkt da stehen. Ich bin besorgt. Zurecht, denn der Link führt nach stackoverflow. Und siehe da, es gibt reichlich Lösungsversuche. Liebenswerterweise hat der User AhrB eine Zusammenfassung erstellt.

Die sieht so aus:

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*sudo rm -rf /usr/local/include/node /Users/$USER/.npmsudo rm /usr/local/bin/nodesudo rm /usr/local/share/man/man1/node.1  

Eigentlich gehört der Befehl, um Node direkt erneut mit Hilfe von Brew zu installieren, noch zu der obigen Liste dazu, aber da ich noch kein Brew installiert hatte, habe ich das ausgespart.

Habt Ihr aber bereits Brew installiert, dann könnt Ihr beruhigt die Installation von node starten. (Im schlimmsten Fall gibt es eine Fehlermeldung.)

brew install node

Installation von Homebrew

Brew zu installieren ist zum Glück eigentlich ganz einfach. Auf der Seite von Homebrew gibt es eine lange Zeile, die man per copy&paste in das Terminal-Fenster einfügt und startet.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Dann allerdings gibt es noch den kleinen Hinweis, der lautet:

You have not agreed to the Xcode license.Before running the installer again please agree to the license by opening Xcode.app or running:
sudo xcodebuild -license

Mist! Das wäre ja auch zu schön gewesen.

Also, Eingabe des Befehls und dann kommen erst einmal ein ellenlanger Lizenz-Bla-Text. Kann man gerne lesen. 😉

Am Ende muss man dann noch explizit agree eintippern.

Jetzt erst können wir mit der obigen Zeile Brew installieren.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" bzw. mit den Pfeiltasten den Befehl suchen.

Und danach können wir endlich auch node installieren mit brew install node, ODER, noch besser, lesen, was da steht, nämlich:

Run brew doctor before you install anything

Oje, das habe ich überlesen, aber Ihr macht das bestimmt besser. 😉

Achtung, Achtung, npm-Update, bitte lesen!

Aber dann:

Caveats (Vorbehalte)
If you update npm itself, do NOT use the npm update command.
The upstream-recommended way to update npm is:
npm install -g npm@latest

Ok, gut zu wissen, ich hoffe, ich denke noch daran, wenn es so weit ist.

Aber da steht noch mehr; und zwar noch ein weiteres Problem:

Bash completion has been installed to:  
/usr/local/etc/bash\_completion.d  
Error: The brew link step did not complete successfully  
The formula built, but is not symlinked into /usr/local  
Could not symlink share/systemtap/tapset/node.stp  
Target /usr/local/share/systemtap/tapset/node.stp already exists.  
You may want to remove it:

rm /usr/local/share/systemtap/tapset/node.stp

Und schon wieder Ärger, die Symlinks konnten nicht erstellt werden. Also weiter nachforschen.

Lösung für die Problematik der verweigerten Homebrew-Berechtigung

Auf der Webseite der Developpeers wurde ich fündig:

Fix for homebrew permission denied issues Schön, der Titel sagt ja alles. :)

Sechs Schritte sind nötig um das Berechtigungs-Problem zu beheben:

  1. brew update
  2. brew upgrade
  3. brew cleanup
  4. brew install node
  5. brew link --overwrite node
  6. sudo chown whoami /usr/local/bin

Zwei Dinge sind noch zu beachten:

  1. Bei mir hat 5. nicht direkt funktioniert, was ja eigentlich auch logisch ist, weil die Berechtigungen ja noch nicht gesetzt worden sind.
  2. Bei 6. habe ich die Variante vom User anonymouscoward (merkwürdiger Username, oder?) gewählt, weil die erste Variante woami ohne die Hochkommata nicht klappte (sollte der Autor vorher geprüft haben IMHO) und ich damit nicht mehr freigebe als unbedingt nötig.

Nachdem ich dann mit 6. die Berechtigungen gesetzt hatte, konnte ich noch einmal mit brew link --overwrite node die Verbindungen erstellen lassen.

Jetzt mal ein Beispiel-Tutorial installiert

Nachdem endlich mein NodeJS korrekt lief, konnte ich mit:

sudo npm install learnyounode -g

das NodeJS-Tutorial installieren und mit …

learnyounode

… auch starten.

War doch gar nicht so schwer, oder? 😉

Und so sieht der Lohn der ganzen Mühe aus:

NodeJS lernen mit learnyounode

NodeJS lernen mit learnyounode

Fazit

Alles sieht immer so einfach aus, aber es gibt wohl immer ein aber. Aber zum Glück ist die Community immer mit vielen Lösungsvariationen zur Stelle. Man muss sich halt die Richtige aussuchen. 😉

Viel erfolg beim coden mit NodeJS.

Kommentare sind deaktiviert.

\\n