Executei dpkg-query -l libgtk2.0-0 libgtk-3-0
para descobrir a versão desses pacotes e obtive a seguinte saída.
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 Architecture Description
+++-==========================-==================-==================-==========================================================
ii libgtk-3-0:amd64 3.22.30-1ubuntu1 amd64 GTK+ graphical user interface library
ii libgtk2.0-0:amd64 2.24.32-1ubuntu1 amd64 GTK+ graphical user interface library
De man dpkg-query
recebo a seguinte descrição para as primeiras colunas.
As primeiras três colunas da saída mostram a ação desejada, o status do pacote e os erros, nessa ordem.
Desired action:
u = Unknown
i = Install
h = Hold
r = Remove
p = Purge
Package status:
n = Not-installed
c = Config-files
H = Half-installed
U = Unpacked
F = Half-configured
W = Triggers-awaiting
t = Triggers-pending
i = Installed
Error flags:
<empty> = (none)
R = Reinst-required
A partir dessa descrição, ii significaria que a ação desejada é instalar e esse pacote está instalado. Isso me confunde, pois eu esperaria não precisar tomar nenhuma ação, se o pacote já estiver instalado.
O que exatamente essa saída está me dizendo? Preciso atualizar o pacote ou já está atualizado?
Como você diz,
Isso significa que o estado desejado para o pacote é “instalado” e que o estado atual do pacote é “instalado”. Como ambos correspondem, nenhuma alteração é necessária. A coluna de ação não especifica as ações que você precisa executar, ela especifica as ações que o sistema de empacotamento deve executar - na verdade, isso indica que você pediu ao sistema de empacotamento para instalar esses pacotes, direta ou indiretamente ( via dependências) .
Não diz nada sobre se o pacote está atualizado; você precisa olhar para a saída de
para determinar isso.
dpkg-query
apenas olha para o banco de dados de pacotes local em/var/lib/dpkg/status
, então ele não sabe sobre outras versões de pacotes. APT é a ferramenta que lida com repositórios de pacotes e sabe quais versões de um pacote estão disponíveis (e candidatos para instalação).Diz no extrato manual que você inclui na pergunta, diz no cabeçalho da saída.
Cabeçalho
Manual (editado para remover distrações)
Pode ser que você não esteja entendendo o significado de coluna, no manual. Eles aqui significam um único caractere. Também acho que o manual tem um pequeno erro. Diz
desired action
, mas acho que significadesired state
.