apt-file - poszukiwacz zaginionych paczek

Dziś będzie o bardzo użytecznych 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 (;

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 - po więcej odsyłam na koniec wpisu):

~$ 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

4. A co na to Wajig?

Na koniec ciekawostka. Ponieważ opisałem jakiś czas temu władcę pakietów, Wajiga i używam go sobie na co dzień, to chciałbym nadmienić, że on także potrafi wyszukiwać pliki. Oczywiście, aby posiadł tę umiejętność, niezbędne jest wcześniejsze zainstalowanie apt-file. Jak to zrobić? Przedstawię na przykładzie. Ostatni poszukiwany plik - libwnck/libwnck.h:

wajig find-file libwnck/libwnck.h

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

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

Ten wpis nie miałby miejsca, gdyby nie publikacja Falko Timme’a na HowtoForge - How 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ń (;

Linki:
Oficjalna strona Wajiga
Krótki opis Wajiga
Opis programu, instalacji oraz podstawowych funkcji w serwisie DebianUsers.pl

6 odpowiedzi do “apt-file - poszukiwacz zaginionych paczek”


  1. 1 tolo

    Dobrze wiedzieć, że takie coś istnieje :)

    [Odpowiedz]

  2. 2 byte

    Warto dodać, że bez instalowania czegokolwiek można przeszukać zawartość pakietów w repozytoriach dystrybucyjnych via http://WWW.

    http://packages.ubuntu.com/

    sekcja “Search the contents of packages”.

    [Odpowiedz]

  3. 3 POX

    Tak, apt-file to bardzo pożyteczne narzędzie. Często korzystam też z “apt-file show PACZKA” (taki “dpkg -L” ale dla niezainstalowanych paczek)

    BTW: apt-file pojawił się nawet niedawno na Debaday

    [Odpowiedz]

  4. 4 Hadret

    @tolo: cieszę się, że się przydało (:
    @byte i @POX: dzięki za linki i dodatkowe info. Pozwolę je sobie wykorzystać w Czytelni (:

    [Odpowiedz]

  5. 5 POX

    BTW: radzę też sprawdzić dlocate - błyskawica w porównaniu do apt-file.

    [Odpowiedz]

  6. 6 Hadret

    @POX: dlocate jest faktycznie szybkie, ale nie zawsze działa tak dokładnie jak apt-file, dlatego skłaniałbym się bardziej do używania go jako uzupełnienia (:

    [Odpowiedz]

Zostaw odpowiedź




Creative Commons 2005 - 2008 Hadret
Temat Pinky1.0 by Hadret

Napędzane przez WordPress i K2
Niektóre ikony by: FastIcon.com