Depois de um novo inst de f27 (netinstall), notei que muitos pacotes colocam arquivos minúsculos no /usr/lib/.build-id/
diretório. A princípio, pensei que de alguma forma havia ativado algum modo obscuro de "depuração" para dnf, mas mesmo
$ dnf download httpd
busca um rpm com /usr/lib/.build-id/*
arquivos nele.
Não me lembro disso nas versões anteriores do Fedora.
/usr/lib/.build-id
contém os principais arquivos build-id para pacotes instalados. Antes do Fedora 27, eles viviam junto com os arquivos de depuração em/usr/lib/debug
, e eram enviados apenas em RPMs de depuração. No Fedora 27, uma alteração foi introduzida para permitir a instalação paralela de vários pacotes de informações de depuração. Parte dessa mudança envolve o envio dos principais arquivos build-id no pacote que eles correspondem, para garantir que correspondam aos binários instalados.Pacotes de informações de depuração são usados em muitas distribuições para fornecer uma maneira para os usuários instalarem informações de depuração quando necessário, sem aumentar os binários para todos. Quando um programa ou biblioteca é construído e vinculado, ele pode ser construído com informações de depuração, que os depuradores podem usar para mapear locais no binário com locais em seu código-fonte; mas esta informação ocupa muito espaço. Portanto, as informações de depuração geralmente são removidas dos binários antes de serem empacotadas. Nos últimos anos,
strip
eobjcopy
foram aprimorados para que as informações de depuração possam ser extraídas e armazenadas separadamente — é assim que os pacotes de informações de depuração são criados. Tudo o que é necessário é alguma forma de garantir que um binário e suas informações de depuração correspondam, e é aí que entram os IDs de compilação - eles são identificadores exclusivos calculados porld
(procure--build-id
lá) sobre as porções significativas de um binário. “Main build-id files” são links simbólicos de um build id para o binário correspondente ou arquivo de informações de depuração; eles permitem que mapeamentos bidirecionais sejam implementados, de modo que os dumps centrais possam ser depurados de forma útil (há um link de binários para seus IDs de compilação nos próprios binários, na.gnu_debuglink
seção). Você encontrará uma explicação detalhada do raciocínio por trás de tudo isso na descrição do recurso build-id do Fedora .