Existe uma maneira de ver o que exatamente os "gatilhos de processamento" fazem por pacote?

15

Como eu entendi, o usual " Processadores de processamento para <nome do pacote > " executa algumas tarefas específicas do pacote e do sistema, como adicionar itens a um menu de inicialização ou atualizar um arquivo de configuração. Existe uma maneira real de ver o que exatamente está sendo feito ou alterado durante esta etapa? Onde podemos encontrar o comportamento exato da etapa?

zxcdw
fonte

Respostas:

16

Existe, mas é necessário pesquisar alguns scripts bash para os pacotes serem acionados.

  • Suponha que a dpkgsaída se pareça com:

    Preparando para substituir o zim 0.52-1 (usando ... / archives / zim_0.52-1_all.deb) ...
    Descompactando zim de substituição ...
    Processando gatilhos para informações de mímica compartilhada ...
    Processando gatilhos para o menu ...
  • Internamente, o dpkgque chama de postinstscript para cada um desses pacotes com a triggeredopção de linha de comando e zero ou mais opções de acionamento.

  • Então, basta abrir /var/lib/dpkg/info/PACKAGE.postinst(é um script bash) e simplesmente procurar o que acontece quando $1étriggered

Exemplo: man-dbgatilhos

Um dos "gatilhos de processamento" mais comuns que você verá é para man-dbsempre que o pacote que está sendo instalado tiver uma página de manual .

Se você abrir /var/lib/dpkg/info/man-db.postinst, encontrará esta seção:

se ["$ 1" = acionado]; então
    # Não imprimimos uma mensagem de status aqui, como o dpkg já disse
    # "Processando gatilhos para man-db ...".
    run_mandb -pq
    saída 0
fi

Então você pode ver que Processing triggers for man-db ...simplesmente resulta na run_mandbfunção (também encontrada no postinstscript) sendo executada com a -pqopção

Recursos úteis:

  1. Tentando tornar os gatilhos do dpkg mais úteis e menos dolorosos
  2. gatilhos do dpkg, o documento de instruções perdidos
ish
fonte
Por que é tão devagar ?!
Antonio Petricca 14/03