Come posso determinare le informazioni sulla versione di un .dylib su OS X?


12

In OS X utilizzando uno strumento GUI o CLI come posso trovare le informazioni sulla versione di un determinato dylib?

Risposte:


11

È possibile utilizzare otool( /usr/bin/otool) per visualizzare i nomi e i numeri di versione delle librerie condivise utilizzate da un file oggetto 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)

Non è sempre perfetto, ma se fornisci casi specifici che stai cercando di capire, potrei consigliarti ulteriormente.

Sfortunatamente, sembra che otoolnon faccia parte dell'installazione predefinita, ma è disponibile come parte del modulo Strumenti da riga di comando degli strumenti di sviluppo Xcode. Esistono 2 modi per acquisire otool:

Il primo modo potrebbe essere il più semplice, ma richiederà il download di Xcode.app da 1,5 GB oltre i 100 MB degli strumenti da riga di comando. Il possibile lato positivo di questo metodo è che può aiutare ad automatizzare il download e l'installazione degli strumenti della riga di comando. Il secondo modo richiede la creazione di un account sviluppatore gratuito (a meno che tu non ne abbia già uno pagato) all'indirizzo https://developer.apple.com/programs/register/ (NOTA: l'opzione 1 potrebbe anche richiedere questo, non sono sicuro, poiché sono già un membro a pagamento), quindi connettiti a https://developer.apple.com/downloads/ e scarica gli strumenti da riga di comando appropriati per Xcode dall'elenco dei download.

Se segui il primo percorso, ottieni Xcode nell'app store all'indirizzo https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 .


Grazie! Sembra funzionare per .dylibs. L'ho provato su / opt / local / bin / ffmpeg ma non fornisce il numero di versione di ffmpeg stesso. È possibile ottenere il numero di versione per un eseguibile? (Una soluzione generica che non utilizza una sorta di argomento di comando come --versiono simili sarebbe preferibile.)
HairOfTheDog
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.