¿Qué significa BuildID SHA1?

12

Estaba explorando en la ventana del terminal de la unidad ubuntu cuando surgió esto:

Cuando escribí:

file /bin/ls

la salida es:

/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x214a38d0db472db559f0dabf0ae97f82fea83e03, stripped

Quería verificar que sha1 sea correcto y, por lo tanto, escribí esto:

openssl sha1 /bin/ls

Sin embargo, la salida es como tal:

SHA1(/bin/ls)= 8800fee57584ed1c44b638225c2f1eec818a27c2

Si bien tienen la misma longitud en hexadecimal, no parecen coincidir. ¿Me he perdido algo? ¿O se BuildID[sha1]refiere a algo más?

Vern
fuente

Respuestas:

15

¿O el BuildID [sha1] se refiere a otra cosa?

BuildID NO es el hash de un binario o está relacionado con él. Es un identificador para la sesión de "compilación" (o compilación) que produjo ese binario. Está principalmente allí para fines de depuración, de modo que los desarrolladores puedan ver los registros, el entorno, etc. desde el número de sesión $ BuildID e intentar solucionar el problema, reproducirlo, etc.

Por cierto, los hashes SHA1 de cualquier cosa siempre tienen 160 bits de longitud :)

ish
fuente
¿Podría esto usarse en la huella digital de la caché de la herramienta de compilación? Por ejemplo, scons podría leer esta identificación en lugar de tener que volver a calcular los hash MD5 de los objetos intermedios y las bibliotecas para su uso en la verificación de dependencias.
Nordlöw