Comprendi le dipendenze homebrew e solo barile


120

Recentemente ho iniziato a usare l'homebrew e sono un po 'confuso su cosa succede quando preparo qualcosa sul mio sistema, ma le sue dipendenze prodotte sono solo barili, il che significa che sono collegate sotto /usr/local.

Ad esempio, sto installando vips (una libreria di elaborazione delle immagini). Una delle sue numerose dipendenze è pixman. Pixman è installato come solo barile perché apparentemente Mac OSX (Snow Leopard in questo caso) viene già fornito con esso (o una versione di esso).

Questo significa che i VIP useranno la versione di sistema di pixman? In tal caso, non ci sono potenziali problemi di controllo delle versioni relativi all'utilizzo della versione del sistema piuttosto che della versione delle dipendenze (supponendo che siano diverse)?

Risposte:


197

Per un software per essere "barilotto-only" significa che è installato in /usr/local/Cellar, ma non collegate in luoghi come /usr/local/bin, /usr/local/libecc Ciò significa altro software che dipende da esso deve essere compilato con le istruzioni specifiche ad usare i file /usr/local/Cellar. Ciò avviene automaticamente brew installquando una formula specifica le dipendenze solo del barilotto.

Le formule che specificano dipendenze solo barile assicurano che non vengano utilizzate le librerie di sistema equivalenti. La tua installazione di VIP è collegata a una versione specifica di pixman in /usr/local/Cellar/pixman/<version>, quindi non è influenzata dalla versione di sistema di pixman o da qualsiasi altra versione Homebrew di pixman che potresti installare.


9
Buona spiegazione! Puoi spesso controllare con otool -L /usr/local/Cellar/vips/???/lib/*.dylibper vedere a quali altre librerie si collega.
Samuel John,

Ho un openssl 1.0.2s installato da homebrew e il mio sistema operativo Mac ha LibreSSL 2.6.5 Quando lo faccio openssl version, mostra sempre quello da os (LibreSSL) ma quando eseguo il mio python in modalità interattiva, in realtà sta usando openssl. Potete aiutarmi a capire come Python ha rilevato il corretto openssl? @echristopherson
Alex

1
@Alex Come echristopherson ha detto: È collegato a una versione specifica di openssl(durante l'installazione). Dai un'occhiata alla pythonBrew Formula ; lì puoi vedere che il percorso (prefisso di brew) della openssl@1.1formula è usato come arg, che a sua volta è usato per configure.
einjohn
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.