¿Cómo puedo determinar la información de versión de un .dylib en OS X?

12

En OS X usando una herramienta GUI o CLI, ¿cómo puedo encontrar la información de versión de un dylib dado?

Pelo del perro
fuente

Respuestas:

11

Puede usar otool( /usr/bin/otool) para ver los nombres y números de versión de las bibliotecas compartidas que usa un archivo de objeto Mach-O.

MacPro:~ mdouma46$ otool -L /usr/lib/libssl.0.9.7.dylib 
/usr/lib/libssl.0.9.7.dylib:
  /usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
  /usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

MacPro:~ mdouma46$ otool -L /usr/lib/libssl.0.9.8.dylib 
/usr/lib/libssl.0.9.8.dylib:
  /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

MacPro:~ mdouma46$ otool -L /usr/lib/libgutenprint.2.dylib 
/usr/lib/libgutenprint.2.dylib:
  /usr/lib/libgutenprint.2.dylib (compatibility version 4.0.0, current version 4.0.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
  /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

MacPro:~ mdouma46$ otool -L /usr/lib/libcurl.4.dylib 
/usr/lib/libcurl.4.dylib:
  /usr/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 7.0.0)
  /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.0.0)
  /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP (compatibility version 1.0.0, current version 2.4.0)
  /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos (compatibility version 5.0.0, current version 6.0.0)
  /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

No siempre es perfecto, pero si proporciona algún caso específico que esté tratando de resolver, podría aconsejarlo más.

Desafortunadamente, parece que otoolno es parte de la instalación predeterminada, pero está disponible como parte del módulo Herramientas de línea de comandos de las herramientas de desarrollo de Xcode. Hay 2 formas de adquirir otool:

La primera forma puede ser la más fácil, pero requerirá descargar Xcode.app de 1,5 GB por encima de los 100 MB de las Herramientas de línea de comandos. La posible ventaja de este método es que puede ayudar a automatizar la descarga e instalación de las herramientas de línea de comandos. La segunda forma requiere configurar una cuenta de Desarrollador gratuita (a menos que ya tenga una pagada) en https://developer.apple.com/programs/register/ (NOTA: la opción 1 incluso puede requerir esto, no estoy seguro, como ya soy miembro pago), luego conéctese a https://developer.apple.com/downloads/ y descargue las herramientas de línea de comandos apropiadas para Xcode de la lista de descargas.

Si sigue la primera ruta, obtenga Xcode en la tienda de aplicaciones en https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 .

NSGod
fuente
¡Gracias! Eso parece funcionar para .dylibs. Lo probé en / opt / local / bin / ffmpeg pero no da el número de versión de ffmpeg. ¿Es posible obtener el número de versión de un ejecutable? (Se --versionpreferiría una solución genérica que no utilice algún tipo de argumento de comando como o similar).
HairOfTheDog