Điểm:1

Sao chép Danh sách phần mềm được cài đặt thủ công từ máy chủ này sang máy chủ khác có cùng phiên bản

lá cờ pk

Tôi có 2 máy chủ, giả sử Máy chủ 1Máy chủ2

Máy chủ 1 được cấu hình từ lâu bởi một số người có nhiều gói và ứng dụng của chúng tôi có rất nhiều phụ thuộc vào các gói đó. Vì vậy, tôi muốn duy trì cùng một bộ Gói trong máy chủ mới tức là, Máy chủ2 để chạy ứng dụng của chúng tôi trơn tru.

Tôi đã sử dụng lệnh dưới đây để liệt kê tất cả các gói từ Máy chủ 1

 dpkg --get-selections > ~/Package.list

Cung cấp tất cả Danh sách Gói hàng Thích

cài đặt dịch vụ tài khoản
cài đặt acpid
cài đặt adduser
cài đặt amd64-microcode
...
...

Tôi tạo một bản sao của danh sách gói trên trong Máy chủ2 và đã cố cài đặt các Gói đó bằng lệnh

Sudo dpkg --set-selections < ~/Package.list

nhưng nó nói như

dpkg: cảnh báo: gói không ở trạng thái cũng như cơ sở dữ liệu khả dụng ở dòng 2: acpid
dpkg: cảnh báo: gói không ở trạng thái cũng như cơ sở dữ liệu khả dụng ở dòng 4: amd64-microcode
dpkg: cảnh báo: gói không ở trạng thái cũng như cơ sở dữ liệu khả dụng ở dòng 12: apt-transport-https
dpkg: cảnh báo: gói không ở trạng thái cũng như cơ sở dữ liệu khả dụng ở dòng 14: apt-xapian-index
...
...

Có cách nào khác để duy trì cùng một bộ gói trong cả hai máy chủ không?

Cả hai đều là cùng một hệ điều hành với các phiên bản khác nhau (server1: Ubuntu 14.04 và server2: Ubuntu 20.04) và tôi chỉ muốn các gói do người dùng cài đặt

Cập nhật:

danh sách apt -- đã cài đặt

Lệnh trên hiển thị như

dịch vụ tài khoản/cập nhật đáng tin cậy, hiện là 0.6.35-0ubuntu7.3 AMD64 [đã cài đặt]
acpid/đáng tin cậy, hiện là 1:2.0.21-1ubuntu2 AMD64 [đã cài đặt]
adduser/trusty, giờ là 3.113+nmu3ubuntu3 tất cả [đã cài đặt]
amd64-microcode/trusty-updates, bây giờ là 3.20180524.1~ubuntu0.14.04.2+really20130710.1ubuntu1 amd64 [đã cài đặt, tự động]
apache2/cập nhật đáng tin cậy, bảo mật đáng tin cậy, hiện là 2.4.7-1ubuntu4.22 AMD64 [đã cài đặt]
...

Nó hiển thị gói với phiên bản, Tôi có thể lưu kết quả của đầu ra này và chạy trong máy chủ2 để tôi có thể có cùng một Gói với cùng một phiên bản.

user535733 avatar
lá cờ cn
Phương pháp của bạn có thể sẽ không hoạt động: Ubuntu 14.04 (lưu ý tên chính xác, tập thói quen đó) đơn giản là quá khác so với Ubuntu 20.04 (một lần nữa, lưu ý tên chính xác). Quá nhiều gói đã thay đổi trong sáu năm.
Shashank Gb avatar
lá cờ pk
Tôi không muốn cài đặt các Gói có sẵn, tôi chỉ muốn có một danh sách mà người dùng đã cài đặt.
Điểm:2
lá cờ cn

Danh sách dpkg là tất cả các ứng dụng, nhưng chỉ những ứng dụng khác nhau sẽ được cài đặt. Thông thường, tốt nhất là chỉnh sửa các hạt nhân cũ.

Từ cài đặt cũ

dpkg --get-selections > ~/gói của tôi

Từ cài đặt mới:

Sudo apt-get -y cập nhật
Sudo apt-get dselect-upgrade
#NẾU bạn gặp lỗi này:
dpkg: cảnh báo: gói không có trong cơ sở dữ liệu
sudo apt-get cài đặt dselect
sudo dselect 
   -> Cập nhật
   -> Cài đặt

Có thể lấy danh sách dạng bảng của tất cả các gói được cài đặt thủ công bằng cách sử dụng aptitude mà bạn có thể phải cài đặt:

tìm kiếm năng khiếu '~i!~M'

Ứng dụng cấp cao nhất:

aptitude --disable-columns -F 'no_dependents %p' search '~i!~M!~R(~i)'

Nhưng sau đó bạn có thể cần thêm cài đặt vào mọi dòng.

Cách liệt kê tất cả các gói đã cài đặt

Ngoài ra làm thế nào để liệt kê các ứng dụng bạn đã cài đặt.

Cách liệt kê tất cả các gói đã cài đặt

Shashank Gb avatar
lá cờ pk
Vâng, bây giờ tôi có một danh sách các gói được cài đặt thủ công bằng cách sử dụng `aptitude search '~i!~M' > gói`. Vậy bây giờ làm thế nào để sử dụng danh sách này trong server2. Một lần nữa tôi có thể sử dụng `dselect` không
oldfred avatar
lá cờ cn
Chưa sử dụng năng khiếu, nhưng tôi nghĩ đó chỉ là danh sách các ứng dụng. Để sử dụng bỏ chọn, nó cần hai cột, một tên của ứng dụng và lượt cài đặt thứ hai. Xuất dpkg có thể bao gồm gỡ cài đặt dưới dạng mục nhập cột thứ hai, điều đó có nghĩa là nó đã được gỡ cài đặt và sẽ không được cài đặt lại. Liên kết hiển thị lệnh set để thêm cài đặt vào mỗi dòng bằng sed.
Điểm:2
lá cờ cn

Đó có phải là hệ thống của tôi không, đây là cách tôi sẽ làm:

Các gói do người dùng cài đặt được theo dõi bằng apt-marking (xem người đàn ông apt-mark.)

Tuy nhiên, có một vấn đề nhỏ: Trình cài đặt Ubuntu apt-marks mọi thứ trên bản cài đặt gốc của Ubuntu dưới dạng cài đặt thủ công. Đó là một biện pháp an toàn để mọi người không gỡ cài đặt nhầm máy tính để bàn của họ.

Vì vậy, đó là (một loại) phép trừ đơn giản: Danh sách tất cả các gói thủ công trừ đi danh sách các gói cài đặt gốc.

  1. Lấy danh sách các gói trên hệ thống 14.04 của bạn được đánh dấu là "thủ công".

    apt-mark showmanual > server1
    
  2. Khởi động máy ảo với bản cài đặt Ubuntu 14.04 mới và thực hiện tương tự.

    apt-mark showmanual > mới
    
  3. Khác biệt hai tập tin.

    diff --suppress-common-lines máy chủ mới1
    
  4. Đi qua danh sách ngắn kết quả, từng dòng một. Bạn phải loại bỏ các gói kernel, điều tra các gói đã bị loại bỏ hoặc đổi tên hoặc thay đổi theo cách khác, thêm các gói không còn là một phần của bản cài đặt gốc, v.v. Không có cách nào dễ dàng hoặc tự động để làm điều đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.