Como o comando apt-get purge funciona?

7

Como o 'it' (ex. purge ) sabe onde as dependências e arquivos de configuração estão localizados?

Como o purge descobre que um determinado software criou um determinado arquivo?

Existe algum tipo de arquivo de configuração que registra a criação de todos os arquivos por programas, para que purge possa acessar os registros e combinar os arquivos para o programa durante a remoção?

    
por DevRobot 02.12.2015 / 13:32

1 resposta

2

Sim, existem esses arquivos. Em particular, *.list , *.postrm e *.conffiles , todos armazenados no diretório /var/lib/dpkg/info .

Os arquivos .postrm são scripts pós-remoção, que são executados depois que um pacote é removido. Esses scripts são de responsabilidade dos mantenedores do pacote, e cada script é adaptado para o pacote específico. Se você examinar /var/lib/dpkg/info/usb-modeswitch-data.postrm , por exemplo, verá algo assim:

#!/bin/sh
set -e
# Automatically added by dh_installdeb
dpkg-maintscript-helper rm_conffile "/etc/usb_modeswitch.d/230d:0001" 20101222-3 -- "$@"
# End automatically added section

Há também *.list e *.conffiles arquivos, que são basicamente listas. gnome-terminal.list , por exemplo, listará todos os arquivos e diretórios criados quando gnome-terminal foi instalado. Os arquivos *.list são muito úteis para determinar o que foi instalado. *.conffiles lista todos os arquivos de configuração de um pacote. Por exemplo, enquanto xterm.list fornece todos os arquivos, 'xterm.conffiles * fornece apenas conffiles. Em outras palavras, o conteúdo do conffile também estará presente no arquivo de lista.

$ cat /var/lib/dpkg/info/xterm.conffiles                                       
/etc/X11/app-defaults/XTerm
/etc/X11/app-defaults/KOI8RXTerm-color
/etc/X11/app-defaults/XTerm-color
/etc/X11/app-defaults/UXTerm-color
/etc/X11/app-defaults/UXTerm
/etc/X11/app-defaults/KOI8RXTerm

Eu não sei bem como *.conffiles funciona. Minha suposição é que os scripts de pós-remoção têm prioridade, e apt-get apenas usa esses *.conffiles para verificar novamente se os arquivos listados foram removidos.

Como @ A.B. corretamente lembrou-me, também há *.prerm arquivos, alguns dos quais removem os arquivos .conf, mas não necessariamente, por exemplo, o de xpdf app estava removendo os arquivos em /etc/xpdf/includes directory

    
por Sergiy Kolodyazhnyy 02.12.2015 / 21:47