Tôi có thể liệt kê chúng sử dụng
danh sách sudo yum được cài đặt
Nhưng làm thế nào để làm cho chúng hiển thị khi từng được cài đặt?
Tôi có thể liệt kê chúng sử dụng
danh sách sudo yum được cài đặt
Nhưng làm thế nào để làm cho chúng hiển thị khi từng được cài đặt?
Câu trả lời:
Là root (hoặc sử dụng sudo
), sử dụng yum
tùy chọn history
.
[root@fedora ~]# yum history list
Loaded plugins: langpacks, presto, refresh-packagekit
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
250 | -y update google-chrome- | 2013-01-30 18:02 | Update | 1 EE
249 | -y update | 2013-01-25 07:11 | Update | 22
248 | -y update | 2013-01-23 17:56 | Update | 12
247 | -y update | 2013-01-23 08:41 | Update | 9 EE
246 | -y update | 2013-01-20 21:49 | Update | 4
245 | -x kernel* update | 2013-01-07 08:11 | Update | 3
Bạn có thể xem các gói và thay đổi cho một yum
giao dịch cụ thể :
[root@fedora ~]# yum history info 250
Loaded plugins: langpacks, presto, refresh-packagekit
Transaction ID : 250
Begin time : Wed Jan 30 18:02:31 2013
Begin rpmdb : 1624:34a60f2e27ebe4d959f1473055da42645705b96f
End time : 18:02:59 2013 (28 seconds)
End rpmdb : 1624:f4ef7af3a97b1f922f41803ba6b9578a7abe3e71
User : User <user>
Return-Code : Success
Command Line : -y update google-chrome-stable.x86_64
Transaction performed with:
Installed rpm-4.9.1.3-1.fc16.x86_64 @updates
Installed yum-3.4.3-25.fc16.noarch @updates
Installed yum-metadata-parser-1.1.4-5.fc16.x86_64 @koji-override-0/$releasever
Installed yum-presto-0.7.1-1.fc16.noarch @koji-override-0/$releasever
Packages Altered:
Updated google-chrome-stable-24.0.1312.56-177594.x86_64 @google-chrome
Update 24.0.1312.57-178923.x86_64 @google-chrome
Scriptlet output:
1 Redirecting to /bin/systemctl start atd.service
Bạn có thể xem các gói lịch sử cụ thể với:
[root@fedora ~]# yum history packages-list yum
Loaded plugins: langpacks, presto, refresh-packagekit
ID | Action(s) | Package
-------------------------------------------------------------------------------
148 | Updated | yum-3.4.3-24.fc16.noarch EE
148 | Update | 3.4.3-25.fc16.noarch EE
94 | Updated | yum-3.4.3-23.fc16.noarch
94 | Update | 3.4.3-24.fc16.noarch
52 | Updated | yum-3.4.3-7.fc16.noarch
52 | Update | 3.4.3-23.fc16.noarch
2 | Updated | yum-3.4.3-5.fc16.noarch EE
2 | Update | 3.4.3-7.fc16.noarch EE
1 | Install | yum-3.4.3-5.fc16.noarch
man 8 yum
hoặc yum help history
sẽ liệt kê thêm các tùy chọn có thể có với tùy chọn lịch sử.
Tôi không nghĩ rằng yum
có thể làm điều đó, nhưng rpm
có thể:
rpm --queryformat="%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}: %{INSTALLTIME:date}\n" -qa
sẽ tạo một danh sách các mục như:
firefox-18.0-1.fc18.x86_64: Mon 14 Jan 2013 13:47:42 GMT
rpm -qa --last
Tôi đã hỏi và trả lời một câu hỏi tương tự trên trang web Hỏi & Đáp của Fedora .
Hóa ra Yum lưu trữ lịch sử của nó trong cơ sở dữ liệu SQLite trong /var/lib/yum/history
. Tôi đã có thể điều chỉnh tham gia SQL này hiển thị tất cả các gói được cài đặt thủ công cùng với ngày và giờ cài đặt của chúng.
Trong trường hợp của tôi, tôi chỉ quan tâm đến các gói tôi đã cài đặt thủ công, vì vậy tôi có thể tạo một hệ thống mới với công cụ tương tự như các gói được cài đặt trên hệ thống ban đầu của tôi.
Lệnh sau in ra mọi gói được cài đặt thủ công , id giao dịch, ngày và yum
lệnh từ lịch sử. Lưu ý rằng tên cơ sở dữ liệu sẽ khác nhau trên hệ thống của bạn.
$ sudo sqlite3 /var/lib/yum/history/history-2014-12-03.sqlite "select c.tid, datetime(t.timestamp, 'unixepoch'), c.cmdline from trans_cmdline as c join trans_beg as t where c.tid = t.tid"
Ví dụ đầu ra (cột: id giao dịch, ngày, lệnh):
4|2015-02-21 20:28:03|install mutt wget emacs coreutils
5|2015-02-21 20:28:37|install firefox
6|2015-02-21 20:35:02|install pgp-tools
LANG=en_US.UTF-8 sudo yum history stats | grep -Po '(?<=File {8}: /)(.+)' --color=never