Cài đặt lại ứng dụng sau khi cài đặt mới?


8

Tôi đang sử dụng Debian và tôi muốn phân vùng lại ổ đĩa của mình và cài đặt lại. Có cách nào dễ dàng để khôi phục tất cả các gói hiện được cài đặt sau khi cài đặt mới không?

Tôi đang nghĩ đến việc thực hiện nó bằng cách tạo một danh sách ứng dụng sao lưu:

#generate list of installed packages
dpkg -l | awk '{ print $2 }' ORS="\n" | tail -n +6 > reinstallList.txt

và sau khi thực hiện cài đặt mới, tôi có thể thực hiện:

#install from backup at reinstallList.txt
sudo apt-get  install $(< reinstallList.txt)

Có cách nào tốt hơn để làm điều này?


1
Đừng quên tạo bản sao lưu / etc để bạn có thể dễ dàng khôi phục cài đặt cấu hình cho các gói đó.
Anthon

Câu trả lời:


7

Theo wiki Debian , bạn nên chạy lệnh này trước khi cài đặt lại:

dpkg --get-selections > /backup/installed-software.log

Sau đó, sau khi cài đặt lại, chạy này:

dpkg --set-selections < /backup/installed-software.log
apt-get dselect-upgrade

Rõ ràng, bạn nên thay thế /backup/installed-software.logbằng tên của một số tệp mà bạn có thể giữ trong quá trình cài đặt lại. Đặt nó trên một ổ ngón tay cái sẽ tốt.

Để biết thêm thông tin, hãy xem wiki: https://wiki.debian.org/ListInstalledPackages


Tôi đã sử dụng phương pháp này nhiều lần.
bahamat

Hoàn hảo! Điều này thật đúng với gì mà tôi đã tìm kiếm. Cảm ơn!
nyxgeek

3

dpkg -lliệt kê tất cả các gói đã cài đặt (tại danh sách khi bạn lọc đúng). Bạn có thể nhận được cùng một danh sách với dpkg --get-selections(không yêu cầu lọc thêm).

Điều này làm mất thông tin về các gói thủ công so với các gói được cài đặt tự động. Thật thuận tiện khi có thư viện và các gói khác được đánh dấu là chỉ cần gián tiếp. Các gói được đánh dấu là tự động cài đặt có thể được gỡ bỏ hoặc thay thế bằng các gói khác nhau mà không phiền phức. Dpkg không biết về các gói được cài đặt tự động, chỉ có apt.

Để liệt kê các gói được cài đặt thủ công, bạn có thể sử dụng aptitude:

aptitude search -F %p '~i !~M' >reinstallList.txt

Không có năng khiếu, nó phức tạp hơn một chút.

dpkg --get-selections | awk '$2 == "install" {print $1}' >installed.txt
apt-mark showauto >automatic.txt
comm -32 installed.txt automatic.txt >reinstallList.txt

Để cài đặt tất cả các gói đã được cài đặt trước đây:

apt-get install $(cat reinstallList.txt)

Ngoài ra, bạn có thể sử dụng phương pháp đường vòng hơn để sao chép danh sách các gói đã cài đặt, sau đó khôi phục danh sách các gói được đánh dấu là tự động. Để sao lưu:

dpkg --get-selections >selections.txt
apt-mark showauto >automatic.txt

Để khôi phục lại:

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
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.