Làm thế nào để bạn theo dõi các gói đã được cài đặt trên Fedora (Linux)?


11

(Câu hỏi này rất giống với 6338. Có ý kiến ​​cho rằng nó được tách ra từ 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 để quay lại làm việc với ít rắc rối nhất. Theo như tôi đã thấy tất cả các trình quản lý gói ( yumpirut) có thể cho tôi biết 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ụ, đây là một rắc rối). Nhưng không ai trong số họ có thể cho tôi biết những gói Tôi đãđược cài đặt, trái ngược với sự 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, các 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.

Câu trả lời:


3

yum list installedyum.logsẽ 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


2

Giả sử bạn vẫn có /root/install.logtệp từ bản cài đặt gốc, bạn có thể tạo các tệp rpm.origrpm.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.


2

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

0

Đâ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 cho RPM sẽ được minh họa một cách đau đớn nếu bạn cần phải đi sâu hơn về điều này.

vòng / phút


3
Điều đó liệt kê tất cả các gói có, nhưng nó không phân biệt giữa các gói tôi đã thêm và các gói đã có trên hệ thống. Tôi muốn theo dõi các gói cụ thể tôi cài đặt rõ ràng.
quark

Tất cả các gói đã được cài đặt rõ ràng bởi bạn. Bạn cần phải cụ thể hơn rất nhiều về những gì bạn muốn làm để có được sự giúp đỡ có ý nghĩa.
vonbrand

0

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 đoạn mã 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.


0

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

0

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.

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.