apt-file – poszukiwacz zaginionych paczek 9


Dziś będzie o bardzo użytecznym programie apt-file. Dobrodziejstwo paczek w Ubuntu/Debianie może stać się przekleństwem, kiedy chcemy zainstalować program w nowszej wersji lub program nie znajdujący się w repozytoriach. Wtedy na pomoc przychodzi standardowa kompilacja. Zdarza się jednak, że pomimo wielkiego wysiłku i starań, zrobienia użytku z apt-cache search i przekopania 3/4 zasobów Internetu, pozostaje tylko bezradnie rozłożyć ręce. Cholerze czegoś wciąż brakuje i uparcie o tym informuje. Właśnie wtedy do akcji wkracza apt-file (;

Ten wpis nie miałby miejsca, gdyby nie publikacja Falko Timme’a na HowtoForgeHow To Search For Missing Packages With apt-file On Debian and Ubuntu. Mój tekst jest jego luźnym tłumaczeniem oraz wyciągiem z własnych doświadczeń (;

1. Hipotetyczna sytuacja

./configure poszło jak z bicza trzasnął, z uśmiechem na ustach można wpisać make (pozwoliłem sobie skrócić output, dłuższą część treści można znaleźć w artykule, którym się posiłkowałem):

~$ make
[…]
-O2 -Wall -pedantic -std=c99 -fno-strict-aliasing -fmessage-length=0 -D_FORTIFY_SOURCE=2 -MT main.o -MD -MP -MF „.deps/main.Tpo” -c -o main.o main.c;
then mv -f „.deps/main.Tpo” „.deps/main.Po”; else rm -f „.deps/main.Tpo”; exit 1; fi
main.c:21:21: error: gtk/gtk.h: No such file or directory
In file included from main.c:25:
awn-gconf.h:69: error: expected â)â before â*â token
In file included from main.c:26:
[…]

Teraz, jak dotrzeć do paczek, które mogą zawierać wymagany plik? Jeśli pod ręką nie ma fusów ani szklanej kuli, trzeba zaprząc do pracy apt-file. Ale skąd go wziąć?

2. Instalacja apt-file

sudo apt-get install apt-file

Po instalacji trzeba wydać jedno polecenie, które w zależności od posiadanego łącza internetowego i zawartości sources.list, może nieco czasu zająć. Dodatkowo, należy pamiętać o jego ponownym wykonaniu, po zmianach wprowadzonych w sources.list.

apt-file update

3. Poszukiwania czas zacząć

Teraz należy dokładniej przyjrzeć się komunikatowi o błędzie. Czego brakuje? error: gtk/gtk.h: No such file or directory. Można więc zacząć poszukiwania od:

apt-file search gtk.h

Ale to zwraca zbyt dużo wyników. Potrzeba konkretów:

apt-file search gtk/gtk.h

W odpowiedzi powinno wyświetlić się coś takiego:

~$ apt-file search gtk/gtk.h
libgfcui-dev: usr/include/gfc-2.0/gfc/gtk/gtk.hh
libgtk+2.0-directfb-dev: usr/include/directfb/gtk-2.0/gtk/gtk.h
libgtk1.2-dev: usr/include/gtk-1.2/gtk/gtk.h
libgtk2.0-dev: usr/include/gtk-2.0/gtk/gtk.h
libgtk2.0-doc: usr/share/doc/libgtk2.0-doc/gtk/gtk.html

Jak widać powyżej, do wyboru są trzy paczki zawierające gtk/gtk.h (jedna zawiera gtk/gtk.hh, druga gtk/gtk.html, które nie są tym, czego szukamy). Właśnie teraz jest moment, w którym należy dokonać właściwego wyboru – który zależy wyłącznie od Ciebie. Jeśli nie wiesz/nie jesteś pewien/pewna, która ma to być paczka, masz dwa rozwiązania:

  1. Zainstalować wszystkie trzy;
  2. Zainstalować jedna po drugiej i metodą prób i błędów odnaleźć tę właściwą.

W przykładowym poszukiwaniu, tę właściwą paczką jest libgtk2.0-dev, więc trzeba ją doinstalować:

sudo apt-get install libgtk2.0-dev

To raz możemy sprawdzić make’iem, czy to już wszystko:

~$ make
[…]
In file included from main.c:28:
awn-app.h:30:29: error: libwnck/libwnck.h: No such file or directory
In file included from main.c:28:
awn-app.h:60: error: expected specifier-qualifier-list before âWnckWindowâ
[…]

Cóż to tym razem? libwnck/libwnck.h? Żaden problem:

apt-file search libwnck/libwnck.h

libwnck-dev: usr/include/libwnck-1.0/libwnck/libwnck.h

Tym razem jedna paczka, więc pozostało tylko ją zainstalować:

sudo apt-get install libwnck-dev

To już wszystko, życzę udanej zabawy (:


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

9 komentarzy do “apt-file – poszukiwacz zaginionych paczek