¿Cómo enumerar el paquete instalado y sus detalles en ubuntu?


27

Soy nuevo en ubuntu y trato de encontrar la manera de enumerar todos los paquetes instalados y sus detalles, como la versión, el lanzamiento, el tiempo de instalación, la categoría en Ubuntu. Descubrí que los siguientes comandos me ayudarán a obtener parte de esta información:

1) dpkg -l

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

A diferencia de Redhat, el tiempo de instalación y la información de categoría faltan en esto. ¿Alguien puede saber una forma de recuperar estos detalles?

Gracias por adelantado.

Respuestas:


33

Simple y elegante:

sudo dpkg -l | more

o

sudo dpkg -l | less

Si desea obtener la descripción de algunos paquetes específicos, diga firefox:

sudo dpkg -l | grep firefox

Aquí está mi salida de:

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

Para obtener la fecha y hora de los paquetes que se instalan

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

Para obtener un paquete específico:

$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

Para obtener la sección

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

Vea también: ListInstalledPackagesByDate


Había visto estas dos formas, pero no estaba seguro de si estas son las formas consistentes de usar en todas las versiones de Ubuntu. Una preocupación más era si apt-cache informa solo en ciertas condiciones (como si el almacenamiento en caché está habilitado). ¿Puedo confiar en estos comandos para obtener los detalles?
user1787572

Parece que apt cache se puede eliminar y ese comando no devolverá toda la información. Corrígeme si estoy equivocado. ¿Dpkg --print-avail <package_name> me ayudará a obtener los mismos detalles si se elimina apt cache?
user1787572

@ user224730: No sé cómo eliminarás apt-cache, pero sí, tienes razón. dpkg --print-availhará el mismo trabajo si desea obtener la información suficiente. Una cosa que debe tener en cuenta es que el sudo apt-cache showcomando siempre le brinda información adicional. Puede verificarlo comparando la salida de estos dos comandos. 1. sudo apt-cache show firefox | wcy 2. sudo dpkg --print-avail firefox | wcNotarás que el primer comando devuelve más líneas, palabras y caracteres que el segundo . Responda si todavía tiene algunas dudas ...
Saurav Kumar

apt-get clean es el comando que aprendí que elimina la caché. Ejecuté los dos comandos que mencionaste en mi sistema y encontré que apt-cache show firefox | wc me devolvió algunos registros, sin embargo dpkg --print-avail | WC no lo hizo. Verifiqué si Firefox está instalado en mi sistema ejecutando dpkg -l | grep firefox y no tengo nada. Ejecuté los mismos comandos para el paquete que está instalado en el sistema y descubrí que el comando apt-cache show también imprime la información sobre el último parche disponible para este paquete. Eso significa que el paquete es el candidato para la actualización.
user1787572

Bueno, eso me lleva a la decisión de que dpkg --print-avail es el comando que estoy buscando que me da la información real del nivel de paquete instalado en el sistema.
user1787572

5

apt-cache showpkg <package> le dará detalles sobre qué versiones de paquetes están disponibles, dependencias directas e inversas, etc.

apt-cache show <package> proporcionará una descripción, categoría (Sección), etc.

No conozco una manera de ver a qué hora se instaló un paquete.


3

Ahora es mucho más fácil obtener los detalles de instalación de los paquetes.

Aquí están los pasos simples:

  1. Copie y pegue el siguiente script en un archivo y guárdelo con cualquier nombre, por ejemplo 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. Haga que el archivo sea ejecutable y cópielo /binpara usarlo como comando.

    chmod a+x pkgdetails && sudo cp pkgdetails /bin/
    
  3. Ahora use el pkgdetailscomando para obtener los detalles de instalación y la sección de paquetes:

    pkgdetails qbittorrent artha
    

Aquí está mi salida:

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

abra el editor de texto y pegue los siguientes con anyname.sh y hágalo ejecutable con

chmod +x  anyname.sh   

codigo:

#!/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

el crédito va a la comunidad ubuntu


Gracias por la respuesta. El script tendrá que modificarse para obtener algunos detalles más, como la categoría.
user1787572

1

Usando apt

También puede enumerar los paquetes instalados con:

apt list --installed

Sus paquetes instalados manualmente se muestran con:

apt list --manual-installed

y todas las versiones con:

apt list --all-versions

Estos son comandos muy útiles. Por ejemplo, si desea instalar paquetes locales instalados en otra computadora, solo tiene que

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

o si solo quieres tus paquetes instalados manualmente

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

Ahora todos sus paquetes apt están listos para instalarse en otro o nuevo sistema Ubuntu instalado.

sudo apt-get install < apt_packages.txt

Descripción detallada

Si desea saber exactamente cuándo , qué y qué paquetes se han eliminado, debe buscar en su

/var/log/apt

directorio. Buscar en los history.logarchivos; use sed , awk , grep o simplemente su editor de texto para buscar sus archivos de historial.



0

Tengo una respuesta parcial (y no suficientes puntos de representante para hacer esto un comentario): el registro de instalación está aquí:

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

Como parece que tiene un poco más de conocimiento de la línea de comandos que yo, puede intentar modificar el script aquí para analizarlo:

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.