Como listar o pacote instalado e seus detalhes no ubuntu?


27

Eu sou novo no ubuntu e estou tentando descobrir como listar todos os pacotes instalados e seus detalhes, como versão, lançamento, tempo de instalação, categoria no Ubuntu. Verificou que os seguintes comandos me ajudarão a obter algumas dessas informações:

1) dpkg -l

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

Ao contrário do Redhat, o tempo de instalação e as informações da categoria estão ausentes. Alguém pode saber uma maneira de recuperar esses detalhes?

Desde já, obrigado.

Respostas:


33

Simples e elegante:

sudo dpkg -l | more

ou

sudo dpkg -l | less

Se você deseja obter a descrição de alguns pacotes específicos, diga firefox:

sudo dpkg -l | grep firefox

Aqui está a minha saída 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 obter a data e hora dos pacotes sendo instalados

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

Para obter um pacote 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 obter a seção

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

Consulte também: ListInstalledPackagesByDate


Eu já tinha visto essas duas maneiras, mas não tinha certeza se essas são as maneiras consistentes de usar em todas as versões do Ubuntu. Mais uma preocupação era se o apt-cache reportasse apenas em determinadas condições (como se o armazenamento em cache estivesse ativado). Posso confiar nesses comandos para obter os detalhes?
user1787572

Parece que o cache do apt pode ser excluído e esse comando não retornará todas as informações. Corrija-me se eu estiver errado. O dpkg --print-avail <package_name> me ajudará a obter os mesmos detalhes se o cache do apt for excluído?
user1787572

@ user224730: Não sei como você excluirá apt-cache, mas sim, você está certo. dpkg --print-availfará o mesmo trabalho se você deseja obter as informações suficientes. Uma coisa que você deve observar que o sudo apt-cache showcomando sempre fornece algumas informações extras. Você pode verificá-lo comparando estes dois comandos de saída. 1. sudo apt-cache show firefox | wce 2. sudo dpkg --print-avail firefox | wcVocê notará que o primeiro comando retorna mais número de linhas, palavras e caracteres do que o segundo . Responda se você ainda tiver alguma dúvida ..
Saurav Kumar

O apt-get clean é o comando que aprendi sobre o que exclui o cache. Eu executei os dois comandos mencionados no meu sistema e descobri que o apt-cache show firefox | wc me devolveu algum registro, no entanto dpkg --print-avail | wc não. Eu verifiquei se o firefox está instalado no meu sistema executando o dpkg -l | grep firefox e não tenho nada. Executei os mesmos comandos para o pacote que está instalado no sistema e descobri que o comando apt-cache show também imprime as informações sobre o patch mais recente disponível para este pacote. Isso significa que o pacote é candidato a atualização.
user1787572

Bem, isso me leva à decisão de que dpkg --print-avail é o comando que estou procurando, que me fornece as informações reais do nível do pacote instalado no sistema.
user1787572

5

apt-cache showpkg <package> fornecerá detalhes sobre quais versões de pacote estão disponíveis, dependências de encaminhamento e reversão etc.

apt-cache show <package> fornecerá descrição, categoria (seção) etc.

Não conheço uma maneira de ver a que horas um pacote foi instalado.


3

Agora é muito mais fácil obter os detalhes de instalação dos pacotes.

Aqui estão os passos simples:

  1. Copie e cole o script a seguir em um arquivo e salve-o com qualquer nome, por exemplo 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. Torne o arquivo executável e copie para /bin para usá-lo como um comando.

    chmod a+x pkgdetails && sudo cp pkgdetails /bin/
    
  3. Agora use o pkgdetailscomando para obter os detalhes da instalação e a seção dos pacotes:

    pkgdetails qbittorrent artha
    

Aqui está a minha saída:

--------------------- 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 o editor de texto e cole seguindo com anyname.sh e torne-o executável com

chmod +x  anyname.sh   

código:

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

crédito vai para a comunidade ubuntu


Obrigado pela resposta. O script precisará ser modificado para obter mais alguns detalhes, como categoria.
user1787572

1

Usando o apt

Você também pode listar os pacotes instalados com:

apt list --installed

Seus pacotes instalados manualmente são mostrados com:

apt list --manual-installed

e todas as versões com:

apt list --all-versions

Estes são comandos muito úteis. Por exemplo, se você deseja instalar pacotes locais instalados em outro computador, você só precisa

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

ou se você deseja apenas os pacotes instalados manualmente

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

Agora todos os seus pacotes apt estão prontos para instalar em outro ou novo sistema Ubuntu instalado.

sudo apt-get install < apt_packages.txt

Descrição detalhada

Se você quiser saber exatamente quando , quais e quais pacotes foram removidos, é necessário procurar em seu

/var/log/apt

diretório. Pesquise nos history.logarquivos; use sed , awk , grep ou simples seu editor de texto para pesquisar seus arquivos de histórico.



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.