(Câu hỏi này rất giống với 6338 . Có ý kiến cho rằng nó nên được tách ra khỏi nó vì Fedora và Ubuntu/Debian đủ khác nhau để đảm bảo các câu trả lời khác nhau.)
Khi tôi sử dụng bất kỳ thiết lập Fedora nào, tôi dần dần cài đặt một số gói trên và trên cài đặt cơ bản. Nếu tôi cài đặt lại hoặc nếu tôi cần cài đặt một máy mới, tôi thường muốn cài đặt lại các gói cụ thể và tôi muốn thực hiện nhanh để có được trở lại làm việc với tối thiểu rắc rối. Theo như tôi đã thấy tất cả các trình quản lý gói (yum
và pirut
) có thể cho tôi biết các gói nào được cài đặt và tất cả chúng đều có nhật ký (mặc dù các gói khác nhau cho mỗi công cụ, đó là một rắc rối). Nhưng không ai trong số họ có thể cho tôi biết gói nào Tôi đã cài đặt, trái ngược với các phụ thuộc hoặc cập nhật hệ thống của họ. Ngay cả nhật ký cũng khó hiểu ở chỗ tôi không hoàn toàn chắc chắn những gì tôi nên trích xuất từ chúng hoặc cách tích hợp chúng (trong trường hợp các công cụ gia đình apt khác nhau). Điều này có nghĩa là mỗi lần tôi cài đặt lại hoặc thậm chí chỉ sao lưu, tôi không chắc chắn cách tạo lại danh sách đó.
Tôi không nhất thiết mong đợi bất kỳ công cụ nào để làm điều này cho tôi, nhưng nếu họ không tìm cách giải quyết. Ngay cả các mẫu để grep cho, quy tắc tốt, hoặc một ý tưởng rõ ràng về chính xác những gì đang được ghi lại, sẽ hữu ích. Có thể không có một "câu trả lời tốt nhất" ở đây nhưng những câu trả lời tốt sẽ rất hữu ích.
yum list installed
và yum.log
sẽ hiển thị những gì đã được cài đặt, nhưng tôi không nghĩ bất cứ điều gì trên hệ thống phân biệt giữa các gói bạn chọn để cài đặt và các gói được cài đặt làm phụ thuộc
Giả sử bạn vẫn có /root/install.log
file từ bản cài đặt gốc, bạn có thể tạo các tệp rpm.orig và rpm.curr do đó:
cd /root
rpm -qa --qf '%{NAME}\n' | sort -u > rpm.curr
awk '($1=="Installing"){print $2}' install.log | sort -u > rpm.orig
Sau đó, để xem các gói được thêm vào:
comm -13 rpm.orig rpm.curr
Và những cái đã bị xóa:
comm -23 rpm.orig rpm.curr
Lưu ý rằng nếu bạn có cài đặt x86_64, nó sẽ không cho biết sự khác biệt giữa các gói 32 và 64 bit.
Hãy thử sử dụng Sudo yum history packages-list \*
Nó sẽ hiển thị những gì đã được cài đặt rõ ràng và những gì đã được cài đặt như một phụ thuộc:
ID | Action(s) | Package
-------------------------------------------------------------------------------
47 | Dep-Install | cairomm-1.8.0-2.1.el6.x86_64
47 | Dep-Install | glibmm24-2.22.1-1.el6.x86_64
47 | Install | gnome-system-monitor-2.28.0-11.el6.x86_64
Tệp /root/install.log sẽ cho bạn biết gói nào được bao gồm trong cài đặt ban đầu. Đây là một tập lệnh nhanh sẽ so sánh nội dung của tệp này với đầu ra của rpm -qa
:
rpm -qa | sort > /root/postinstall.list
for P in `sed -n 's/Installing \(.*\)/\1/p' </root/install.log`
do
sed -ie "/$P/d" /root/postinstall.list
done
Tệp /root/postinstall.list chứa những gì bạn muốn. Lưu ý rằng các gói là phiên bản nâng cấp của gói được cài đặt ban đầu sẽ xuất hiện trong tệp. Nếu đây không phải là những gì bạn muốn, bạn sẽ cần một mô hình phức tạp hơn trong tuyên bố sed.
rpm -qa --last
từ trang người đàn ông:
--last Orders the package listing by install time such that the latest packages are at the top.
Đầu ra mẫu:
mdadm-3.2.2-9.el6 Mon 12 Dec 2011 10:06:17 AM EST
libdrm-2.4.25-2.el6 Mon 12 Dec 2011 09:54:51 AM EST
tcp_wrappers-libs-7.6-57.el6 Mon 12 Dec 2011 09:54:50 AM EST
Đây là một điều dễ dàng.
Chỉ cần chạy lệnh dưới đây trong Shell yêu thích của bạn. Trang web dành cho RPM sẽ có tính minh họa cao nếu bạn cần đi sâu hơn về vấn đề này.
vòng/phút
Giả sử bạn luôn sử dụng "yum" để cài đặt mọi thứ bạn có thể làm:
Sudo yum history info \* | grep "^Command Line : install"
Nó sẽ hiển thị cho bạn tất cả các lệnh "yum install" được thực hiện trên hệ thống sau khi cài đặt.