Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Než to někdo napíše v diskuzi, tak ano, dnešní doba nahrává spíše cloudovým řešením úložišť. Data jsou takto uložena na jediném místě a problémy se synchronizací jednoduše odpadají. Šikovnější linuxák si takové centrální úložiště zařídí sám, ale co když chceme mít stejná data k dispozici stejně rychle i na odlehlých místech, kde jsme rádi i za „poloviční“ signál a EDGE? Právě tehdy se může šiknout obousměrná synchronizace dat.
Na Unison jsem narazil, když jsem hledal linuxovou alternativu k offline síťovým diskům z Windows, tedy cosi jako offline NFS. Takový pro mě ideální offline síťový disk by pro mě byl zcela transparentně dostupný vždy, ať už jsem online, nebo offline, a po opětovném připojení by nějak došlo k synchronizaci dat. Dobré řešení offline NFS jsem nenašel, Unison je mým požadavkům ale vcelku blízko.
Unison není nic nového. Jak se dozvíte na FAQ projektu, první podoba softwaru byla napsána už v roce 1995 „ve výzkumném jazyce Pict“. Od roku 1998 se vyvíjí současná podoba, taktéž v méně obvyklém jazyce: Objective Caml. K dispozici je pro všechny obvyklé systémy – kromě Linuxu a různých *BSD také na OS X, Solarisu nebo Windows. Na projektu se nadále aktivně pracuje – ještě relativně čerstvou novinkou je kupříkladu frontend v GTK+. Oficiální status sice o aktivnosti vývoje tvrdí něco jiného, ten ale berme spíše jako ujištění, že se jedná o vyzrálý produkt, kam už jen občas přibudou různé vychytávky.
Unison je v základu určen pro synchronizaci dvou umístění. Pokud máme umístění více, pak se logicky nevyhneme centrálnímu místu, kde se naše změny setkávájí – mohl by to být třeba domácí desktop. Je na nás se o vznik a údržbu takového centrálního místa „starat“, jde zkrátka o to všechna místa synchronizovat vůči hlavnímu umístění spíše než nahodile mezi sebou.
Nejprve si fungování Unisonu porovnáme s rsync. Rsync je základním linuxovým nástrojem pro synchronizaci souborů, často slouží v různých mechanismech pro zálohu dat na jiné místo. Unison sice využívá synchronizačních technik z rsync, liší se však v tom, jakým směrem jsou data synchronizována. Rsync totiž vždy synchronizuje data z místa A do místa B (příp. opačně), kdy výsledkem operace je to, že na místě B máme stejná data jako na A.
A v tom je právě problém. Pokud mezitím upravíme soubory (nebo je dokonce přidáme) na místě B, dojde k odstranění těchto změn (v rsync je skutečnému mazání nutno dodatečně pomoci volbou --delete). Výborně nám tedy poslouží k odzálohování dat třeba na domácí server. Kdybychom ale měli třeba jeden velký notebook a jeden netbook a podle potřeby jsme pracovali na jednom nebo druhém stroji, museli bychom pečlivě rsyncovat na „konci pracovního dne“ na druhý stroj vždy ve správném směru. Opomenutí by snadno vedlo ke ztrátě dat.
Lépe jsou na tom systémy VCS, v našem příkladu se dvěma notebooky hlavně ty distribuované (Git, Bazaar, Mercurial...). Zda zvolit VCS či specializovaný nástroj jako Unison, to už nechám na vás. Osobně bych VCS použil například pro /etc na serveru, psát ještě popis commitu po úpravě dokumentu v LibreOffice by se mi ale asi nechtělo.
Základní vlastností Unisonu je to, že kromě dat samotných si stranou uchovává také metadata o tom, v jakém stavu data byla po poslední synchronizaci. Ta mohou být časem trochu objemnější, proto se může hodit vědět, že si je zapisuje do ~/.unison .
Pokud máme na počátku data jen na jednom místě, můžeme je ručně okopírovat na druhé místo, případně to nechat na Unisonu, který nás upozorní na to, že za výchozí stav bude považovat, že nikde nebylo nic a všechny nalezené soubory jsou tedy nové. V této ukázce se omezíme na dva adresáře na stejném systému, vzdálený adresář lze ale snadno synchronizovat zadáním ssh://server/cesta.
# Vytvoříme si dvě místa, která budeme synchronizovat mkdir -p /tmp/unison/desktop mkdir -p /tmp/unison/laptop # Vytvoříme na "desktopu" jeden soubor cd /tmp/unison echo "Hello world" > desktop/hello.txt
Nyní na naše dva adresáře spustíme Unison.
$ unison-2.45 desktop laptop Contacting server... Looking for changes Warning: No archive files were found for these roots, whose canonical names are: /tmp/unison/desktop /tmp/unison/laptop This can happen either because this is the first time you have synchronized these roots, or because you have upgraded Unison to a new version with a different archive format. Update detection may take a while on this run if the replicas are large. Unison will assume that the 'last synchronized state' of both replicas was completely empty. This means that any files that are different will be reported as conflicts, and any files that exist only on one replica will be judged as new and propagated to the other replica. If the two replicas are identical, then no changes will be reported. If you see this message repeatedly, it may be because one of your machines is getting its address from DHCP, which is causing its host name to change between synchronizations. See the documentation for the UNISONLOCALHOSTNAME environment variable for advice on how to correct this. Donations to the Unison project are gratefully accepted: http://www.cis.upenn.edu/~bcpierce/unison Press return to continue.
Po odkývnutí počátečního varování už bude o těchto adresářích vědět a přejde k řešení rozdílů mezi adresáři.
Reconciling changes desktop laptop file ----> hello.txt [f]
Zde nám ukazuje, že doporučovanou akcí je okopírovat soubor hello.txt z desktopu na laptop. [f] nám značí, že potvrzením se toto doporučení bude následovat (follow). Po odslouhlasení všech řešení (tentokrát jen jednoho) jsme dodatečně dotázání, zda operaci uskutečnit. Pak už se jde na věc.
Propagating updates UNISON 2.45.4 started propagating changes at 21:35:13.37 on 18 Sep 2012 [BGN] Copying hello.txt from /tmp/unison/desktop to /tmp/unison/laptop [END] Copying hello.txt UNISON 2.45.4 finished propagating changes at 21:35:13.37 on 18 Sep 2012 Saving synchronizer state Synchronization complete at 21:35:13 (1 item transferred, 0 skipped, 0 failed)
Tak a teď jsme začali pracovat na našem fiktivním laptopu a něco jsme do dokumento dopsali. Co na to Unison?
$ echo "Ahoj svete" >> laptop/hello.txt $ unison-2.45 desktop laptop Contacting server... Looking for changes Reconciling changes desktop laptop <---- changed hello.txt [f] Proceed with propagating updates? [] y Propagating updates UNISON 2.45.4 started propagating changes at 21:37:06.45 on 18 Sep 2012 [BGN] Updating file hello.txt from /tmp/unison/laptop to /tmp/unison/desktop [END] Updating file hello.txt UNISON 2.45.4 finished propagating changes at 21:37:06.45 on 18 Sep 2012 Saving synchronizer state Synchronization complete at 21:37:06 (1 item transferred, 0 skipped, 0 failed)
Jak vidíte, Unison změnu zaznamenal a automaticky doporučil překopírování na druhou stranu. Teď Unison pozlobíme trochu víc a uděláme změny v obou souborech:
$ echo "12345" >> laptop/hello.txt $ echo "54321" >> desktop/hello.txt $ unison-2.45 desktop laptop Contacting server... Looking for changes Reconciling changes desktop laptop changed <-?-> changed hello.txt []
Stiskem otazníku se nám zobrazí jednotlivé možnosti řešení. Nejdůležitější volby:
U posledních dvou voleb bych rád zdůraznil, že úpravy na cílové straně jsou ztraceny. Pokud vybereme m(erge) ve výchozím nastavení, tak operace selže, protože nemáme nastaven žádný nástroj pro vícecestný merge. Slučování je operace specifická pro konkrétní formáty dat, proto žádný default. Slučováním se tu zabývat nebudeme, obsáhlý popis najdete v dokumentaci.
Unisonu se dá předávat velké množství voleb. Všechny si snadno rozbrazíte příkazem unison --help, mezi ty základní patří -auto pro automatické přijetí doporučovaných akcí (jinak se potvrzuje klávesou f), -fat pro automatické nastavení voleb vhodných pro synchronizaci se souborovým systémem FAT, -ignore pro přeskočení některých souborů/adresářů nebo -path pro zvolení konkrétních cest mezi dvěma kořeny, které se synchronizovat mají. Volby, u kterých to dává smysl (například poslední dvě zmíněné), lze opakovat.
Zadávat pokaždé ty samé volby by byla otrava, a proto má Unison takzvané profily. Ty se nacházejí v souborech ~/.unison/název_profilu.prf, přičemž výchozí profil je pojmenován default. Jednoduchý profil pro synchronizaci dvou adresářů by mohl vypadat takto:
root = /tmp/unison/desktop root = /tmp/unison/laptop fat = true # Nesynchronizovat otravné *~ soubory ignore = Name *~ # Nesynchronizovat ani další zálohy ignore = Path */backups/*
Synchronizaci v souladu s vybraným profilem pak provedeme takto:
$ unison-2.45 můj_profil
Unison nám může udržovat zálohy předchozích verzí souboru pro případ, že by se nám nějaké sloučení nepovedlo nebo pokud bychom něco někde umazali a pak tomu nasadili korunu tím, že bychom umazaná data nechali sesynchronizovat na druhé místo. Zálohy mohou být uchovávány buď centrálně (tedy v ~/.unison, je to výchozí způsob) nebo lokálně (tedy přímo v adresáři s daty). Zálohu všech souborů lokálně zapneme takto:
backup = Name * backuplocation = local
Šikovná je volba maxbackups, kterou změníme počet uchovávných starých verzí.
Protože věřím, že jsem případné zájemce nalákal natolik, aby si všechny další schopnosti Unisonu nastudovali sami z kvalitní dokumentace, podíváme se už jen zběžně na grafické rozhraní. To se po spuštění zeptá na profil, který chceme používat:
V editoru profilů můžeme nastavit volby profilu (jako jsme si ukázali výše). Na výběr jsou po zobrazení dialogu jen ty nejpoužívanější, jedním klikem se nám pak ukážou úplně všechny. Ke každé volbě je uveden popis, takže nemusíme pokaždé hledat online manuál.
Po výběru (resp. vytvoření) profilu se dostaneme do hlavního okna, kde je zobrazen aktuální stav rozdílů mezi oběma místy. U jednotlivých změn si případně vybereme, co se má udělat, a operace odsouhlasíme kliknutím na Go. I zde si můžeme například naklikat, které soubory se mají ignorovat a tak podobně.
To je všechno. Přeji vám co nejméně konfliktů při synchronizaci!
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Unison uz nekolik let k plne spokojenosti pouzivam.
Je docela skoda, ze na bou stranach musi byt stejne verze unisonu, proto napr. aktualni Ubuntu obsahuje celkem 2 verze: 2.27.57, 2.32.52. S tim byvaji dost problemy. V clanku je uvedena verze 2.45.4, takze jich bude jeste mnohem vic
Dalsi problem, na ktery jsem narazil je Unison vcetne GUI pod Windows - temer 100% to po stazeni a spusteni exe souboru nebude fungovat. Takze si stahnete z Pidginu GTK+ knihovnu, kdyz se vam za pul hodiny podari ji nakopirovat do spravneho umisteni a nastavit systemove promenne, zjistite ze si Unison nerozumi s SSH Probezneho uzivatele nepouzitelne.
Docela by se hodil navod...
[I] net-misc/unison Available versions: (2.13) (~)2.13.16-r1 (2.27) 2.27.57-r1 (~)2.27.157 (2.32) (~)2.32.52 (2.40) (~)2.40.65 (2.45) (~)2.45.4Taktéž používám unison už docela dlouho na zálohování fotek z NB na NAS a na další počítač. V posledních verzích konečně došlo na přepracování GUI. Předchozí GUI se sice dalo používat, ale nebylo to ono. Neexistovala třeba možnost smazat nepoužívané profily. Ještě bych zmínil, že pokud se v rámci profilu změní cesta k datům (například po přesunu synchronizovaných dat na větší disk), unison bude chtít dělat novou synchronizaci. To může u objemných dat trvat i pěkných pár hodin. Jednoduchý symbolický link nepomůže. Jedině si nové umístění připojit přes "mount -o bind" do starého adresáře. V dokumentaci jsou i další postupy, ale ty mi nějak nefungovaly. NAS mám připojen přes NFS, pro unison se to tváří jako lokální disk. Dle dokumentace je lepší mít unison i na NAS, synchronizace by pak měla být rychlejší - nedochází ke kopírování dat sem a tam (nejprve se zapíší a pak se ověří opětovným přečtením). Bohužel na mou NSA210 jsem unison ještě nedostal
Ještě bych zmínil, že pokud se v rámci profilu změní cesta k datům (například po přesunu synchronizovaných dat na větší disk), unison bude chtít dělat novou synchronizaci. To může u objemných dat trvat i pěkných pár hodin. Jednoduchý symbolický link nepomůže. Jedině si nové umístění připojit přes "mount -o bind" do starého adresáře. V dokumentaci jsou i další postupy, ale ty mi nějak nefungovaly.Teď už to nikde aktivně použité nemám, ale jednu dobu jsem používal v manuálu uváděnou možnost relokace rootu
rootalias = //new-hostname//new-path -> //old-hostname/old-patha fungovalo to bez problémů. (Něco si matně vzpomínám, že jsem se tuším musel nějak poprat s normálními versus převrácenými lomítky jako oddělovači adresářů v těch cestách, ale možná si to pletu s něčím jiným.)
ssh2plink.bat
(není to moje dílo, kdysi jsem to vygooglil) s tímto obsahem:
@echo off rem fix ssh args to be compatible with plink (putty) rem Required for Unison synchronisation over ssh. rem Following options are probably compatible: rem -l name, -[1246AaCiNstTvVxX] rem incompatible: rem -p nnn (replaced by P); -e none (no equivalent) setlocal rem Edit this to point to your location for plink.exe set PLINKEXE="C:/Program Files (x86)/PuTTY/PLINK.EXE" set ARGLIST=-ssh -agent -C :nextarg if "x%1" == "x" goto doneargs if NOT "%1" == "-p" goto checkesc rem plink uses upper case P to flag port number set ARGLIST=%ARGLIST% -P %2 shift shift goto nextarg :checkesc if NOT "%1" == "-e" goto useit rem unison likes to include "-e none" which plink does not support. shift shift goto nextarg :useit set ARGLIST=%ARGLIST% %1 shift goto nextarg endlocal :doneargs %PLINKEXE% %ARGLIST%– Mám Unison profilové soubory tvořené v tomto duchu:
# Unison preferences file include common-settings label = SVN repositář sshcmd = C:\Users\<login>\.unison\ssh2plink.bat root = ssh://<login>@example.com//home/<login>/Documents/Projekts/SVN root = D:\Users\<login>\Documents\Projekts\SVN force = ssh://<login>@example.com//home/<login>/Documents/Projekts/SVN perms = 0 ignore = Path {XXX-working-copy} ignore = Path {XXX-r*-working-copy-snapshot.tar.gz} ignore = Path {XXX-working-copy-snapshot.tar.bz2}– Sdílené nastavení pro všechny profily je v tom odkazovaném souboru
common-settings
:
fastcheck = true times = true log = falseTímto způsobem tedy přes SSH synchronizuji počítač s Windows se vzdáleným počítačem s Linuxem. Unison tedy spouštím vždy na tom Windows počítači, opačně by to vyžadovalo minimálně SSH server na Windows, což jsem zatím neměl potřebu rozbíhat. Jedinou podmínkou je autentizovat se SSH klíčem a ten na tom Windows počítači mít už předem odemčený v SSH agentovi. Alespoň myslím, že je to nutné, že není možné nechat se doptat na heslo v tom Unisonem otevíraném terminálu.
2. GUI pro naklikání kdy se má spouštět (např. denně v 10 hodin) DíkyPro Windows se da stahnout CRON.