Wie liste ich das installierte Paket und seine Details auf Ubuntu auf?

27

Ich bin neu in Ubuntu und versuche herauszufinden, wie man alle installierten Pakete und deren Details wie Version, Release, Installationszeit, Kategorie auf Ubuntu auflistet. Es wurde festgestellt, dass die folgenden Befehle mir beim Abrufen einiger dieser Informationen helfen:

1) dpkg -l

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

Im Gegensatz zu Redhat fehlen hier die Informationen zu Installationszeit und Kategorie. Kann jemand eine Möglichkeit kennen, diese Details abzurufen?

Danke im Voraus.

user1787572
quelle

Antworten:

33

Einfach und elegant:

sudo dpkg -l | more

oder

sudo dpkg -l | less

Wenn Sie die Beschreibung einiger spezifischer Pakete erhalten möchten, sagen Sie firefox:

sudo dpkg -l | grep firefox

Hier ist meine Ausgabe von:

$ 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--

Um das Datum und die Uhrzeit der zu installierenden Pakete abzurufen

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

So erhalten Sie ein bestimmtes Paket:

$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

Um den Abschnitt zu bekommen

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

Siehe auch: ListInstalledPackagesByDate

Saurav Kumar
quelle
Ich hatte diese beiden Möglichkeiten gesehen, war mir aber nicht sicher, ob dies die konsistenten Möglichkeiten für alle Ubuntu-Versionen sind. Ein weiteres Problem bestand darin, dass apt-cache nur unter bestimmten Bedingungen meldet (z. B. wenn die Zwischenspeicherung aktiviert ist). Kann ich mich auf diese Befehle verlassen, um die Details zu erfahren?
User1787572
Es scheint, dass der apt-Cache gelöscht werden kann und dieser Befehl nicht alle Informationen zurückgibt. Korrigiere mich, wenn ich falsch liege. Hilft mir dpkg --print-avail <Paketname>, die gleichen Details zu erhalten, wenn der apt-Cache gelöscht wird?
user1787572
@ user224730: Ich weiß nicht, wie Sie löschen werden apt-cache, aber ja, Sie haben Recht. dpkg --print-availwird den gleichen Job machen, wenn Sie die ausreichenden Informationen erhalten möchten. Beachten Sie, dass der sudo apt-cache showBefehl immer einige zusätzliche Informationen enthält. Sie können dies überprüfen, indem Sie die Ausgabe dieser beiden Befehle vergleichen. 1. sudo apt-cache show firefox | wcund 2. sudo dpkg --print-avail firefox | wcSie werden feststellen, dass der erste Befehl mehr Zeilen, Wörter und Zeichen als der zweite zurückgibt . Antworten Sie, wenn Sie noch einige Zweifel haben ..
Saurav Kumar
apt-get clean ist der Befehl, über den ich erfahren habe, wie der Cache gelöscht wird. Ich habe beide von Ihnen erwähnten Befehle auf meinem System ausgeführt und festgestellt, dass apt-cache firefox | anzeigt wc hat mir einen Datensatz zurückgegeben, jedoch dpkg --print-avail | wc nicht. Ich habe mit dpkg -l | überprüft, ob Firefox auf meinem System installiert ist grep firefox und ich habe nichts. Ich habe die gleichen Befehle für das auf dem System installierte Paket ausgeführt und festgestellt, dass der Befehl apt-cache show auch die Informationen über den neuesten Patch ausgibt, der für dieses Paket verfügbar ist. Das heißt, das Paket ist der Kandidat für ein Update.
user1787572
Nun, das bringt mich zu der Entscheidung, dass dpkg --print-avail der gesuchte Befehl ist, der mir die tatsächlichen Informationen über die auf dem System installierte Paketebene liefert.
user1787572
5

apt-cache showpkg <package> gibt Ihnen Details darüber, welche Paketversionen verfügbar sind, Vorwärts- und Rückwärtsabhängigkeiten usw.

apt-cache show <package> Beschreibung, Kategorie (Abschnitt) usw.

Mir ist nicht bekannt, wann ein Paket installiert wurde.

vegivamp
quelle
3

Jetzt ist es viel einfacher, die Installationsdetails von Paketen abzurufen.

Hier sind die einfachen Schritte:

  1. Kopieren Sie das folgende Skript, fügen Sie es in eine Datei ein und speichern Sie es mit einem beliebigen Namen 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. Machen Sie die Datei ausführbar und kopieren Sie sie nach /bin, um sie als Befehl zu verwenden.

    chmod a+x pkgdetails && sudo cp pkgdetails /bin/
    
  3. Verwenden Sie nun den pkgdetailsBefehl, um die Installationsdetails und den Abschnitt der Pakete abzurufen:

    pkgdetails qbittorrent artha
    

Hier ist meine Ausgabe:

--------------------- 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
Saurav Kumar
quelle
1

öffne den Texteditor und füge folgendes mit anyname.sh ein und mache es ausführbar mit

chmod +x  anyname.sh   

Code:

#!/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 geht an Ubuntu Community

rɑːdʒɑ
quelle
Danke für die Antwort. Das Skript muss geändert werden, um einige Details wie Kategorie zu erhalten.
user1787572
1

Mit apt

Sie können die installierten Pakete auch auflisten mit:

apt list --installed

Ihre manuell installierten Pakete werden angezeigt mit:

apt list --manual-installed

und alle Versionen mit:

apt list --all-versions

Dies sind sehr nützliche Befehle. Wenn Sie beispielsweise lokal installierte Pakete auf einem anderen Computer installieren möchten, müssen Sie dies nur tun

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

oder wenn Sie nur Ihre manuell installierten Pakete wollen

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

Jetzt können alle apt-Pakete auf einem anderen oder neu installierten Ubuntu-System installiert werden.

sudo apt-get install < apt_packages.txt

detaillierte Beschreibung

Wenn Sie wissen wollen , genau wann , was und welche Pakete entfernt wurden , müssen Sie schauen Sie in Ihrem

/var/log/apt

Verzeichnis. Suche in den history.logDateien; Verwenden Sie sed , awk , grep oder einfach Ihren Texteditor, um Ihre Verlaufsdateien zu durchsuchen.

abu_bua
quelle
0

Ich habe eine teilweise Antwort (und nicht genügend Wiederholungspunkte, um dies zu kommentieren) - das Installationsprotokoll ist hier:

sudo less /var/log/apt/term.log 

Da Sie ein bisschen mehr Erfahrung mit der Befehlszeile haben als ich, können Sie versuchen, das Skript hier zu ändern, um es zu analysieren:

http://lists.debian.org/debian-user/2002/08/msg01219.html

virtualxtc
quelle