Software lokal installieren mit dem Linux Installations-Dreisatz (Eine Anmerkung)

Thursday, October 20, 2016

Wird ein Programm nicht über die Paketverwaltung angeboten, bleibt nur das Programm selbst zu installieren.
Hierfür wird i.d.R. der Linux Installations-Dreisatz aufgezeigt, der sich aus den GNU build utils der GNU Toolchain ergibt, um Software zu installieren. Auch selbst entwickelte Programme installiert man i.d.R. auf diese Weise.

Der Linux Installations-Dreisatz im Detail

Als Installations-Dreisatz bezeichnet man das Kompilieren und Installieren eines Programms mit folgenden drei Befehlen:

./configure --prefix=/usr/local
make
make install

In der Standardeinstellung ist normalerweise schon die Installation nach /usr/local vorgesehen. Denn /usr/bin gehört dem System und ist tabu. Siehe GNU Autoconf Handbuch Abs. 4.13 Default Prefix (https://www.gnu.org/software/autoconf/manual/autoconf.html#Default-Prefix).

Die drei Schritte sollten bekannt sein.
Nun ist aber in vielen Foren und Anleitungen zu lesen, dass für das make install Superuser-Rechte benötigt werden.
Doch das ist falsch. Der richtig Ansatz führt über die Gruppe staff, denn diese Gruppe ist vorgesehen um Software, ohne Superuser-Rechte lokal zu installieren. Fügt man sein Benutzerkonto dieser Gruppe hinzu, erhält man Schreibrechte unterhalb /usr/local und /var/local, so das zur Installation kein Root notwendig ist (was auch einen Sicherheitsgewinn bringt). Die Berechtigungen können im Detail wie folgt ermittelt werden: find / -group staff -writable 2>/dev/null.

Siehe auch: https://wiki.debian.org/SystemGroups.

Hat man Software lokal installiert, muss die Umgebungsvariable PATH entsprechend angepasst werden und /usr/local/bin und /usr/local/sbin hinzugefügt werden (ggf. auch in der Crontab). Und mittels ldconfig /usr/local/lib, der dynamische Linker angewiesen werden, auch nach Libs unter /usr/local/lib zu suchen.

Mehr Details zum Installations-Dreisatz findet man in der einschlägigen Literatur.

Als Alternative zur lokalen Installation, sollte aber immer das Erstellen eines distributions-spezifischen Pakets in Betracht kommen. Denn oft bieten Software-Projekte kein make uninstall an, oder es wurde nur unzureichend implementiert.