GNU/Linux >> Tutoriels Linux >  >> Linux

Tout est dans le fichier dot - YADM et Homeshick

Les sauvegardes sont importantes. Les sauvegardes sont cruciales. Les sauvegardes c'est l'amour, les sauvegardes c'est la vie. Au fil des ans, j'ai parlé de la valeur cardinale de la protection de vos données, ce qui signifie plusieurs copies, plusieurs emplacements. Nous avons également parlé de la façon de concocter votre propre configuration rapide et sale avec tar et gpg récemment. Celui-ci couvre à la fois les données et les paramètres d'application. En parlant de ce dernier ...

Développons cela un peu plus. Si vous avez plusieurs ordinateurs, réinstallez fréquemment des systèmes ou souhaitez simplement avoir une configuration cohérente sur plusieurs hôtes, vous pourriez être intéressé par un moyen de gérer les paramètres d'application. Sous Linux, la plupart des logiciels conservent leurs configurations dans des fichiers cachés à l'intérieur du répertoire personnel, soit au niveau supérieur (/home/nom d'utilisateur), soit dans le sous-répertoire .config. Quoi qu'il en soit, il pourrait y en avoir beaucoup, vous voulez vous assurer que vous en avez toujours une copie, et si quelque chose ne va pas, vous pouvez facilement revenir à un bon point de contrôle. Présentation de YADM et Homeshick.

Encore un autre gestionnaire de fichiers de points (YADM)

Le nom n'est pas inspirant, mais le programme vient avec une noble mission. Il est conçu pour vous aider à conserver des copies versionnées de vos fichiers de configuration, afin que vous disposiez d'une configuration flexible et robuste. Ce concept est différent du logiciel qui essaie de deviner automatiquement vos paramètres - il ressemble plus à mon manuel d'utilisation ci-dessus, en ce sens que vous devez vous occuper de chaque fichier de configuration séparément. Cependant, une configuration de bricolage nécessite que vous conserviez constamment des copies des données, ce qui peut être fastidieux, et vous ne saurez pas nécessairement quelle sauvegarde particulière contient les bonnes modifications.

YADM vise à introduire un élément de profondeur temporelle en utilisant git en arrière-plan. Fondamentalement, vous validez vos propres configurations dans votre propre dépôt, ce qui vous donne tous les éléments nécessaires, comme l'historique des versions, les différences, etc. Très bien, voyons comment cela fonctionne.

Le début était prometteur. J'avais YADM en cours d'exécution et j'ai pu ajouter des fichiers :

roger@matrix :~$ yadm ajouter .ssh
roger@matrix :~$ yadm ajouter .gnupg

Cependant, lorsque j'ai essayé de valider les fichiers, YADM s'est plaint qu'il ne savait pas qui j'étais :

roger@matrix:~$ yadm commit

*** Veuillez me dire qui vous êtes.

Exécuter

git config --global user.email "[email protected]"
git config --global user.name "Your Name"
/>
pour définir l'identité par défaut de votre compte.
Omettez --global pour définir l'identité uniquement dans ce référentiel.

fatal :impossible de détecter automatiquement l'adresse e-mail (obtenu 'roger@matrix.(none)')

Cette erreur est un peu inutile. Le programme pourrait vérifier si vous avez identifié avant d'ajouter des fichiers. De plus, je ne sais pas ce qui se passerait si vous vous identifiez avec un e-mail ou un nom incorrect ? Comment cela affecterait-il l'authentification plus tard ? J'ai décidé de ne pas prendre le risque, j'ai donc utilisé localhost pour passer cette étape, puis j'ai pu m'engager.

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

yadm commit -m "Le test valide le premier lot"
[master (root-commit) fe99215] Le test valide le premier lot
2 fichiers modifiés, 0 insertions(+), 0 suppressions(-)
mode de création 100644 .gnupg/pubring.kbx
mode de création 100644 .gnupg/trustdb.gpg

Mais ensuite, la dernière étape m'a déconcerté - la poussée réelle. Oui, je sais comment fonctionne git et tout ça - cela signifie donc que vous avez réellement besoin d'un serveur, exécutant git, disponible sur votre réseau (LAN ou Internet ou autre). Si tel est le cas, cela complique la configuration et la rend également moins flexible, car vous ne pouvez pas vraiment conserver des fichiers hors ligne modulaires et indépendants.

J'ai passé un peu de temps à lire la documentation, et j'ai trouvé le workflow plutôt lourd. Il me manque peut-être quelque chose de vraiment évident, mais je crois aussi à la simplicité explicite d'un excellent logiciel. Le fait que je n'ai pas eu une expérience stellaire tout de suite, sans poser de questions, signifie qu'il s'agit d'une solution avec un schéma cérébral différent - et donc un besoin - du mien.

Cuisine maison

Vous pensez peut-être que c'est le logiciel de sauvegarde basé sur git préféré de Sean Connery, mais la blague est sur vous, ha ha ! Il s'agit d'une version de script shell du logiciel de synchronisation de fichiers de points Homesick basé sur Ruby, désormais obsolète. La nature BASH-full de cet outil devrait le rendre simple à configurer et à utiliser.

J'ai suivi les instructions, et en effet, la configuration est triviale. Mais vous devez également ajouter le script sourcing à la fin de votre fichier .bashrc dans votre répertoire personnel, sinon vous devrez utiliser le chemin complet approprié pour exécuter l'outil.

Maintenant, Homeshick fonctionne en combinant git avec un lien symbolique. Fondamentalement, tout fichier que vous y ajoutez sera alors lié symboliquement à votre référentiel. Ce qui amène la question, que se passe-t-il si vous voulez "supprimer" un fichier ? Quoi qu'il en soit, les dépôts sont en fait appelés des châteaux (celui par défaut est CASTLE).

homeshick
homeshick utilise git de concert avec des liens symboliques pour suivre vos précieux fichiers de points.

Utilisation :homeshick [options] TASK

Tâches :
homeshick cd CASTLE # Entrez un château
homeshick clone URI.. # Clone URI as a château pour homeshick
homeshick generate CASTLE.. # Générer un dépôt de château

Cependant, les instructions ne sont pas assez claires - si vous exécutez la première commande tout de suite, vous obtiendrez une erreur :

homeshick cd CASTLE
bash :cd :/home/roger/.homesick/repos/CASTLE :aucun fichier ou répertoire de ce type

Le script ne vérifie pas s'il existe un référentiel, il ne vous avertira donc pas que vous devez en générer un. Ce n'est pas un gros problème, mais il n'y a vraiment aucune raison pour qu'il n'y ait pas une configuration conviviale par défaut, ou au moins un avertissement pour que les utilisateurs puissent régler le problème.

homeshick génère CASTLE
génère CASTLE


Mise en route, etc.

liste homeshick
CASTLE
homeshick https://github. com/andsens/homeshick.git

En regardant la liste existante des repos, celle de l'auteur est là aussi. Quoi qu'il en soit, j'ai continué à utiliser le script. En gros, c'est du travail manuel. Vous spécifiez le référentiel et le fichier que vous souhaitez déplacer à l'intérieur, qui sera ensuite mis en lien symbolique au bon endroit, par exemple :

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

L'étape suivante consiste à valider la modification, puis à pousser vers un référentiel - ce qui entraîne la nature en ligne de ce script, un peu comme YADM. À moins, bien sûr, que vous souhaitiez utiliser votre propre configuration de serveur. Pas banal, et j'ai dû consulter la documentation. Vous finissez par faire cd CASTLE, git commit, git push , toute l'affaire. Donc, d'une certaine manière, homeshick résume un tas de commandes git (comme des branches et autres). J'ai trouvé cela tout aussi déconcertant que ma tentative précédente, donc je suppose que le logiciel est principalement conçu pour les développeurs.

Il y avait aussi quelques erreurs étranges. Comme le rafraîchissement du dépôt. Qu'est-ce que ça fait vraiment ? Comment détermine-t-il qu'un dépôt local est obsolète s'il n'a effectivement pas d'amont ? J'avais aussi peur que mes fichiers soient écrasés d'une manière ou d'une autre, et que se passe-t-il alors ?

homeshick refresh
château obsolète
homeshick obsolète
refresh Les châteaux CASTLE,homeshick sont obsolètes.
tirer ? [yN]

pas d'amont Impossible d'extraire CASTLE, il n'a pas d'amont
pull homeshick

Conclusion

Mon cerveau n'est certainement pas celui d'un développeur de logiciels - c'est pourquoi je trouve un outil comme git pas du tout convivial. Cela ressemble à un logiciel orienté machine plutôt qu'humain, et il semble plus compliqué qu'il ne devrait l'être. De même, YADM et Homeshick ne me semblent pas être des solutions idéales à la question de la configuration du répertoire personnel. Si j'ai besoin de faire les choses manuellement, puis de les valider dans une sauvegarde (archive), autant le faire correctement manuellement, avec plus de flexibilité et de contrôle.

Je comprends ce que ces deux outils essaient de résoudre, et avoir une configuration entièrement synchronisée et versionnée sur plusieurs systèmes est une bonne idée (vous pouvez créer un script pour les procédures pull et push, faire en sorte que tout fonctionne correctement en arrière-plan), mais les deux programmes sont trop nerdy, et ils devraient avoir une configuration initiale plus élégante et une meilleure vérification des erreurs. Enfin, il y a la question de la vie privée. Voulez-vous vraiment transférer des fichiers importants dans un dépôt en ligne comme ça ? Êtes-vous à l'aise avec les niveaux de sécurité, les niveaux de cryptage - et votre capacité à rendre la configuration serrée et intelligente sans trous stupides ? Donc, pour ma quête initiale, je pense que la simplicité de rsync, tar et gpg reste mes solutions préférées pour la sauvegarde du répertoire personnel. Mais si vous êtes un jeune con - et pas un vieux con comme moi - alors vous aimerez peut-être ça. Et voilà.


Linux
  1. Utilisez Setxkbmap pour échanger le décalage gauche et le contrôle gauche ?

  2. La différence entre "du -sh *" et "du -sh ./*" ?

  3. La différence entre .exrc et .vimrc ?

  4. Enregistrer toutes les sorties du terminal dans un fichier ?

  5. Comment trouver le type d'un fichier Img et le monter ?

Comment obtenir la date et l'heure actuelles en Python

Comment utiliser Sudo et le fichier Sudoers

Comment enregistrer un fichier dans Vim / Vi et quitter l'éditeur

Et la meilleure distribution de 2019 est ...

Revue Plasma 5.17 - Le spectacle doit continuer (et être bon)

Comment extraire tous les liens externes d'une page Web et les enregistrer dans un fichier ?