GNU/Linux >> Znalost Linux >  >> Linux

Vše je v tečkovém souboru – YADM a Homeshick

Zálohy jsou důležité. Zálohy jsou zásadní. Zálohy jsou láska, zálohy jsou život. V průběhu let jsem mluvil o zásadní hodnotě udržování vašich dat v bezpečí, a to znamená více kopií, více umístění. Nedávno jsme také mluvili o tom, jak si vytvořit vlastní rychlé 'n' špinavé nastavení s tar a gpg. Ten pokrývá nastavení dat i aplikací. Když už mluvíme o tom druhém ...

Pojďme si to ještě rozvést. Pokud máte více počítačů, často přeinstalujete systémy nebo chcete mít konzistentní konfiguraci na více hostitelích, mohl by vás zajímat způsob, jak spravovat nastavení aplikací. V Linuxu většina softwaru uchovává své konfigurace ve skrytých souborech v domovském adresáři, buď na nejvyšší úrovni (/home/username) nebo v podadresáři .config. Ať tak či onak, může jich být spousta, chcete mít jistotu, že máte vždy kopii, a pokud se něco pokazí, můžete se snadno vrátit k dobrému kontrolnímu bodu. Představujeme YADM a Homeshick.

Ještě další Dotfiles Manager (YADM)

Název není inspirativní, ale program přichází s ušlechtilým posláním. Je navržen tak, aby vám pomohl uchovávat verzované kopie vašich konfiguračních souborů, abyste měli flexibilní a robustní nastavení. Tento koncept se liší od softwaru, který se pokouší automaticky uhodnout vaše nastavení – je to spíše jako můj manuál s jednou řádkou výše, v tom, že se musíte starat o každý konfigurační soubor zvlášť. Vlastní nastavení však vyžaduje, abyste si neustále uchovávali kopie dat, což může být těžkopádné a navíc nebudete nutně vědět, která konkrétní záloha obsahuje správné změny.

YADM si klade za cíl zavést prvek časové hloubky pomocí git na pozadí. V zásadě odevzdáte své vlastní konfigurace do svého vlastního repozitáře, což vám poskytne všechny potřebné kousky, jako je historie verzí, rozdíl a podobně. Dobře, pojďme se podívat, jak to funguje.

Začátek byl slibný. Měl jsem spuštěný YADM a mohl jsem přidávat soubory:

roger@matrix:~$ yadm přidat .ssh
roger@matrix:~$ yadm přidat .gnupg

Když jsem se však pokusil odevzdat soubory, YADM si stěžoval, že neví, kdo jsem:

roger@matrix:~$ yadm commit

*** Řekněte mi prosím, kdo jste.

Spustit

git config --global user.email "[email protected]"
git config --global user.name "Vaše jméno"

pro nastavení výchozí identity vašeho účtu.
Vynechat --global pro nastavení identity pouze v tomto úložišti.

závažné:nelze automaticky detekovat e-mailovou adresu (získáno 'roger@matrix.(none)')

Tato chyba je jaksi zbytečná. Program by mohl zkontrolovat, zda jste před přidáním souborů identifikovali. Navíc si nejsem jistý, co by se stalo, kdybyste se identifikovali s nesprávným e-mailem nebo jménem? Jak to ovlivní pozdější ověření? Rozhodl jsem se to neriskovat, takže jsem použil localhost, abych se dostal přes tuto fázi, a pak jsem se mohl zavázat.

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

yadm commit -m "Testování odevzdává první dávku"
[master (root-commit) fe99215] Testování potvrzuje první dávku
2 soubory změněny, 0 vložení (+), 0 smazání (-)
režim vytvoření 100644 .gnupg/pubring.kbx
režim vytvoření 100644 .gnupg/trustdb.gpg

Ale pak mě zmátl poslední krok – skutečný tlak. Ano, vím, jak git funguje a tak dále - takže to znamená, že ve skutečnosti potřebujete mít server, na kterém běží git, dostupný ve vaší síti (LAN nebo Internet nebo cokoli jiného). Pokud ano, komplikuje to nastavení a také to snižuje flexibilitu, protože ve skutečnosti nemůžete uchovávat modulární, nezávislé offline soubory.

Strávil jsem trochu času čtením dokumentace a pracovní postup mi přišel dost těžkopádný. Možná mi chybí něco opravdu zřejmého, ale také věřím v jednoduchost skvělého softwaru, která se dá vysvětlit. Skutečnost, že jsem hned neprožíval hvězdný zážitek a žádné otázky, znamená, že se jedná o řešení s odlišným mozkovým vzorem – a tedy potřebou – než těžím.

Homeshick

Možná si myslíte, že je to oblíbený zálohovací software Seana Conneryho založený na git, ale vtip je na vás, ha ha! Je to verze skriptu shellu nyní zastaralého softwaru pro synchronizaci dotfiles Homesick založeného na Ruby. BASH-plná povaha tohoto nástroje by měla usnadnit konfiguraci a použití.

Postupoval jsem podle návodu a nastavení je opravdu triviální. Musíte však také připojit zdroj skriptu na konec souboru .bashrc ve vašem domovském adresáři, jinak budete muset ke spuštění nástroje použít úplnou správnou cestu.

Nyní Homeshick funguje tak, že kombinuje git se symbolickým propojováním. V podstatě každý soubor, který do něj přidáte, bude symbolicky propojen s vaším repo. Což přináší otázku, co se stane, když chcete "odstranit" soubor? Každopádně repozitáře se ve skutečnosti nazývají hrady (výchozí je CASTLE).

homeshick
homeshick používá git ve shodě se symbolickými odkazy ke sledování vašich cenných dotfiles.

Použití:homeshick [volby] TASK

Úkoly:
homeshick cd HRAD # Vstup do hradu
homeshick klon URI.. # Klonovat URI jako castle for homeshick
homeshick generovat CASTLE.. # Generate a castle repo

Pokyny však nejsou dostatečně jasné – pokud hned spustíte první příkaz, zobrazí se chyba:

homeshick cd CASTLE
bash:cd:/home/roger/.homesick/repos/CASTLE:Žádný takový soubor nebo adresář

Skript nekontroluje, zda existuje repo, takže vás neupozorní, že je potřeba ho vygenerovat. To není velký problém, ale opravdu neexistuje důvod, proč by nemohlo existovat přátelské výchozí nastavení nebo alespoň varování, aby to uživatelé mohli vyřešit.

homeshick generovat CASTLE
generovat CASTLE


Začínáme atd.

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

Když se podíváte na existující seznam repozitářů, je tam i to autorovo. Každopádně jsem pokračoval v používání skriptu. V podstatě je to ruční práce. Zadáte repo a soubor, který chcete přesunout dovnitř, který bude poté symbolicky označen na správném místě, např.:

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

Dalším krokem je potvrzení změny a následné přemístění do repo – čímž se dosáhne online povahy tohoto skriptu, podobně jako YADM. Pokud ovšem nechcete použít vlastní konfiguraci serveru. Není to triviální a musel jsem nahlédnout do dokumentace. Nakonec uděláte cd CASTLE, git commit, git push, celý obchod. Takže homeshick svým způsobem abstrahuje spoustu příkazů git (jako větve a tak). Připadalo mi to stejně matoucí jako můj dřívější pokus, takže si myslím, že software je většinou určen pro vývojáře.

Vyskytly se i nějaké podivné chyby. Stejně jako obnovení repo. Co to vlastně dělá? Jak zjistí, že místní repo je zastaralé, pokud skutečně nemá žádné upstream? Také jsem se bál, že by se moje soubory mohly nějak přepsat, a co se stane potom?

homeshick refresh
zastaralý HRAD
zastaralý homeshick
refresh Hrady CASTLE,homeshick jsou zastaralé.
tahat? [yN]

žádný proti proudu Nelze vytáhnout CASTLE, nemá proti proudu
vytáhnout homeshick

Závěr

Můj mozek rozhodně není mozkem vývojáře softwaru – proto mi nástroj jako git vůbec nepřipadá přátelský. Připadá mi to jako software zaměřený spíše na stroje než na člověka a působí to spletitěji, než by mělo být. Podobně YADM a Homeshick mi nepřijdou jako ideální řešení otázky konfigurace domovského adresáře. Pokud potřebuji dělat věci ručně a poté je uložit do zálohy (archivu), mohu to také udělat správně ručně, s větší flexibilitou a kontrolou.

Rozumím tomu, co se tyto dva nástroje snaží vyřešit, a mít plně synchronizované a verzované nastavení na více systémech je dobrý nápad (můžete naskriptovat procedury pull a push, vše běží hladce na pozadí), ale oba programy jsou příliš nerdy a měly by mít elegantnější počáteční konfiguraci a lepší kontrolu chyb. V neposlední řadě je tu otázka soukromí. Opravdu chcete přesunout důležité soubory do online úložiště jen tak? Jste spokojeni s úrovněmi zabezpečení, úrovněmi šifrování – a vaší schopností provést nastavení pevně a chytře bez hloupých děr? Takže pokud jde o můj původní úkol, myslím, že jednoduchost rsync, tar a gpg zůstává mým preferovaným řešením zálohování domovského adresáře. Ale pokud jste mladý blázen – a ne starý blázen jako já – pak by se vám mohlo líbit toto. Tady to je.


Linux
  1. Použít Setxkbmap k záměně levého Shiftu a levého ovládání?

  2. Rozdíl mezi „du -sh *“ a „du -sh ./*“?

  3. Rozdíl mezi symbolickými a pevnými odkazy?

  1. Uložit veškerý výstup z terminálu do souboru?

  2. Jak zjistit typ souboru Img a připojit jej?

  3. Jak grepovat řetězec v adresáři a všech jeho podadresářích?

  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Příkaz pro výpis všech souborů kromě . (tečka) a .. (tečka tečka)

  3. Jak mohu extrahovat všechny externí odkazy webové stránky a uložit je do souboru?