2013-08-27 38 views
5

Wiele plików Makefile używa pkg-config, ale nazwy nie odnoszą się do menedżerów pakietów (np. Yum/apt). Jak mapować im nazwy pkg-config? czy jest jakaś sztuczka?jak mapować nazwy pkg-config na yum/apt-get

Przykład: jeśli robię yum searchName - przejrzeć nazwy i zbliżenie do pkg-config nazwa użytkownika

Wynik:

$ 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 

Odpowiedz

1

pliki pkg-config są zazwyczaj dostarczane przez pakiet -devel tak w większości przypadków foo.pc jest dostarczane przez libfoo-devel. To jeszcze domysły, ale istnieją dwa skróty:

Instalacja wg nazwy ścieżki, jeśli wiesz, gdzie plik .pc skończy się

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

że działa dla każdego pliku, ale nadal trzeba odgadnąć, gdzie plik .pc jest. Najlepszym podejściem jest użycie rzeczywistego wymagania pkgconfig:

$> yum install "pkgconfig(foo)" 

Należy użyć cudzysłowu, aby uniknąć interpretacji nawiasu przez powłokę.

3

W przypadku apt-get, jeśli masz jakieś oprogramowanie, które narzeka na temat tego brakującego pakietu poprzez pkg-config, na przykład:

 
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 

oznacza to, że skrypt configure szuka dla gtk+-2.0 Pakiet pkgconfig.

Następnie, co można zrobić, to w ten sposób:

 
$ 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 

Czyli można Zainstaluj pakiet libgtk2.0-dev:

sudo apt-get install libgtk2.0-dev 

A zależność będzie zadowolony.

W szczególnym przypadku pierwotnego pytania: (. Dbus-glib-0 wydaje się być zbyt stary, aby pokazać się w moim systemie)

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