2008-10-04 8 views
23

Giống như hầu hết mọi người * nix, tôi có xu hướng chơi với các công cụ của tôi và làm cho chúng được cấu hình theo cách mà tôi thích chúng. Đây là tất cả tốt và tốt cho đến gần đây. Khi tôi làm việc ngày càng nhiều, tôi có xu hướng đăng nhập vào ngày càng nhiều máy móc, và ngày càng có nhiều thứ được cấu hình tuyệt vời trên máy chủ của tôi, nhưng không nhất thiết trên máy của tôi, hoặc máy chủ web của tôi hoặc bất kỳ công việc nào của tôi máy chủ ...Giữ các tập tin dấu chấm được đồng bộ trên các máy?

Làm cách nào để giữ các tệp cấu hình này được cập nhật? Bạn chỉ cần sao chép chúng theo cách thủ công? Bạn có chúng được lưu trữ ở nơi nào đó công khai không?

Trả lời

17

Tôi đã may mắn được lưu giữ các tệp của mình trong hệ thống kiểm soát sửa đổi. Nó không phải dành cho tất cả mọi người, nhưng hầu hết các lập trình viên sẽ có thể đánh giá cao những lợi ích. đọc

Keeping Your Life in Subversion

cho một mô tả tuyệt vời, bao gồm cách xử lý cấu hình không dotfile (như công việc cron qua svnfix script) trên nhiều máy tính.

3

Bạn có thể sử dụng rsync. Nó hoạt động thông qua ssh mà tôi đã thấy hữu ích vì tôi chỉ thiết lập các máy chủ mới với quyền truy cập ssh.

Hoặc, tạo tệp tar mà bạn di chuyển xung quanh mọi nơi và giải nén.

+0

WTF? Tại sao bạn nhận được -1 cho đề xuất rsync? Có một số đại diện. – freespace

1

Tôi giữ phiên bản chính của các tệp trong điều khiển CM trên máy chính của tôi và nơi tôi cần, sắp xếp để sao chép các bản cập nhật xung quanh. May mắn thay, chúng tôi có NFS gắn kết cho các thư mục nhà trên hầu hết các máy của chúng tôi, vì vậy tôi thực sự không phải sao chép tất cả những gì thường xuyên. Mặt khác, tiểu sử của tôi khá phức tạp - và có điều khoản cho các cài đặt PATH khác nhau, v.v. trên các máy khác nhau. Nói chung, các máy tôi có quyền kiểm soát hành chính có xu hướng có nhiều phần mềm nguồn mở được cài đặt hơn các máy tôi thỉnh thoảng không có quyền kiểm soát quản trị.

Vì vậy, tôi có một kết hợp ngẫu nhiên của quy trình thủ công và bán tự động.

6

Rsync là giải pháp tốt nhất của bạn. Ví dụ có thể được tìm thấy ở đây:

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

+0

Một lần nữa, WTF ?! Một downvote khác để đề cập đến rsync.Chúng ta có gì, một người ghét rsync? SO là đôi khi bối rối. Có một số đại diện. – freespace

+3

Tôi yêu rsync nhưng nó không phải là rất tốt ở đây. Giả sử bạn có 5 máy. Với rsync, bạn phải chỉ định một master và buộc những người khác vào nó. Nếu bạn thực hiện thay đổi trên hai máy khác nhau, bạn không thể đồng bộ hóa chúng lại với máy chủ mà không ghi đè điều gì đó. Rsync có vị trí của nó nhưng đây không phải là nó. –

+0

Tôi đang cân nhắc sử dụng rsync kết hợp với điều khiển phiên bản. Bạn chắc chắn không muốn làm điều đó chỉ với rsync; làm cho mọi thứ rối tung lên rất dễ dàng (đó là những gì chúng tôi có quyền kiểm soát phiên bản). – ninjagecko

2

tôi lưu trữ chúng trong hệ thống kiểm soát phiên bản của tôi.

1

netskel nơi bạn đặt các tệp phổ biến của mình trên máy chủ web và sau đó chương trình khách hàng duy trì các tệp dot trên bất kỳ số máy khách nào. Nó được thiết kế để chạy trên bất kỳ cấp độ nào của máy khách, vì vậy các kịch bản lệnh shell là các tập lệnh sh thích hợp và có số lượng phụ thuộc tối thiểu.

7

Nó có vẻ như ở khắp mọi nơi tôi nhìn những ngày này tôi thấy một điều mới mà làm cho tôi nói: "Này, đó sẽ là một điều tốt để sử dụng DropBox cho"

2

tôi sử dụng svn ... có một cộng đồng và một kho lưu trữ tư nhân ... càng sớm càng tôi nhận được trên máy chủ tôi chỉ

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

và có tất cả các file chấm của tôi ...

2

tôi lưu trữ của tôi trong một kho lưu trữ git, cho phép tôi để dễ dàng hợp nhất ngoài những thay đổi phụ thuộc vào hệ thống, nhưng chia sẻ những thay đổi mà tôi đang chờ đợi nt là tốt.

6

Tôi sử dụng git cho việc này.

Có một danh sách wiki/gửi thư dành riêng cho chủ đề.

vcs-home

+0

Tôi làm điều đó giống như Daniel Bungert ở đây, và trong thực tế, repos dotfile của tôi là hiển thị công khai kể từ khi tôi chia sẻ nó với bạn bè của tôi. Chúng tôi lấy các thủ thuật thú vị từ nhau :) Đối với những người quan tâm, tôi rất sẵn lòng tiết lộ url web git của tôi. – freespace

+0

Tương tự tại đây. Sử dụng git. Có một repo "master" trên máy làm việc chính của tôi. Sau đó, một chi nhánh địa phương trên tổng thể repo cho mỗi máy khác (hoặc chỉ cho cấu hình khác nhau). Có một nhánh 'master' để lưu trữ mọi thứ hiển thị trong tất cả các ngôi nhà. Chỉ có rất ít cách giải quyết cụ thể của máy đi vào các nhánh cụ thể. Không cần tập lệnh nào. Các tài liệu lớn không có ở nhà tôi. Các dự án không có trong nhà tôi. Những thứ/khái niệm riêng rẽ đi vào các bản repos riêng biệt. – cfi

1

Svn đây cũng vậy. Rsync hoặc unison sẽ là một ý tưởng tốt, ngoại trừ việc đôi khi các công cụ ngừng hoạt động và tôi tự hỏi điều gì đã xảy ra trong tệp .bashrc của tôi tuần trước. Svn là một người tiết kiệm cuộc sống trong trường hợp đó.

1

Bây giờ tôi sử dụng Live Mesh để giữ tất cả các tệp của tôi được đồng bộ hóa trên nhiều máy.

0

Tùy thuộc vào môi trường của bạn, bạn cũng có thể sử dụng (đầy đủ backupped) cổ phiếu NFS ...

0

Phát biểu về việc lưu trữ file dot ở nơi công cộng có

http://www.dotfiles.com/

http://dotfiles.org/

Nhưng sẽ rất khó để cập nhật thủ công tệp của bạn dưới dạng (AFAIK) không có t các dịch vụ của Hese cung cấp bất kỳ API nào.

Sau đó là thực sự tối giản (không có liên hệ hình thức, không có thông tin về việc ai đã/đang sở hữu nó vv)

8

tôi cũng sử dụng lật đổ để quản lý dotfiles của tôi. Khi tôi đăng nhập vào một hộp của tôi confs được tự động cập nhật cho tôi. Tôi cũng sử dụng github để lưu trữ my confs công khai. Tôi sử dụng git-svn để giữ cho hai đồng bộ.

Bắt đầu và chạy trên một máy chủ mới chỉ là vấn đề chạy một vài lệnh. Các kịch bản create_links chỉ tạo ra các liên kết tượng trưng từ các mục thư mục .dotfiles vào $HOME của tôi, và cũng có thể chạm vào một số tập tin mà không cần phải được kiểm tra trong.

$ 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

tôi đặt tất cả dotfiles của tôi vào một thư mục trên Dropbox và sau đó liên kết chúng với mỗi máy. Thay đổi được thực hiện trên một máy có sẵn cho tất cả những người khác gần như ngay lập tức. Nó chỉ hoạt động.

5

Tôi chắc chắn sẽ giới thiệu homesick. Nó sử dụng git và tự động liên kết các tệp của bạn. homesick track theo dõi một dấu chấm mới, trong khi homesick symlink các liên kết tượng trưng mới từ kho lưu trữ vào thư mục chính của bạn. Bằng cách này, bạn thậm chí có thể có nhiều hơn một kho lưu trữ.

+0

Tôi có bằng cách tạo ra bản sao của riêng tôi nhớ nhà trong bash, bởi vì tôi không thích sự phụ thuộc ruby: https://github.com/andsens/homeshick – andsens

0

briefcase là một công cụ để tạo điều kiện dotfiles giữ trong git, bao gồm cả những người có thông tin cá nhân (như .gitconfig).

Bằng cách giữ các tệp cấu hình của bạn trong kho git công khai git, bạn có thể chia sẻ cài đặt của mình với người khác. Bất kỳ thông tin bí mật nào được lưu giữ trong một tệp duy nhất bên ngoài kho lưu trữ (tùy thuộc vào bạn để sao lưu và truyền tải tệp này).

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