Câu trả lời:
Cách đơn giản nhất là sử dụng dpkg
, nhưng nó có thể hiển thị một vài gói không liên quan và nó cắt bớt tên gói dài và số phiên bản:
dpkg -l
Để chỉ liệt kê các gói được cài đặt chính xác và không cắt tên:
dpkg -l | grep '^ii'
Để có thêm quyền kiểm soát định dạng đầu ra, bạn có thể sử dụng dpkg-query
:
dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'
Lệnh khác có thể là:
apt-show-versions
Nó cũng cung cấp cho bạn thông tin về trạng thái gói (cập nhật, có thể nâng cấp, ...) và về phân phối nguồn gốc (wheezy, jessie, ...). Người ta có thể dễ dàng lọc ra các gói đến từ backport hoặc các kho lưu trữ kỳ lạ khác.
Chương trình này được đóng gói riêng. Cài đặt nó trước:
apt-get install apt-show-versions
apt-mark showmanual
điều này mang đến cho bạn một cách dễ dàng và dễ dàng để truy xuất các phiên bản của tất cả các gói được cài đặt thủ công, xem thêm câu trả lời Askubfox này apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Lệnh sau liệt kê các gói với các phiên bản của chúng và ngoài ra, nó cho phép bạn thiết lập một hệ thống có cùng các gói và phiên bản sau, sử dụng pkg-selections.txt
tệp được tạo tại đây:
aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt
Mỗi dòng sẽ chứa tên gói, phiên bản và "A" tùy chọn nếu gói được cài đặt tự động.
Nguồn: " Nhân bản hệ thống Debian - các gói và phiên bản giống hệt nhau ". Cũng chứa tập lệnh thiết lập một hệ thống từ pkg-selections.txt
.
Để liệt kê tên của từng gói được cài đặt, hãy nhập bất kỳ người dùng nào:
dpkg --get-selections
Bạn sẽ nhận được một đầu ra như thế này:
accountsservice install
aclinstall install
acpi-supportinstall install
acpidinstall install
...
Để loại bỏ chuỗi ký tự "cài đặt" không cần thiết, bạn có thể sử dụng sed :
dpkg --get-selections | sed 's:install$::'
Và nếu bạn muốn lưu nó vào một tệp có tên InstalledPackages , bạn nhập vào đây:
dpkg --get-selections | sed 's:install$::' > InstalledPackages
Nếu bạn không có quyền truy cập vào hệ thống trực tiếp và có bản sao lưu /
phân vùng gốc , bạn có thể:
root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app
Bây giờ điều này /root/installed_app
chứa tất cả các gói cài đặt!