2013-08-27 11 views
5

Viele Makefiles verwenden pkg-config, aber die Namen beziehen sich nicht auf Paketmanager (z. B. yum/apt). Wie pkg-config-Namen ihnen zuordnen? Gibt es einen Trick?Wie pkg-config-Namen zu yum/apt-get zugeordnet werden

Beispiel: Wenn ich yum searchName tun - schauen Sie durch den Namen und die ungefähre Namen

Ergebnis pkg-config:

in der Regel
$ 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 

Antwort

1

Die pkg-config-Dateien von dem -devel-Paket vorgesehen sind, so In den meisten Fällen wird foo.pc von libfoo-devel bereitgestellt. Das ist immer noch Vermutungen, aber es gibt zwei Verknüpfungen:

Installieren von Pfadnamen, wenn Sie wissen, wo die .pc Datei

am Ende wird
$> yum install /usr/lib64/pkgconfig/foo.pc 

, die für jede Datei funktioniert, aber Sie müssen noch erraten, wo Die .pc-Datei ist. Der beste Ansatz wird mit der tatsächlichen pkgconfig Anforderung:

$> yum install "pkgconfig(foo)" 

die Anführungszeichen verwenden Sie den Shell zu vermeiden versuchen, die Klammer zu interpretieren.

3

Im Fall von apt-get, wenn Sie einige Software, die über pkg-config, zum Beispiel über dieses fehlende Paket klagt:

 
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 

Dann bedeutet es, dass der configure-Skript sucht die gtk+-2.0 Paket pkgconfig.

Dann, was Sie tun können, ist dies:

 
$ 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 

Das bedeutet, Sie Paket libgtk2.0-dev installieren:

sudo apt-get install libgtk2.0-dev 

Und die Abhängigkeit zufrieden wäre.

Im besonderen Fall der ursprünglichen Frage: (. Dbus-glib-0 scheint zu alt zu sein in meinem System zu zeigen)

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