Bower auf Debian Servern installieren und auf Stand halten

Inhalt


 

Einleitung

Mit dem (Frontend) Package Manager Bower kann man sich bequem beispielsweise Bootstrap zusammen mit Font Awesome installieren und natürlich auch aktuell halten.

Bower auf Debian Servern zu installieren ist recht einfach, wenn man dazu nach der Installation auch noch schnell manuell einen Symlink setzen muss. Auch die Bower Pakete aktuell zu halten geht mit einem simplen Cronjob ziemlich einfach.

Dieser Beitrag soll in erster Linie aufzeigen, wie man Bower installiert (da ein kleiner manueller Schritt unter Debian nötig ist), in groben Zügen zeigen, wie man Bower nutzt (gute ausführliche Beiträge zur Nutzung von Bower gibt es ja schon einige), vor allem aber eine einfache Möglichkeit aufzeigen, wie Ihr Euch ganz einfach automatisch bei Bower Paketupdates benachrichtigen lassen könnt. Und so gehts:


 

Schritt 1: Bower installieren

Bower wird über npm (node package manager) installiert, das wiederum Node.js benötigt. Wir installieren also erst “nodejs”, das “npm” beinhaltet und dann den eigentlichen Paketemanager “Bower”

Sofern Ihr keine Installation von „sid“ (unstable) oder „backports“ Paketen zulassen solltet, müsst Ihr zunächst NodeSource als weitere Paket-Quelle zu apt hinzufügen und könnt danach die Installation inkl. Updates wie bisher auch über apt einspielen.

Zwar könnt Ihr das nodejs auch über die offiziellen Debian Repos beziehen, jedoch derzeit nur in der Version 0.10 und nicht in der Version 0.12.

Eine genaue Dokumentation ist auf der Node.js Blog Seite (englisch) zu finden. Hier einmal die Befehle in Schnellform:

# become root
su

## add nodesource to apt sources list
echo 'deb https://deb.nodesource.com/node_0.12 jessie main' >> /etc/apt/sources.list.d/nodesource.list
echo 'deb-src https://deb.nodesource.com/node_0.12 jessie main' >> /etc/apt/sources.list.d/nodesource.list

## make sure apt accepts https transport
apt-get install apt-transport-https

## add nodesource key for apt
curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

## get package list from sources incl. new set source nodesource
apt-get update

## install nodejs
apt-get install nodejs

## install bower
npm install -g bower

Das wars schon. Bower ist nun systemweit installiert und Ihr könnt loslegen.

Update (26.04.2015): Dieser Schritt wurde überarbeitet, um auch die aktuelle Node.js Version 0.12 installieren zu können.

Update (22.10.2015): Sollte es beim apt-get update zur Fehlermeldung „Der Treiber für Methode /usr/lib/apt/methods/https konnte nicht gefunden werden.“ kommen, fehlt noch das Paket apt-transport-https, dann wurde der Schritt in Zeile 9 vergessen.

Update (20.06.2016): Paketquellen von wheezy auf jessie aktualisiert (Stand jetzt geht es noch mit wohl wheezy und jessie).


 

Schritt 2: Bower nutzen / Pakete installieren

Einen sehr schönen Beitrag zur Nutzung von Bower gibt es bei Treehouse Blog (englisch). Eine Auflistung der einzelnen Befehle gibt es auf der Bower API Seite (englisch). Auch einen Blick wert ist die Seite für die Bower Konfiguration (englisch).

Grob zusammengefasst geht man so vor:

  1. Ins Projekthauptverzeichnis wechseln
  2. Mit bower init Bower einmalig für das Projekt initialisieren
  3. Mit bower search <query> Pakete suchen
  4. Mit bower install package[#version] [--save] Pakete installieren
  5. Mit bower list die installierten Pakete einsehen (hier sieht man auch, ob es Updates gibt!)
  6. Mit bower update die installieren Pakete aktualisieren

In dem konkreten Beispiel (Bootstrap & Font-Awesome installieren und nutzen) sieht das dann so aus:

cd /path/to/project

## init bower (creates bower.json which can be changed at any time later)
bower init

## search for package (will give a lot of results incl. "bootstrap" itself)
bower search bootstrap

## install bootstrap (--save option will also add an entry in bower.json)
bower install bootstrap --save

## install font-awesome
bower install fontawesome --save

Viel mehr muss man auch schon nicht machen. In der Regel beschränkt sich das Ganze (bei mir) auf die wenigen genannten Befehle oben.

Ich habe vorher eine noch .bowerrc Datei im Projekthauptverzeichnis gemäß Bower Konfiguration angelegt und über directory das Verzeichnis für alle Bower Pakete angegeben, aber das ist natürlich Geschmackssache.

Da ich meine Projekte in der Regel mit Git verwalte, habe ich das Verzeichnis mit den Bowerpaketen über die .gitignore ausgeschlossen – auch Geschmackssache. Wenn ich das Projekt via Git neu auschecke, dann kann ich mir die Bower Pakete über bower install jederzeit neu laden. Für den unwahrscheinlichen Fall, dass es die Bower Pakete nicht mehr gibt, habe ich ja noch ein Backup ;)


 

Schritt 3: Bower Pakete aktuell halten

Nun sind die Pakete zwar installiert, jedoch müsste man regelmäßig manuell mittels bower list prüfen, ob es für die einzelnen installierten Pakete Updates gibt.

Einfacher geht es mit diesem kleinen Einzeiler, den man einfach als täglichen oder wöchentlichen Cronjob einrichten kann (in diesem Beispiel wird der Job immer sonntags um 8:55 Uhr ausgeführt):

55 08 * * 00 <user> cd </path/to/project> && [ -f bower.json ] && /usr/local/bin/bower list | grep -E '\(.*avail|latest' | sed 's!^[^ ]* !!'

Nun gibt es einmal pro Woche automatisch eine schlichte Email mit den Paketen zu denen es ein Update gibt. Wenn es keine neuen Updates gibt, dann wird auch keine Email verschickt.

Wichtig: Bitte darauf achten <user> gegen den aktuellen User des Projekts auszutauschen genau wie </path/to/project>.

Alternativ kann man natürlich ebenfalls mit einem Cronjob die Updates automatisch einspielen (hierzu einfach im genannten Cronjob das bower list | grep -E '\(.*avail|latest' | sed 's!^[^ ]* !!' durch bower update ersetzen), jedoch bin ich kein Freund von Autoupdates an dieser Stelle. Aus meiner Sicht sollten solche Pakete erstmal in einer Testumgebung installiert, getestet und dann live gestellt werden.

Update (26.04.2015): Um Bower selbst zu aktualisieren, geht man ziemlich genauso vor wie auch bei Composer und Bower Paketen:

# become root
su

## update bower
npm update -g bower

## or update all global installed npm packages
npm update -g

## list global installed packages
npm list -g --depth=0

 

Schritt 4: Bower Paketversionen verstehen

In der bower.json steht im Bereich dependencies in der Regel die Versionen pro installiertem Paket gemäß Semver (Semantic Versioning) in Form von bspw. ~4.2.0 mit einer Tilde (~) davor.

Das bedeutet jedoch, dass ein bower update nur Patches einspielt (nur bis max Version 4.2.x), jedoch keine Minor oder gar Major Updates. Dieses erkennt man beim Aufruf von bower list an dem Wort latest, das heißt: es gibt neuere Versionen, die gemäß dependencies aber nicht mehr installiert (aktualisiert) werden dürfen.

Man kann die Versionierung aber einfach ändern: entweder von bspw. ~4.2.0 auf ~4.2, ~4 oder sogar >=4.2.0 (Details unter https://github.com/npm/node-semver)

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte beachte die Hinweise zum Datenschutz