Bagaimana Anda melacak paket mana yang diinstal pada Fedora (Linux)?

11

(Pertanyaan ini sangat mirip dengan 6338. Diusulkan agar dipisahkan dari itu karena Fedora dan Ubuntu / Debian cukup berbeda untuk menjamin jawaban yang berbeda.)

Karena saya menggunakan pengaturan Fedora saya secara bertahap menginstal sejumlah paket di atas dan di atas instalasi dasar. Jika saya menginstal ulang, atau jika saya perlu menginstal mesin baru, saya biasanya ingin menginstal ulang paket - paket tertentu , dan saya ingin melakukannya dengan cepat untuk kembali bekerja dengan kerumitan minimum. Sejauh yang saya lihat, semua manajer paket ( yumdan pirut) dapat memberi tahu saya paket mana yang diinstal, dan mereka semua memiliki log (walaupun berbeda untuk setiap alat, yang merepotkan). Tapi tidak satu pun dari mereka yang bisa memberi tahu saya paket mana yang saya milikidiinstal, tidak seperti dependensi atau pembaruan sistem mereka. Bahkan log itu rumit karena saya tidak sepenuhnya yakin apa yang harus saya ekstrak dari mereka, atau bagaimana mengintegrasikannya (dalam hal berbagai alat keluarga yang tepat). Ini berarti bahwa setiap kali saya menginstal ulang, atau bahkan hanya membuat cadangan, saya tidak yakin bagaimana cara membuat kembali daftar itu.

Saya tidak perlu mengharapkan alat apa pun untuk melakukan ini untuk saya, tetapi jika tidak, saya sedang mencari solusi. Bahkan pola yang harus dipahami, aturan praktis yang baik, atau gagasan yang jelas tentang apa yang sebenarnya dicatat, akan bermanfaat. Mungkin tidak ada "jawaban terbaik" di sini tetapi jawaban yang bagus akan sangat membantu.

quark
sumber

Jawaban:

3

yum list installeddan yum.logakan menunjukkan apa yang telah diinstal, tetapi saya tidak berpikir apa pun pada sistem membedakan antara paket yang Anda pilih untuk diinstal dan yang diinstal sebagai dependensi

theecereceive
sumber
2

Anggap Anda masih memiliki /root/install.logfile dari instalasi asli, Anda dapat membuat file rpm.orig dan rpm.curr demikian:

cd /root
rpm -qa --qf '%{NAME}\n' | sort -u > rpm.curr
awk '($1=="Installing"){print $2}' install.log | sort -u > rpm.orig

Kemudian, untuk melihat paket ditambahkan:

comm -13 rpm.orig rpm.curr

Dan yang dihapus:

comm -23 rpm.orig rpm.curr

Perhatikan bahwa jika Anda memiliki instalasi x86_64 , itu tidak akan membedakan antara paket 32-dan 64-bit.


sumber
2

Coba gunakan sudo yum history packages-list \*

Ini akan menunjukkan apa yang diinstal secara eksplisit dan apa yang diinstal sebagai dependensi:

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
Francisco
sumber
0

Ini mudah.

Cukup jalankan perintah di bawah ini di shell favorit Anda. Halaman manual untuk RPM akan menjadi ilustrasi yang menyakitkan jika Anda perlu menyelam lebih dalam tentang ini.

rpm -qa

Axxmasterr
sumber
3
Itu mencantumkan semua paket ya, tetapi tidak membedakan antara yang saya tambahkan dan yang sudah ada di sistem. Saya ingin melacak secara spesifik paket yang saya instal secara eksplisit.
quark
Semua paket diinstal secara eksplisit oleh Anda. Anda harus lebih spesifik tentang apa yang ingin Anda lakukan untuk mendapatkan bantuan yang berarti.
vonbrand
0

File /root/install.log akan memberi tahu Anda paket mana yang termasuk dalam instalasi awal. Berikut ini skrip cepat yang akan membandingkan konten file ini dengan output dari 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

File /root/postinstall.list berisi apa yang Anda inginkan. Perhatikan bahwa paket yang merupakan versi pemutakhiran dari paket yang diinstal sebelumnya akan muncul dalam file. Jika ini bukan yang Anda inginkan, Anda akan membutuhkan pola yang lebih canggih dalam pernyataan sed.

dkaylor
sumber
0

rpm -qa --last

dari halaman manual:

--last Orders the package listing by install time such that the latest packages are at the top.

Output sampel:

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
Dejan
sumber
0

Anggap Anda selalu menggunakan "yum" untuk menginstal semua yang dapat Anda lakukan:

sudo yum history info \* | grep "^Command Line   : install"

Seharusnya memperlihatkan semua "yum install" perintah yang dilakukan pada sistem setelah instalasi.

Quintesse
sumber