2008-10-04 9 views
23

Podobnie jak większość osób * nix, staram się bawić moimi narzędziami i konfigurować je tak, jak lubię. Wszystko było dobrze i dobrze do niedawna. Ponieważ coraz więcej pracuję, mam tendencję do logowania się na coraz więcej maszyn i mam coraz więcej rzeczy, które są świetnie skonfigurowane na moim komputerze domowym, ale niekoniecznie na mojej maszynie roboczej, moim serwerze sieciowym lub dowolnej mojej pracy serwery ...Dbając o synchronizację plików z kropkami na różnych komputerach?

W jaki sposób aktualizujesz te pliki konfiguracyjne? Czy po prostu ręcznie je kopiujesz? Czy przechowujesz je gdzieś publicznie?

Odpowiedz

17

Mam dość powodzenia, zachowując moje pliki w systemie kontroli wersji. Nie dla wszystkich, ale większość programistów powinna być w stanie docenić korzyści. Czytaj

Keeping Your Life in Subversion

za doskonałą opisie, w tym, jak radzić sobie bez dotfile konfiguracji (jak crona pośrednictwem svnfix script) na wielu maszynach.

3

Możesz użyć rsync. Działa przez ssh, który uznałem za przydatny, ponieważ konfiguruję tylko nowe serwery z dostępem ssh.

Lub utwórz plik tar, który poruszasz się po całym świecie i rozpakowujesz.

+0

WTF? Dlaczego otrzymałeś -1 za sugerowanie rsync? Miej trochę przedstawiciela. – freespace

1

Utrzymuję wersje główne plików pod kontrolą CM na moim głównym komputerze, a tam, gdzie trzeba, organizuję kopiowanie aktualizacji. Na szczęście mamy montaże NFS do katalogów domowych na większości naszych maszyn, więc właściwie nie muszę ich tak często kopiować. Z drugiej strony mój profil jest dość złożony i zawiera różne ustawienia PATH na różnych komputerach. Z grubsza rzecz biorąc, komputery, na które mam kontrolę administracyjną, mają zwykle więcej oprogramowania open source niż te, z których korzystam sporadycznie, bez kontroli administracyjnej.

Tak, mam losową mieszankę procesu ręcznego i półautomatycznego.

6

Rsync jest o najlepszym rozwiązaniu. Przykłady można znaleźć tutaj:

http://troy.jdmz.net/rsync/index.html

+0

Znów, WTF ?! Kolejne zdanie na temat wspominania o rsync.Co mamy, rsync hater? SO czasami jest zakłopotany. Miej trochę przedstawiciela. – freespace

+3

Uwielbiam rsync, ale tutaj nie jest zbyt dobrze. Załóżmy, że masz 5 maszyn. W przypadku rsync musisz wyznaczyć master'a i powiązać go z innymi. Jeśli dokonasz zmian na dwóch różnych komputerach, nie możesz ich zsynchronizować z powrotem do urządzenia nadrzędnego bez nadpisywania czegoś. Rsync ma swoje miejsce, ale to nie jest to. –

+0

Zastanawiam się, używając rsync w połączeniu z kontrolą wersji. Zdecydowanie nie chcesz tego robić za pomocą rsync; sprawia, że ​​rzeczy są bardzo proste (do tego mamy kontrolę wersji). – ninjagecko

2

przechowywać je w moim systemie kontroli wersji.

1

Istnieje netskel gdzie umieszczasz wspólne pliki na serwerze WWW, a następnie program klienta utrzymuje pliki dot na dowolnej liczbie komputerów klienckich. Jest przeznaczony do uruchamiania na dowolnym poziomie komputera klienckiego, więc skrypty powłoki są poprawne i mają minimalną liczbę zależności.

7

Wydaje się wszędzie szukać w tych dniach znaleźć nową rzecz, która sprawia mi powiedzieć: „Hej, to byłoby dobrze, aby korzystać DropBox dla”

2

użyć svn ... posiadające publiczne i prywatny repozytorium ... tak szybko, jak dostać się na serwerze właśnie

svn co http://my.rep/home/public 

i mieć wszystkie moje pliki dot ...

2

przechowywać kopalni w git repozytorium, które pozwala mi łatwo scalać poza zmianami zależnymi od systemu, a mimo to udostępniać zmiany, które otrzymuję także.

6

Używam do tego git.

Istnieje wiki/lista dyskusyjna poświęcona temu tematowi.

vcs-home

+0

Robię to jak Daniel Bungert tutaj, a w rzeczywistości moje repozytorium dotfile jest widoczne publicznie, ponieważ dzielę się nim z przyjaciółmi. Odsyłamy ciekawe sztuczki od siebie :) Dla zainteresowanych, z przyjemnością przedstawię mój adres internetowy git. – freespace

+0

To samo tutaj. Używanie git. Mieć jedno "master" repo na mojej głównej maszynie roboczej. Następnie jeden lokalny oddział na głównym repo dla każdej maszyny (lub tylko dla różnych konfiguracji). Mieć jedną gałąź "master" do hostowania rzeczy widocznych we wszystkich domach. Tylko nieliczne obejścia specyficzne dla maszyny trafiają do konkretnych oddziałów. Żadne skrypty nie są potrzebne. Wielkie dokumenty nie są w moim domu. Projekty nie są w moim domu. Oddzielne rzeczy/koncepcje przechodzą w oddzielne repozytorium. – cfi

1

SVN tutaj też. Rsync lub unison byłby dobrym pomysłem, z wyjątkiem tego, że czasami rzeczy przestają działać i zastanawiam się, co było w moim pliku .bashrc w zeszłym tygodniu. Svn to w takim przypadku ratownik.

1

Teraz używam Live Mesh, dzięki czemu wszystkie moje pliki są synchronizowane na wielu komputerach.

0

zależności od środowiska można również wykorzystać (w pełni backupped) udziałów NFS ...

0

Mówiąc o przechowywanie plików kropka w publicznej istnieją

http://www.dotfiles.com/

i

http://dotfiles.org/

Ale byłoby naprawdę bolesne ręczne aktualizowanie plików jako (AFAIK) brak t Usługi hese zapewniają dowolne API.

Ten ostatni jest bardzo minimalistyczne (nr formularz kontaktowy, nie ma informacji o tym, kto tworzył/posiada go itd.)

8

Używam również wywrotowej zarządzać moje dotfiles. Kiedy loguję się do skrzynki, moje confy są dla mnie zautomatyzowane. Używam również github do publicznego przechowywania my confs. Używam git-svn, aby utrzymać dwa zsynchronizowane.

Wstawanie i uruchamianie na nowym serwerze to kwestia uruchomienia kilku poleceń. Skrypt create_links właśnie tworzy dowiązania z elementów folderów .dotfiles do mojego $HOME, a także dotyka niektóre pliki, które nie muszą być sprawdzane w.

$ cd 

# checkout the files 
$ svn co https://path/to/my/dotfiles/trunk .dotfiles 

# remove any files that might be in the way 
$ .dotfiles/create_links.sh unlink 

# create the symlinks and other random tasks needed for setup 
$ .dotfiles/create_links.sh 
1

umieścić wszystkie moje dotfiles do folderu na Dropbox a następnie dowiązanie symboliczne do każdej maszyny. Zmiany dokonane na jednym komputerze są niemal natychmiast dostępne dla wszystkich pozostałych. Po prostu działa.

5

Zdecydowanie polecam homesick. Używa git i automatycznie dowiązuje twoje pliki. homesick track śledzi nowy plik dotfile, a homesick symlink dowiązanie symboliczne nowych plików dotfile z repozytorium do swojego folderu domowego. W ten sposób możesz mieć więcej niż jedno repozytorium.

+0

Mam przy okazji stworzony mój własny klon homesick w bash, ponieważ nie podoba mi się zależność ruby: https://github.com/andsens/homeshick – andsens

0

briefcase jest narzędziem ułatwiającym dotrzymał dotfiles w git, w tym te z prywatnych informacji (takich jak .gitconfig).

Przechowując pliki konfiguracyjne w repozytorium git publicznego git, możesz udostępniać swoje ustawienia innym. Wszelkie tajne informacje przechowywane są w jednym pliku poza repozytorium (od Ciebie zależy wykonanie kopii zapasowej i przeniesienie tego pliku).

- http://jim.github.com/briefcase

Powiązane problemy