Bagaimana cara mendaftar paket yang terinstal dan detailnya di ubuntu?


27

Saya baru mengenal ubuntu dan mencoba mencari cara untuk mendaftar semua paket yang terinstal dan detailnya seperti versi, rilis, waktu instal, kategori di Ubuntu. Ditemukan bahwa perintah berikut akan membantu saya mendapatkan beberapa informasi ini:

1) dpkg -l

2) dpkg-query -W -f='${PackageSpec}\t${version}\t${Description}\n'

Tidak seperti Redhat, informasi waktu pemasangan dan kategori tidak ada dalam hal ini. Adakah yang bisa mengetahui cara untuk mengambil detail ini?

Terima kasih sebelumnya.

Jawaban:


33

Sederhana dan elegan:

sudo dpkg -l | more

atau

sudo dpkg -l | less

Jika Anda ingin mendapatkan deskripsi dari beberapa paket tertentu, katakan firefox:

sudo dpkg -l | grep firefox

Ini adalah output saya:

$ sudo dpkg -l | more
 Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                        Version                                 Description
+++-===========================================-=======================================-==============================================================
================
ii  accountsservice                             0.6.15-2ubuntu9.4                       query and manipulate user account information
ii  acl                                         2.2.51-5ubuntu1                         Access control list utilities
ii  acpi-support                                0.140                                   scripts for handling many ACPI events
ii  acpid                                       1:2.0.10-1ubuntu3                       Advanced Configuration and Power Interface event daemon
ii  activity-log-manager-common                 0.9.4-0ubuntu3.2                        blacklist configuration for Zeitgeist (assets)
ii  activity-log-manager-control-center         0.9.4-0ubuntu3.2                        blacklist configuration for Zeitgeist (control center integrat
ion)
ii  adduser                                     3.113ubuntu2                            add and remove users and groups
ii  adium-theme-ubuntu                          0.3.2-0ubuntu1                          Adium message style for Ubuntu
ii  aisleriot                                   1:3.2.3.2-0ubuntu1                      Solitaire card games
ii  akonadi-backend-mysql                       1.7.2-0ubuntu1                          MySQL storage backend for Akonadi
ii  akonadi-server                              1.7.2-0ubuntu1                          Akonadi PIM storage service
ii  alacarte                                    0.13.2-2ubuntu4                         easy GNOME menu editing tool
ii  alsa-base                                   1.0.25+dfsg-0ubuntu1                    ALSA driver configuration files
ii  alsa-utils                                  1.0.25-1ubuntu5                         Utilities for configuring and using ALSA
ii  anacron                                     2.3-14ubuntu1                           cron-like program that doesn't go by time
ii  apg                                         2.2.3.dfsg.1-2                          Automated Password Generator - Standalone version
ii  app-install-data                            0.12.04.4                               Ubuntu applications (data files)
ii  app-install-data-partner                    12.12.04.1                              Application Installer (data files for partner applications/rep
ositories)
ii  apparmor                                    2.7.102-0ubuntu3.7                      User-space parser utility for AppArmor
ii  appmenu-gtk                                 0.3.92-0ubuntu1.1                       Export GTK menus over DBus
ii  appmenu-gtk3                                0.3.92-0ubuntu1.1                       Export GTK menus over DBus
ii  appmenu-qt                                  0.2.6-0ubuntu1                          appmenu support for Qt
ii  apport                                      2.0.1-0ubuntu17.1                       automatically generate crash reports for debugging
ii  apport-gtk                                  2.0.1-0ubuntu17.1                       GTK+ frontend for the apport crash report system
ii  apport-symptoms                             0.16.1                                  symptom scripts for apport
ii  apt                                         0.8.16~exp12ubuntu10.7                  commandline package manager
ii  apt-transport-https                         0.8.16~exp12ubuntu10.7                  https download transport for APT
ii  apt-utils                                   0.8.16~exp12ubuntu10.7                  package managment related utility programs
--More--

Untuk mendapatkan tanggal dan waktu paket yang diinstal

cat /var/log/dpkg.log | grep " install "

Untuk mendapatkan paket spesifik:

$cat /var/log/dpkg.log | grep " install " | grep banshee
2013-12-12 12:51:48 install banshee <none> 2.4.1-3ubuntu1~precise2
2013-12-12 12:51:51 install banshee-extensions-common <none> 2.4.0-1ubuntu1
2013-12-12 12:51:51 install banshee-extension-radiostationfetcher <none> 2.4.0-    1ubuntu1
2013-12-12 12:51:51 install banshee-extension-soundmenu <none> 2.4.1-3ubuntu1~precise2

Untuk mendapatkan bagian

$apt-cache show firefox | grep Section
Section: web

Lihat Juga: ListInstalledPackagesByDate


Saya telah melihat dua cara ini tetapi tidak yakin apakah ini cara yang konsisten untuk digunakan pada semua versi Ubuntu. Satu lagi kekhawatiran adalah jika apt-cache hanya melaporkan dalam kondisi tertentu (seperti jika cache diaktifkan). Bisakah saya mengandalkan perintah ini untuk mendapatkan detail?
user1787572

Tampaknya cache yang tepat dapat dihapus dan perintah itu tidak akan mengembalikan semua informasi. Koreksi saya jika saya salah. Akankah dpkg - print-avail <package_name> membantu saya mendapatkan detail yang sama jika apt cache dihapus?
user1787572

@ user224730: Saya tidak tahu bagaimana Anda akan menghapus apt-cache, tapi ya Anda benar. dpkg --print-availakan melakukan pekerjaan yang sama jika Anda ingin mendapatkan informasi yang cukup. Satu hal yang harus Anda perhatikan bahwa sudo apt-cache showperintah selalu memberi Anda beberapa informasi tambahan. Anda dapat memverifikasinya dengan membandingkan dua perintah output ini. 1. sudo apt-cache show firefox | wcdan 2. sudo dpkg --print-avail firefox | wcAnda akan melihat bahwa perintah pertama menghasilkan lebih banyak baris, kata, dan karakter daripada perintah ke - 2 . Jawab jika Anda masih ragu ..
Saurav Kumar

apt-get clean adalah perintah yang saya pelajari tentang yang menghapus cache. Saya menjalankan kedua perintah yang Anda sebutkan di sistem saya dan menemukan bahwa apt-cache show firefox | wc mengembalikan saya beberapa catatan, namun dpkg - print-faedah | wc tidak. Saya memeriksa apakah firefox diinstal pada sistem saya dengan menjalankan dpkg -l | grep firefox dan saya tidak mendapat apa-apa. Saya menjalankan perintah yang sama untuk paket yang diinstal pada sistem dan menemukan bahwa perintah show-cache juga mencetak informasi tentang tambalan terbaru yang tersedia untuk paket ini. Itu artinya, paket tersebut adalah kandidat untuk pembaruan.
user1787572

Nah, itu membawa saya ke keputusan bahwa dpkg - print-avail adalah perintah yang saya cari yang memberi saya informasi aktual dari tingkat paket yang diinstal pada sistem.
user1787572

5

apt-cache showpkg <package> akan memberi Anda detail tentang versi paket apa yang tersedia, meneruskan dan membalikkan dependensi dll.

apt-cache show <package> akan memberikan deskripsi, kategori (Bagian) dll.

Saya tidak mengetahui cara untuk melihat pada jam berapa paket diinstal.


3

Sekarang jauh lebih mudah untuk mendapatkan rincian instalasi paket.

Inilah langkah-langkah sederhana:

  1. Salin dan tempel skrip berikut dalam file dan simpan dengan nama apa saja pkgdetails.

    #!/bin/bash
    
    #Get the details and section of installed packages
    # usage:
    # pkgdetails <pkgname1> <pkgname2>
    
    #first append all info from archived logs
    
    i=2
    mycount=$(ls -l /var/log/dpkg.log.*.gz | wc -l)
    nlogs=$(( $mycount + 1 ))
    
    while [ $i -le $nlogs ]
    do
    if [ -e /var/log/dpkg.log.$i.gz ]; then
    zcat /var/log/dpkg.log.$i.gz | grep "\ install\ " >> $HOME/pkgtmp.txt
    fi
    i=$(( $i+1 ))
    
    done
    
    #next append all info from unarchived logs
    
    i=1
    nulogs=$(ls -l /var/log/dpkg.log.* | wc -l)
    nulogs=$(( $nulogs - $nlogs + 1 ))
    while [ $i -le $nulogs ]
    do
    if [ -e /var/log/dpkg.log.$i ]; then
    cat /var/log/dpkg.log.$i | grep "\ install\ " >> $HOME/pkgtmp.txt
    fi
    i=$(( $i+1 ))
    
    done
    
    #next append current log
    
    cat /var/log/dpkg.log | grep "\ install\ " >> $HOME/pkgtmp.txt
    
    #sort text file by date
    
    sort -n $HOME/pkgtmp.txt > $HOME/pkginstalls.txt
    
    rm $HOME/pkgtmp.txt
    
    # Now displaying the installation details of packages passed as arguments
    
    for pkg in $@
    do
    echo "--------------------- Installation Details of $pkg ----------------------"
    echo 
    cat $HOME/pkginstalls.txt | grep -i $pkg
    echo
    apt-cache show $pkg | grep "Section" | sort -u
    echo
    done
    
    exit 0
    
  2. Jadikan file tersebut dapat dieksekusi dan salin ke /binuntuk menggunakannya sebagai perintah.

    chmod a+x pkgdetails && sudo cp pkgdetails /bin/
    
  3. Sekarang gunakan pkgdetailsperintah untuk mendapatkan detail instalasi dan bagian dari paket:

    pkgdetails qbittorrent artha
    

Ini output saya:

--------------------- Installation Details of qbittorrent ----------------------

2013-07-24 07:52:27 install qbittorrent <none> 2.9.7-1
2013-07-24 09:11:32 install qbittorrent <none> 3.0.x-0~4366-20130722~precise1
2013-10-19 05:32:27 install qbittorrent <none> 3.0.x-0~4389-20130802~precise1

Section: net
Section: universe/net

--------------------- Installation Details of artha ----------------------

2013-07-11 23:50:16 install artha <none> 1.0.2-1ubuntu1

Section: universe/utils

1

buka editor teks dan rekatkan mengikuti dengan anyname.sh dan membuatnya dapat dieksekusi dengan

chmod +x  anyname.sh   

kode:

#!/bin/bash
#pkginstalls.sh
#creates text file with a list of all packages installed by date

#first append all info from archived logs

i=2
mycount=$(ls -l /var/log/dpkg.log.*.gz | wc -l)
nlogs=$(( $mycount + 1 ))

while [ $i -le $nlogs ]
do
if [ -e /var/log/dpkg.log.$i.gz ]; then
zcat /var/log/dpkg.log.$i.gz | grep "\ install\ " >> $HOME/pkgtmp.txt
fi
i=$(( $i+1 ))

done

#next append all info from unarchived logs

i=1
nulogs=$(ls -l /var/log/dpkg.log.* | wc -l)
nulogs=$(( $nulogs - $nlogs + 1 ))
while [ $i -le $nulogs ]
do
if [ -e /var/log/dpkg.log.$i ]; then
cat /var/log/dpkg.log.$i | grep "\ install\ " >> $HOME/pkgtmp.txt
fi
i=$(( $i+1 ))

done

#next append current log

cat /var/log/dpkg.log | grep "\ install\ " >> $HOME/pkgtmp.txt

#sort text file by date

sort -n $HOME/pkgtmp.txt > $HOME/pkginstalls.txt

rm $HOME/pkgtmp.txt

exit 0

kredit diberikan ke komunitas ubuntu


Terima kasih balasannya. Script harus dimodifikasi untuk mendapatkan beberapa detail seperti kategori.
user1787572

1

Menggunakan apt

Anda juga dapat mendaftar paket yang diinstal dengan:

apt list --installed

Paket yang diinstal secara manual Anda ditunjukkan dengan:

apt list --manual-installed

dan semua versi dengan:

apt list --all-versions

Ini adalah perintah yang sangat berguna. Misalnya jika Anda ingin menginstal paket lokal yang diinstal ke komputer lain, Anda hanya perlu melakukannya

apt list --installed | awk -F/ -v ORS=" " 'NR>1 {print $1}' > apt_packages.txt

atau jika Anda hanya ingin paket yang diinstal secara manual

 apt list --manual-installed | awk -F/ -v ORS=" " 'NR>1 {print $1}' > apt_packages.txt   

Sekarang semua paket apt Anda siap untuk diinstal pada sistem Ubuntu lain yang diinstal atau baru.

sudo apt-get install < apt_packages.txt

Detil Deskripsi

Jika Anda ingin tahu persis kapan , paket apa dan mana yang telah dihapus, Anda harus mencarinya di

/var/log/apt

direktori. Cari di history.logfile; gunakan sed , awk , grep atau sederhanakan editor teks Anda untuk mencari file histori Anda.



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.