Como posso determinar as informações da versão de .dylib no OS X?

12

No OS X, usando uma ferramenta GUI ou CLI, como posso descobrir as informações da versão de um determinado dylib?

Cabelo do cachorro
fonte

Respostas:

11

Você pode usar otool( /usr/bin/otool) para ver os nomes e os números de versão das bibliotecas compartilhadas que um arquivo de objeto do Mach-O usa.

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)

Nem sempre é perfeito, mas se você fornecer algum caso específico que esteja tentando descobrir, eu poderia aconselhá-lo mais.

Infelizmente, parece que otoolnão faz parte da instalação padrão, mas está disponível como parte do módulo Command Line Tools das ferramentas de desenvolvedor do Xcode. Existem 2 maneiras de adquirir otool:

A primeira maneira é ser a mais fácil, mas será necessário baixar o valor de 1,5 GB do Xcode.app além dos 100 MB das Ferramentas de Linha de Comando. A possível vantagem desse método é que pode ajudar a automatizar o download e a instalação das ferramentas de linha de comando. A segunda maneira exige a configuração de uma conta de desenvolvedor gratuita (a menos que você já tenha uma paga) em https://developer.apple.com/programs/register/ (NOTA: a opção 1 pode até exigir isso, não tenho certeza, como já sou um membro pago), conecte-se a https://developer.apple.com/downloads/ e baixe as ferramentas de linha de comando apropriadas para o Xcode da lista de downloads.

Se você for a primeira rota, obtenha o Xcode na loja de aplicativos em https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 .

NSGod
fonte
Obrigado! Isso parece funcionar para .dylibs. Eu tentei em / opt / local / bin / ffmpeg, mas não fornece o número da versão do ffmpeg. É possível obter o número da versão de um executável? (A solução genérica que não faz uso de algum tipo de argumento de comando, como --versionou similar seria preferível.)
HairOfTheDog