2013-08-27 6 views
5

Un sacco di makefile usa pkg-config ma i nomi non si riferiscono ai gestori di pacchetti (ad esempio yum/apt). Come mappare i nomi di pkg-config su di loro? c'è un trucco?come mappare i nomi di pkg-config a yum/apt-get

Esempio: se faccio yum searchName - guardare attraverso il nome e l'approssimativa PKG-config nome di

Risultato:

$ pkg-config --libs dbus-glib-0 
Package dbus-glib-0 was not found in the pkg-config search path. 
Perhaps you should add the directory containing `dbus-glib-0.pc' 
to the PKG_CONFIG_PATH environment variable 
No package 'dbus-glib-0' found 

$ sudo yum install dbus-glib 
Loaded plugins: langpacks, refresh-packagekit 
Package dbus-glib-0.100-5.fc19.i686 already installed and latest version 
Nothing to do 

$ sudo yum install dbus-glib-0 
Loaded plugins: langpacks, refresh-packagekit 
No package dbus-glib-0 available. 
Error: Nothing to do 

risposta

1

I file pkg-config sono di solito forniti dal pacchetto -devel così nella maggior parte dei casi, foo.pc è fornito da libfoo-devel. Che è ancora congetture, ma ci sono due tasti di scelta rapida:

Installazione dal nome di percorso, se si sa dove il file .PC finirà

$> yum install /usr/lib64/pkgconfig/foo.pc 

che funziona per qualsiasi tipo di file, ma è ancora necessario per indovinare dove il file .pc è. L'approccio migliore è usare il requisito pkgconfig attuale:

$> yum install "pkgconfig(foo)" 

Utilizzare le virgolette per evitare la shell cercando di interpretare la parentesi.

3

Nel caso di apt-get, se avete un po 'di software che si lamenta di questo pacchetto mancante tramite pkg-config, per esempio:

 
configure: error: Package requirements (gtk+-2.0 >= 2.8) were not met: 

No package 'gtk+-2.0' found 

Consider adjusting the PKG_CONFIG_PATH environment variable if you 
installed software in a non-standard prefix. 

Alternatively, you may set the environment variables GTK_CFLAGS 
and GTK_LIBS to avoid the need to call pkg-config. 
See the pkg-config man page for more details. 
Error: Could not run ./configure, which is required to configure banshee 

allora significa che lo script di configurazione è alla ricerca per la gtk+-2.0 pacchetto pkgconfig.

Allora, che cosa si può fare è questo:

 
$ sudo apt-get install apt-file 
... 
$ apt-file update 
... 
$ apt-file search gtk+-2.0 | grep "\.pc" 
libgtk2.0-dev: /usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-2.0.pc 

Il che significa che è possibile installare il pacchetto libgtk2.0-dev:

sudo apt-get install libgtk2.0-dev 

E la dipendenza sarebbe soddisfatto.

Nel caso particolare della domanda iniziale: (. Dbus-glib-0 sembra essere troppo vecchio per presentarsi nel mio sistema)

$ apt-file search --package-only dbus-glib-1.pc 
libdbus-glib-1-dev 

Problemi correlati