GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Es steht alles in der Dot-Datei - YADM und Homeshick

Backups sind wichtig. Backups sind entscheidend. Backups sind Liebe, Backups sind Leben. Im Laufe der Jahre habe ich über den Kardinalwert gesprochen, Ihre Daten sicher aufzubewahren, und das bedeutet mehrere Kopien, mehrere Standorte. Wir haben kürzlich auch darüber gesprochen, wie Sie Ihr eigenes schnelles und schmutziges Setup mit tar und gpg zusammenstellen können. Dieser deckt sowohl Daten- als auch Anwendungseinstellungen ab. Apropos letzteres ...

Lassen Sie uns das noch etwas erweitern. Wenn Sie mehrere Computer haben, Systeme häufig neu installieren oder einfach nur eine konsistente Konfiguration auf mehreren Hosts haben möchten, könnten Sie an einer Möglichkeit interessiert sein, Anwendungseinstellungen zu verwalten. Unter Linux speichert die meiste Software ihre Konfigurationen in versteckten Dateien im Home-Verzeichnis, entweder auf der obersten Ebene (/home/Benutzername) oder im Unterverzeichnis .config. So oder so, es könnte viele davon geben, Sie möchten sicherstellen, dass Sie immer eine Kopie haben, und wenn etwas schief geht, können Sie leicht zu einem guten Kontrollpunkt zurückkehren. Wir stellen YADM und Homeshick vor.

Ein weiterer Dotfiles Manager (YADM)

Der Name ist nicht inspirierend, aber das Programm hat eine edle Mission. Es wurde entwickelt, um Ihnen zu helfen, versionierte Kopien Ihrer Konfigurationsdateien aufzubewahren, sodass Sie über ein flexibles, robustes Setup verfügen. Dieses Konzept unterscheidet sich von Software, die versucht, Ihre Einstellungen automatisch zu erraten – es ähnelt eher meinem manuellen Einzeiler oben, da Sie sich um jede Konfigurationsdatei separat kümmern müssen. Ein DIY-Setup erfordert jedoch, dass Sie ständig Kopien von Daten aufbewahren, und dies kann umständlich sein, und Sie wissen nicht unbedingt, welches bestimmte Backup die richtigen Änderungen enthält.

YADM zielt darauf ab, ein Element der zeitlichen Tiefe einzuführen, indem git im Hintergrund verwendet wird. Grundsätzlich übertragen Sie Ihre eigenen Konfigurationen auf Ihr eigenes Repo, und dies gibt Ihnen alle notwendigen Bits und Teile, wie Versionsgeschichte, Diff und ähnliches. In Ordnung, mal sehen, wie es funktioniert.

Der Start war vielversprechend. Ich hatte YADM ausgeführt und konnte Dateien hinzufügen:

roger@matrix:~$ yadm füge .ssh hinzu
roger@matrix:~$ yadm füge .gnupg hinzu

Als ich jedoch versuchte, die Dateien zu übergeben, beschwerte sich YADM, dass es nicht wüsste, wer ich bin:

roger@matrix:~$ yadm commit

*** Bitte sagen Sie mir, wer Sie sind.

Führen Sie

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

um die Standardidentität Ihres Kontos festzulegen.
Lassen Sie --global weg, um die Identität nur in diesem Repository festzulegen.

Schwerwiegend:E-Mail-Adresse kann nicht automatisch erkannt werden (hat 'roger@matrix.(none)' erhalten)

Dieser Fehler ist irgendwie unnötig. Das Programm könnte überprüfen, ob Sie sich identifiziert haben, bevor Sie Dateien hinzufügen. Außerdem bin ich mir nicht sicher, was passieren würde, wenn Sie sich mit einer falschen E-Mail-Adresse oder einem falschen Namen identifizieren? Wie würde sich dies auf die spätere Authentifizierung auswirken? Ich habe beschlossen, es nicht zu riskieren, also habe ich localhost verwendet, um diese Phase zu überwinden, und dann konnte ich mich festlegen.

roger@matrix:~$ git config --global user.email "[email protected]"
roger@matrix:~$ git config --global user.name "Roger Bodger"

yadm commit -m "Commits erster Batch testen"
[master (root-commit) fe99215] Commits erster Batch testen
2 Dateien geändert, 0 Einfügungen (+), 0 Löschungen (-)
Erstellungsmodus 100644 .gnupg/pubring.kbx
Erstellungsmodus 100644 .gnupg/trustdb.gpg

Aber dann hat mich der letzte Schritt verblüfft - der eigentliche Stoß. Ja, ich weiß, wie Git funktioniert und all das - das bedeutet also, dass Sie tatsächlich einen Server haben müssen, auf dem Git ausgeführt wird und der in Ihrem Netzwerk (LAN oder Internet oder was auch immer) verfügbar ist. Wenn dies der Fall ist, verkompliziert dies die Einrichtung und macht sie auch weniger flexibel, da Sie nicht wirklich modulare, unabhängige Offline-Dateien halten können.

Ich verbrachte ein wenig Zeit damit, die Dokumentation zu lesen, und ich fand den Arbeitsablauf ziemlich umständlich. Vielleicht übersehe ich etwas wirklich Offensichtliches, aber ich glaube auch an die selbsterklärende Einfachheit großartiger Software. Die Tatsache, dass ich nicht sofort ein hervorragendes Erlebnis hatte, keine Fragen gestellt, bedeutet, dass dies eine Lösung mit einem anderen Gehirnmuster ist – und daher muss – als meins.

Heimweh

Sie denken vielleicht, dass dies Sean Connerys beliebteste Git-basierte Backup-Software ist, aber der Witz liegt bei Ihnen, haha! Es ist eine Shell-Skript-Version der inzwischen veralteten Ruby-basierten Homesick-Dotfiles-Synchronizer-Software. Die BASH-artige Natur dieses Tools sollte es einfach zu konfigurieren und zu verwenden machen.

Ich habe die Anweisungen befolgt, und tatsächlich ist die Einrichtung trivial. Aber Sie müssen auch das Skript-Sourcing an das Ende Ihrer .bashrc-Datei in Ihrem Home-Verzeichnis anhängen, andernfalls müssen Sie den vollständigen richtigen Pfad verwenden, um das Tool auszuführen.

Jetzt funktioniert Homeshick, indem es Git mit Symlinking kombiniert. Grundsätzlich wird jede Datei, die Sie hinzufügen, mit Ihrem Repo verknüpft. Was die Frage aufwirft, was passiert, wenn Sie eine Datei "entfernen" möchten? Wie auch immer, die Repos heißen tatsächlich Castles (der Standard ist CASTLE).

Homeshick
Homeshick verwendet Git zusammen mit Symlinks, um Ihre wertvollen Punktdateien zu verfolgen.

Verwendung:homeshick [options] TASK

Aufgaben:
homeshick cd CASTLE # Geben Sie ein Schloss ein
homeshick clone URI.. # Clone URI as a Castle for Homeshick
Heimweh CASTLE generieren.. # Ein Castle Repo generieren

Die Anweisungen sind jedoch nicht klar genug - wenn Sie den ersten Befehl gleich ausführen, erhalten Sie einen Fehler:

homeshick cd CASTLE
bash:cd:/home/roger/.homesick/repos/CASTLE:Keine solche Datei oder Verzeichnis

Das Skript überprüft nicht, ob ein Repo vorhanden ist, und warnt Sie daher nicht, dass Sie eines erstellen müssen. Das ist kein großes Problem, aber es gibt wirklich keinen Grund, warum es nicht eine benutzerfreundliche Standardeinstellung oder zumindest eine Warnung geben könnte, damit die Benutzer es regeln können.

Homeshick CASTLE generieren
CASTLE generieren


Erste Schritte usw.

Homeshick list
CASTLE
Homeshick https://github. com/andsens/homeshick.git

Wenn Sie sich die vorhandene Liste der Repos ansehen, ist auch die des Autors vorhanden. Wie auch immer, ich ging weiter über die Verwendung des Skripts. Im Grunde ist es Handarbeit. Sie geben das Repo und die Datei an, die Sie hinein verschieben möchten, die dann an der richtigen Stelle symbolisch verlinkt werden, z. B.:

homeshick track CASTLE ~/.profile ~/.gnupg
track .profile
track .gnupg/trustdb.gpg
track .gnupg/pubring.kbx

Der nächste Schritt besteht darin, die Änderung festzuschreiben und dann in ein Repo zu pushen – wodurch die Online-Natur dieses Skripts ähnlich wie bei YADM entsteht. Es sei denn, Sie möchten Ihre eigene Serverkonfiguration verwenden. Nicht trivial, und ich musste die Dokumentation konsultieren. Am Ende machst du cd CASTLE, git commit, git push , den ganzen Deal. In gewisser Weise abstrahiert Homeshick also eine Reihe von Git-Befehlen (wie Verzweigungen und dergleichen). Ich fand das genauso verwirrend wie bei meinem früheren Versuch, also denke ich, dass die Software hauptsächlich für Entwickler entworfen wurde.

Es gab auch einige seltsame Fehler. Wie die Repo-Aktualisierung. Was bringt das wirklich? Wie stellt es fest, dass ein lokales Repo veraltet ist, wenn es tatsächlich keinen Upstream hat? Ich hatte auch Angst, dass meine Dateien irgendwie überschrieben werden könnten, und was passiert dann?

homeshick aktualisieren
veraltet CASTLE
veraltet homeshick
refresh Die Schlösser CASTLE,homeshick sind veraltet.
ziehen? [yN]

kein Upstream CASTLE konnte nicht gezogen werden, es hat kein Upstream
Heimweh ziehen

Schlussfolgerung

Mein Gehirn ist definitiv nicht das eines Softwareentwicklers - weshalb ich ein Tool wie git überhaupt nicht freundlich finde. Es fühlt sich eher wie eine maschinenorientierte als eine menschenorientierte Software an, und es fühlt sich komplizierter an, als es sein sollte. Ebenso erscheinen mir YADM und Homeshick nicht als ideale Lösungen für die Frage zur Konfiguration des Home-Verzeichnisses. Wenn ich Dinge manuell erledigen und sie dann in ein Backup (Archiv) übernehmen muss, kann ich es genauso gut manuell tun, mit mehr Flexibilität und Kontrolle.

Ich verstehe, was diese beiden Tools zu lösen versuchen, und ein vollständig synchronisiertes und versioniertes Setup auf mehreren Systemen zu haben, ist eine gute Idee (Sie können die Pull- und Push-Prozeduren skripten, damit alles reibungslos im Hintergrund läuft), aber beide Programme sind es auch nerdy, und sie sollten eine elegantere Erstkonfiguration und eine bessere Fehlerprüfung haben. Zu guter Letzt stellt sich die Frage nach dem Datenschutz. Wollen Sie wirklich wichtige Dateien einfach so in ein Online-Repo schieben? Sind Sie mit den Sicherheitsstufen, Verschlüsselungsstufen und Ihrer Fähigkeit vertraut, das Setup straff und intelligent ohne dumme Löcher zu gestalten? Also zu meiner ursprünglichen Suche, ich denke, die Einfachheit von rsync, tar und gpg bleibt meine bevorzugte Lösung für die Sicherung des Home-Verzeichnisses. Aber wenn Sie ein junger Idiot sind – und kein alter Idiot wie ich – dann könnte Ihnen das gefallen. Los geht's.


Linux
  1. Verwenden Sie Setxkbmap, um die linke Verschiebung und die linke Steuerung zu tauschen?

  2. Der Unterschied zwischen „du -sh *“ und „du -sh ./*“?

  3. Der Unterschied zwischen .exrc und .vimrc?

  4. Alle Terminalausgaben in einer Datei speichern?

  5. Wie finde ich den Typ einer Img-Datei und mounte sie?

So erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit in Python

So verwenden Sie Sudo und die Sudoers-Datei

So speichern Sie eine Datei in Vim / Vi und beenden den Editor

Und die beste Distribution des Jahres 2019 ist ...

Plasma 5.17 Review – Die Show muss weitergehen (und gut sein)

Wie entpacke ich alle externen Links einer Webseite und speichere sie in einer Datei?