DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Dotfiles versionieren und synchronisieren

| Comments

Dotfiles sind Konfigurationsdateien, die versteckt sind und sich im Home-Verzeichnis des Benutzers befinden. Diese heißen deshalb „dotfiles“, weil alle versteckten Dateien mit einem Punkt beginnen.
Ich habe nun einen großen Teil dieser Dateien veröffentlicht, um es zum einen mir zur Verfügung zu stellen und zum anderen Euch bzw. jemandem, der sich dafür interessiert.

Warum stelle ich es mir zur Verfügung?

Da ich nun an mehreren Rechnern über SSH arbeite, würde ich gerne alle lokalen Konfigurationen der Shell übernehmen.

Wichtige Einstellungen sind:

  • Shell
  • Shell-Theme
  • Aliase
  • VIM
  • Git

Veröffentlichung

Meine Dotfiles sind auf GitHub im Repository „dotfiles“ veröffentlicht. Daher sind diese auch versioniert.

Rakefile

Das beiliegende Rakefile ist ein in Ruby geschriebenes Skript, mit dem Aufgaben erledigt werden können:

Die implementierten Aufgaben sind:

  • rake add[glob] – Hinzufügen von Dotfiles zum Repository (Default: ~/.dotfiles)

ruby Beispiel-Aufrufe rake add["~/.*[^~]"] rake add["~/.zshrc"] rake add["~/.aliasrc"]

  • rake init_vim – Initialisiert VIM. Das Plug-in-Verwaltungs-Tool Vundle wird installiert.
  • rake init_zsh – Setzt die Shell auf ZSH.
  • rake install – Erzeugt symbolische Links im Home-Verzeichnis zu den im Repository liegenden *.symlink-Dateien. Es erzeugt ggf. ein Backup der vorhanden Datei. Außerdem werden alle *.erb-Dateien generiert.
  • rake install_bin – Erzeugt einen symbolischen Link aller Skripte in ~/sys/bin/*.
    (Der Pfad sollte in der Umgebungsvariablen PATH liegen.)
  • rake list – Listet diese Aufgaben auf.
  • rake sync – Synchronisiert Dotfiles vom Repository mit dem Home-Verzeichnis.
  • rake uninstall – Löscht alle erzeugten symbolischen Links aus dem Home-Verzeichnis. Backups werden wiederhergestellt.
  • rake update – Holt sich neue Versionen des Repositories und sychronisiert diese.

Dotfiles

Der folgende Inhalt meiner Konfigurationsdateien ist nicht vollständig, daher lohnt sich ein Blick in das Repository.

Ich würde mich über einen Kommentar freuen, wenn jemand meine Konfigurationedateien nutzt oder nur einen Teil davon. Habe ich wichtige Dateien vergessen?

Comments