pakiety

Aptitude – kilka podpowiedzi


Czasem należy wykonać kilka bardziej złożonych operacji przy pomocy aptitude. Pełną pomoc do aptitude można znaleźć w podręczniku użytkownika aptitude, jednak zdarzają się przypadki, kiedy nie ma czasu zgłębiać dokumentacji. W niniejszym wpisie zamieszczam kika zastosowań aptitude w przypadkach, z którymi się zetknąłem lub sam miałem do czynienia.

Wyszukiwanie pakietów po nazwie i opisie:

% aptitude search "?or(~nnetwork, ~dnetwork)"

Polecenie wyszuka wszystkie pakiety, które w opisie bądź w nazwie zawierają słowo network.

Wyszukiwanie pakietów zainstalowanych z danego archiwum.

Wyszukiwanie pakietów np. z archiwum experimental i wyświetlenie samych nazw pakietów, np. w celu użycia jako argument dla innego polecenia.

% aptitude aptitude search ~i~Aexperimental -F "%p"

Zmiana zaznaczenia pakietów z automatycznie instalowanych na ręcznie instalowane.

Kiedy instalujemy pakiet przy pomocy aptitude, pakiety zależne są instalowane automatycznie poprzez zależności. Takie automatycznie zainstalowane pakiety są zaznaczanie prze menadżera pakietów jako A – instalowane automatycznie. Czasem przy usuwaniu pakietu, takie zależności również są usuwane, gdyż zostały automatycznie zainstalowane. Czasem jest to zachowanie niepożądane w stosunku do niektórych pakietów, np. takich które chcemy jednak zostawić. Podczas odinstalowywania pakietu widzimy, które pakiety będą automatycznie odinstalowane. Należy przerwać proces i wszystkim pakietom, które chcemy zostawić usunąć flagę A – auto.

# aptitude unmarkauto pakiet1 pakiet2

Można użyć wyników wyszukiwania jako argumentów polecenia, np. gdy chcemy usunąć metapakiet kde4, ale nie usuwać całego kde4

# aptitude unmarkauto `apt-cache depends kde4 | awk '{if ($1=="Depends:") print $2}'`

Następnie można usunąć metapakiet kde4 po to aby spokojnie usunąć tę część kde, której nie używamy, np. kdegames.

# aptitude remove kdegames

Wyszukiwanie pakietów z zepsutymi zależnościami (broken dependencies) i ich naprawa.

% aptitude search ~i~b

Załóżmy, że to pakiet mplayer-nogui ma złamane zależności:

iBA mplayer-nogui – The Ultimate Movie Player For Linux

Szukamy teraz pakietu, z którym jest problem:

#aptitude search `apt-cache depends mplayer-nogui | awk '{if ($1=="Depends:") print $2}'`

Pakiety, które (w moim przypadku) są interesujące to libxvmc1 oraz libxv1.

idA libxv1 – X11 Video extension library
iBA libxvmc1 – X11 Video extension library

Problem polegał na tym, że pakiet libxv1 był zaznaczony do usunięcia – flaga d. Wystarczyło polecenie:

# aptitude install libxv1

Blokada aktualizacji danego pakietu.

# aptitude hold pakiet

Usuwanie wszystkich pakietów należących do danej sekcji.

Załóżmy, że przestaliśmy lubić kde i chcemy znaleźć każdy zainstalowany program z sekcji kde, aby pozbyć się kde raz na zawsze. Następnie użyć listy do usunięcia kde. 😉

% aptitude search ~skde | egrep "^i" | awk '{ if($2 ~/A/){ print $3} else print $2}'

# aptitude purge `aptitude search ~skde | egrep "^i" | awk '{ if($2 ~/A/){ print $3} else print $2}'`

Brak pliku przy kompilacji programu.

Jak sobie poradzić? Nie jest to trudne, ale nie zawsze rozwiązuje problem, ze względu na różne czynniki.

# apt-file search usr/lib/gcc/i486-linux-gnu/4.2/include/limits.h | awk -F ':' '{print $1}' | xargs aptitude install

Program apt-file musi być zainstalowany i jego baza zaktualizowana (apt-file update)

Usuwanie plików pozostałych po odinstalowanych pakietach.

# COLUMNS=140 dpkg -l|grep ^rc|awk {'print $2'}|xargs dpkg -P

lub

aptitude purge `aptitude search ~c -F %p`

Można by było przywołać więcej niestandardowych zastosowań aptitude i innych narzędzi do zarządzania pakietami. Po więcej zapraszam do poczytania podręcznika do aptitude. Dwa istotnie linki z tego podręcznika:

By grzeszy on Luty 2, 2009 | Administrowanie, Linux | A comment?
Tagi: , , ,