Tôi có một thiết lập máy với các ứng dụng tôi cần và tôi muốn cài đặt tương tự trên hộp Ubuntu mới.
Có một kịch bản sẽ liệt kê tất cả các ứng dụng đã cài đặt, để tôi có thể khác giữa các hộp và thêm các mục bị thiếu?
Cảm ơn trước, Chris
Tôi có một thiết lập máy với các ứng dụng tôi cần và tôi muốn cài đặt tương tự trên hộp Ubuntu mới.
Có một kịch bản sẽ liệt kê tất cả các ứng dụng đã cài đặt, để tôi có thể khác giữa các hộp và thêm các mục bị thiếu?
Cảm ơn trước, Chris
Câu trả lời:
Cũng như các thủ thuật dpkg được đề cập bởi pjz, bạn cũng có thể muốn xem etckeeper ( hướng dẫn ) - một ứng dụng đặt / etc / * của bạn dưới sự kiểm soát phiên bản, giúp dễ dàng tìm thấy bất kỳ thay đổi nào bạn đã thực hiện và sao chép chúng sang các thay đổi khác máy chủ.
Ngoài ra, đối với danh sách ngắn hơn danh sách được tạo bởi phương pháp của pjz, bạn có thể sử dụng
$ deborphan -a --no-show-section > /tmp/mypackagelist
Điều này sẽ cung cấp cho bạn một danh sách các gói sẽ cài đặt tất cả các gói khác mà bạn yêu cầu làm phụ thuộc. Có thể hữu ích nếu bạn thực sự muốn xem qua danh sách. (dpkg --get-select sẽ tạo ra một danh sách loooong ). Ngoài ra, danh sách này đủ ngắn để bạn có thể thêm dòng mới và nhận xét các mục với '#'. Sau đó, khi cài đặt các gói bổ sung, bạn có thể làm
$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y
Bằng cách này, nếu có một số gói bạn chỉ muốn cài đặt trên một số máy, bạn không phải xóa chúng khỏi danh sách gói hoàn toàn.
dpkg --get-selections >/tmp/mypackagelist
nên làm thủ thuật. Sau đó, sau khi chắc chắn rằng /etc/apt/source.list trên máy mới có cùng một bộ mục như trên máy cũ, hãy sao chép mypackagelist sang máy mới và thực hiện:
cat mypackagelist | xargs apt-get -y install
và bạn nên tốt để đi.
Lưu ý rằng dòng dpkg --get-select cũng là thông tin tốt để đưa vào / etc / dir của bạn một cách ngẫu nhiên - điều đó có nghĩa là bạn không phải bận tâm sao lưu / bin / và / usr / bin / và vì bạn biết những gói nào trên hệ thống.
dd
dưới đây
Diễn đàn Ubuntu có một câu trả lời tốt
Một số liên kết bổ sung từ các cuộc thảo luận diễn đàn:
Nếu bạn không phải là người hâm mộ CLI (mặc dù bạn thực sự nên như vậy), bạn có thể sử dụng trình quản lý gói Synaptic để lưu hình ảnh của các gói đã cài đặt và sử dụng tệp đó (một lần nữa qua Synaptic) để tải máy mới. Trong tùy chọn tệp / lưu đánh dấu, có một hộp kiểm gọi là "lưu trạng thái đầy đủ".
Có một công cụ gọi là ReMasterSys có thể làm điều đó cho bạn. xem http://geekconnection.org/remastersys/
Tôi hy vọng rằng nó sẽ được sử dụng.
Sử dụng FSArchiver để sao chép các máy là hoàn toàn chấp nhận được. Mặt khác, đây là các cặp lệnh hữu ích, nửa đầu bạn cũng có thể thêm vào cron sao lưu của mình:
debconf-get-selections
debconf-set-selections
~
aptitude-create-state-bundle
aptitude-run-state-bundle --unpack
~
dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections
Vị trí bạn nên nhân rộng là / etc và / var. Các lệnh trên thao tác trực tiếp một vài tệp trong / var và một số đoạn mã trong / etc gián tiếp thông qua debconf. Bạn sẽ nhận được hiệu ứng tương tự bằng cách chỉ cần sao chép các cây con đó và chạy năng khiếu.
Tôi đoán Docker sẽ là cách để thực hiện điều này ngay bây giờ - xác định các yêu cầu trong Dockerfile - sau đó bạn có thể chạy nó trên bất kỳ máy chủ Docker nào.