Đồng bộ hóa cài đặt apt-get giữa nhiều máy tính


11

Có cách nào để đồng bộ hóa cài đặt của tôi (và xóa) giữa nhiều PC không?

Tốt nhất là với dropbox - vì tôi đã sử dụng điều đó để giữ cho các tệp của tôi được đồng bộ hóa.

Tôi nghĩ về một bí danh cho apt-get installapt-get removecác lệnh lưu các tham số vào một tệp (một để cài đặt, một để xóa) và một lệnh khác đọc tất cả các mục trong tệp và thực thi lệnh tương ứng. Đây có phải là một cách tiếp cận thực tế?

Câu trả lời:


7

Bạn có thể sử dụng con rối để tạo các tệp cấu hình chỉ định gói nào sẽ được cài đặt và bạn có thể sử dụng Dropbox thay vì máy chủ rối để đồng bộ hóa cấu hình con rối giữa các máy, cộng với công việc định kỳ để chạy rối theo định kỳ và thực hiện bất kỳ thay đổi cấu hình nào.


Đây là một ý tưởng tuyệt vời cho một số lượng nhỏ máy móc. Trong một môi trường rộng lớn hơn, bạn chắc chắn nên có một nghệ sĩ múa rối. Nơi tôi làm việc, chúng tôi quản lý hàng ngàn máy móc với con rối.
Ed Manet

9

Tôi không biết có cách nào tốt hơn (có lẽ là có), nhưng tùy thuộc vào quy mô bạn cần, bạn có thể sử dụng tính năng tìm kiếm của aptitude cho một phần của máy móc. Nó cho phép bạn tìm kiếm các gói phù hợp với một mẫu. Vì vậy, aptitude search '~i'cung cấp cho bạn tất cả các gói cài đặt

Chúng ta cần phải đi một bước xa hơn, mặc dù. Người quản lý gói muốn biết gói nào được bạn yêu cầu trực tiếp và gói nào được kéo vào vì các gói khác. Không có thông tin đó, những thứ xấu xí có thể xảy ra. Vì vậy, chúng tôi có thể mở rộng trên mẫu tìm kiếm đó để chọn các gói không được cài đặt tự động:aptitude search '!~M ~i'

Tính năng tìm kiếm được trình bày chi tiết trong hướng dẫn tham khảo của Aptitude .

Bây giờ, bạn có danh sách các gói để cài đặt. Bạn có thể định dạng đầu ra khi cần thiết bằng cách chuyển cờ -F đến lệnh đó, như -F '% p' ​​để nhận danh sách chỉ với tên gói.


Ví dụ: bạn có thể chạy cái này trên máy 1 :

aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh

Sau đó sao chép aptshell.shtệp vừa tạo vào máy 2 và sử dụng lệnh này trên máy 2 để chạy ở đó:

sudo sh aptshell.sh

Sau đó lặp lại quá trình này, với bản gốc máy 2 như mới máy 1 , và bản gốc máy 1 như mới máy 2 . Bây giờ mỗi máy có tất cả các gói mà trước đây chỉ có trên các gói khác.


Thật tuyệt vời khi bao gồm các phiên bản ... máy 1 có thể đã giữ lại các phiên bản, ví dụ và máy 2 sẽ phản ánh điều đó
Rondo

ví dụ: aptitude -F "% c% p% V" - tìm kiếm cột có thể tìm thấy '! ~ M ~ i' | awk -F "" '{in "apt-get -y cài đặt" $ 2 "=" $ 3}'> aptshell.sh
Rondo

2

Đây là một câu hỏi cũ, nhưng vì không ai nói nó, bạn có thể làm gì đó với dpkg và cron. Thiết lập một công việc định kỳ thực hiện một cái gì đó thông minh với các lệnh get-select và set-select của dpkg.

dpkg --set-selections < ~/Dropbox/selections.dpkg


dpkg --get-selections > ~/Dropbox/selections.dpkg

Đây không phải là một giải pháp được đề xuất, bạn sẽ phải tìm ra cách nào đó để đảm bảo rằng các lựa chọn.dpkg được cập nhật bất cứ khi nào bạn thực hiện thay đổi trên một trong hai máy tính ...


2

Trung tâm phần mềm Ubuntu có một tính năng để đồng bộ các gói đã cài đặt giữa nhiều máy tính. Nó sử dụng tài khoản Ubuntu One của bạn để lưu các gói. Chỉ cần chọn File > Sync Between Computers...và đăng nhập bằng tài khoản Ubuntu One của bạn.

Đồng bộ hóa các gói với Trung tâm phần mềm Ubuntu

Hiện tại nó có chức năng hạn chế nào đó, ví dụ: nó chỉ hỗ trợ các gói mặc định (không phải ppas) và bạn phải chọn thủ công các gói để cài đặt (đây có thể được coi là một tính năng tích cực khó khăn). Để được hướng dẫn chi tiết, xem bài viết này .


-2

Bạn sẽ không thể sử dụng dropbox để đồng bộ cài đặt gói.

Synaptic có cách lưu danh sách tải xuống gói, nhưng tôi không chắc nó xử lý trường hợp "mọi thứ đã được cài đặt" thay vì chỉ "đây là những gói tôi muốn tải xuống lần này"


-1 vì giả định của bạn không chính xác, câu hỏi mô tả một quy trình để thực hiện điều đó, bằng cách sử dụng danh sách cài đặt / xóa, anh ta chỉ hỏi liệu có triển khai thực tế không, mỗi hộp mô tả câu hỏi chỉ là phương tiện được sử dụng để trao đổi danh sách đồng bộ hóa
João Pinto
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.