.dotfiles versionieren

Wenn man viel mit der Shell (Terminal) unterwegs ist, wird man früher oder später auch auf die dotfiles stoßen. Dotfiles nennt man die Dateien die (meistens) im Homeverzeichnis (~) liegen und mit einem Punkt beginnen. Also z.B. .bash_profile oder .vimrc. Diese kleinen Dateien können ziemlich nützlich sein, denn sie beinhalten Konfigurationen für verschiedene Programme und können das Verhalten oder Aussehen beeinflussen. Somit kann jeder sich seine Traum-Konfiguration erstellen.

Was hat es mit dem Punkt auf sich?

Der Punkt kommt aus der Unix-Welt. Auf *Nix Betriebsystemen (Unix, Linux) können Dateien oder Ordner versteckt werden indem man einen Punkt davor stellt. Deshalb sind die dotfiles nicht sichtbar im File Explorer. Somit stören sie nicht unnötig aber falls man sie bearbeiten muss kann man sie einfach öffnen.

Beispiele für Dotfiles

Dotfiles können so viel. Als erstes muss ich wohl .bash_profile und .bashrc nennen. Diese zwei Dateien regeln das Verhalten der Bash. Dort kann ich z.B. das Prompt einstellen, also der Text den man im Terminal vor jeder Zeile sieht. Aber man kann noch viel mehr machen. Dort kann ich mir neue alias anlegen, die mir bestimmte Kommandos abkürzen und vereinfachen oder ich erweitere meinen PATH, indem sämtliche Verzeichnisse stehen, in dem nach ausführbaren Programmen gesucht werden soll. Auf Medium.com fand ich dazu einen guten Einsteiger Artikel.

Desweiteren hat kann ich auch git mit dotfiles anpassen. Dort kann ich z.B. meinen Namen und E-Mail Adresse hinterlegen, die standardmäßig für Commits verwendet werden soll. Oder ich lege fest wann ich Farben verwenden möchte bei Befehlen oder ob ich neue aliase verwenden möchte.

Das sind jetzt nur zwei Beispiele. Im Grunde könnt ihr mit dotfiles eine Menge anstellen. Selbst ich finde immer wieder neue Dinge heraus.

dotfiles versionieren.

Ich habe meine Dotfiles auf GitHub in ein Repo versioniert: obstschale/dotfiles. Warum mache ich das? Das bietet mir die Möglichkeit meine Konfigurationen zu sichern und einfach auf neuen Maschinen zu installieren. Denn wenn man sich einmal an seine Konfiguration gewöhnt hat ist es teilweise gar nicht so einfach mit der Standard Einstellung von z.B. VIM zu arbeiten. So habe ich meine Dotfiles immer griffbereit und kann mir auf Wunsch meine dotfiles auf der neuen Maschine, sei das ein neuer Laptop oder eine Linux VM, installieren.

Seine Dotfiles auf GitHub stellen ist gar nicht so ungewöhnlich. Sucht man einmal danach findet man sehr viele Entwickler, die das machen. Auch ich habe mir aus verschiedensten Repos von anderen Leuten Snippets zusammen gesucht und Dinge abgeguckt. Wenn man erstmal in der Thematik drinnen ist, findet man es recht interessant zu  sehen wie andere arbeiten und wie diese Leute ihre Konfiguration eingestellt haben.

GNU Stow

Möchte man nicht nur seine dotfiles versionieren, sondern vor allem schnell seine Dateien auf einer neuen Maschine anlegen kann man sich dafür ein Script bauen. Ich selber habe mir auch ein Script von einem Entwickler genommen und angepasst. Nun habe ich aber auf Twitter von @swissspidy einen Tweet entdeckt indem er auf GNU Stow hinweist.

Im Grunde ist GNU Stow ein Tool, dass genau das macht. Also wie funktioniert es im Groben?

Man versioniert seine dotfiles alle in einem separaten Ordner. In der Regel ist das wohl ~/.dotfiles. In diesen Ordner legt man alle seine Dotfiles ab, die normalerweise im Homeverzeichnis liegen würden. Den Ordner kann man dann einfach mit git versionieren.

Möchte man nun ein dotfile oder mehrere verwenden, werden nur Symlinks vom Homeverzeichnis in das dotfile-Verzeichnis gelegt. Somit bleiben alle Daten im Ordner und im Homeverzeichnis liegen (im optimalen Fall) nur Symlinks.

GNU Stow kann den Prozess des Erstellen der Symlinks vereinfachen. Mit dem Tool ist es möglich alle dotfiles auf einmal oder ausgewählte mit einem Symlink anzulegen.

Für mehr Infos weise ich, wie Pascal, auf diesen Artikel oder schaut euch mein Script an, das einen ähnlichen Workflow hat.

Wer noch mehr über dotfiles wissen möchte kann auch mal auf dotfiles.github.io schauen.

Author: Hans-Helge

Als studierter Informatiker arbeitet Hans-Helge gerne als freiberuflicher WordPress Entwickler und betreut neben eigenen Projekten viele andere Webseiten u.A. im ehrenamtlichen Bereich.

3 Kommentare

Schreibe einen Kommentar

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