Bądź: Wyszukaj na stronie z użyciem Google
reklama:

wtorek, 25 listopada 2008

Aptitude - coś więcej niż apt-get?

Autor: , 16:50, wtorek, 25 listopada 2008


Hmm, aptitude - program, o którym każdy słyszał, ale czy na pewno? Ja dowiedziałem się o nim po ponad roku mniej lub bardziej aktywnego interesowania się Linuksem. Wikipedia podaje, iż aptitude to front-end APT-a (ang. Advanced Packaging Tool), który jest w najprostszym stwierdzeniu managerem pakietów. Front-end to nic innego jak nakładka zapewniająca interfejs tekstowy lub graficzny (w aptitude mamy obydwa, choć ten graficzny powinniśmy nazwać raczej quasi-graficznym) dla aplikacji konsolowych, czyli dla tzw. back-endu. Ważną informacją będzie tu również to, że APT sensu stricto to nie program, a biblioteka C++, z której korzystają inne programy, takie jak: apt-get, apt-cache, tytułowy aptitude oraz wiele innych.

Jak już wspomniałem, aptitude posiada interfejs tekstowy, jak i quasi-graficzny. Interfejs tekstowy to nic innego jak wpisywanie odpowiednich komend, które są bardzo podobne do tych znanych z apt-geta czy apt-searcha. Nie będę się tu rozpisywał, bo na pewno każdy umie wpisać w konsoli "man aptitude". Nadmienię tylko, iż w przypadku aptitude nie musimy się zastanawiać, czy to ma być "apt-get search" czy "apt-cache search", bo aptitude to jedno narzędzie, jeden program, w których wystarczy wpisać po prostu "aptitude search". Aptitude łączy w sobie funkcjonalność kilku innych narzędzi, co jest jego bardzo dużą zaletą , gdyż wystarczy, że przeanalizujemy jeden manual i wiemy wszystko (lub prawie wszystko;-). Oczywiście ktoś mógłby stwierdzić, że on korzysta z apt-geta tylko w postaci "apt-get install nazwa_pakietu" i "apt-get remove nazwa_pakiet", to po co ma się uczyć kolejnego polecenia "aptitude install nazwa_pakietu" i "aptitude remove nazwa_pakiet". I tu wychodzi kolejna zaleta aptitude. Jeśli chodzi o sam proces instalacji pakietów, to i tu i tu wygląda to tak samo, tzn. instalowany jest wskazany pakiet wraz ze wszystkimi zależnościami, których potrzebuje. Ale co, jeśli chcielibyśmy odinstalować taki pakiet, podczas instalacji którego zostało dodatkowo ściągnięte i zainstalowane 100 MB innych pakietów? Apt-get nic z nimi nie zrobi. Aptitude je usunie, o ile nie będą one potrzebne innej aplikacji oraz o ile nie zapomnieliśmy zainstalować tego "dysko-zasobo-żernego" pakietu za pomocą aptitude. Tak, tak, jeśli chcemy, aby to inteligentne odinstalowywanie zadziałało, to pakiet musi być zainstalowany uprzednio przez aptitude. Myśl nasuwa się więc sama - używaj aptitude od samego początku nowo zainstalowanego Ubuntu, a to pozwoli Ci utrzymać porządek na dysku.
Jakie jeszcze zalety? Próbowaliście używać polecenia "apt-cache search"? Otrzymaliście wyświetlone na konsoli chaotyczne wyniki? Jeśli tak i nie podobało się to Wam, spróbujcie polecenia "aptitude search". Wyniki ładnie sformatowane, ułożone ALFABETYCZNIE, z informacją, czy dane pakiety są już w systemie czy też nie. Bez porównania!

Kolejną cechą, która powoduje, że aptitude jest lepszy niż inne programy trybu tekstowego, jest jego interfejs oparty na bibliotece ncurses, czyli na tej samej, na której bazuje Midnight Commander. Nie jest to taki typowy interfejs graficzny, jak w przypadku Synaptica, ale jest to "konsolowy" interfejs graficzny. Ukaże on nam się po wstukaniu polecenia "aptitude". No cóż, nic wyszukanego w dobie dzisiejszych wspaniałych GUI. Może i nie, ale tak naprawdę mamy wszystko, czego nam trzeba. U góry belka z rozwijanymi menu, niżej belka z kilkoma skrótami klawiaturowymi, jeszcze niżej struktura katalogowa wszystkich pakietów i na samym dole opis zaznaczonego w danej chwili pakietu. Po pakietach poruszamy się strzałkami, enterem rozwijając to, co jest w podkatalogach.


Z innych skrótów warto wymienić:

  • + zaznacza pakiet do instalacji lub uaktualnienia,
  • - zaznacza pakiet do usunięcia,
  • _ zaznacza pakiet do usunięcia wraz z plikami konfiguracyjnymi (tzw. purge),
  • L zaznacza pakiet do powtórnego zainstalowania
  • u uaktualnia listę dostępnych pakietów
  • U zaznacza wszystkie pliki, które mogą zostać uaktualnione
  • Control-u cofa ostatnią akcję lub grupę akcji
  • / po wprowadzeniu napisu wyszukuje pakiety (potem n-wyszuka następne do przodu, a N-wyszuka następne do tyłu)
  • ? wyświetla pomoc
  • g wykonuje zaplanowane akcje, tzn. instaluje, uaktualnia, usuwa pakiety
  • q wychodzi z programu bez zapisywania zmian
  • Control-t pozwala nawigować po górnym menu
Według mnie, bardzo szybko można nauczyć się tych kilku podstawowych skrótów, które znacznie ułatwią nam pracę.
Aptitude w tym trybie możemy odpalić bez praw roota (np. gdy zapomnimy o „sudo”) i dopiero po wykonaniu pewnych akcji przejść do górnego menu i z zakładki "Akcje" wybrać "Administrator".

Ktoś mógłby zapytać, po co komu taki prymitywny interfejs, skoro można odpalić sobie Synaptica i mieć to wszystko, a nawet więcej i to ładnie wyglądające. Jeżeli masz kupę RAM-u w swoim komputerze, to pewnie taki sposób jest lepszy, bo wygodniejszy i ładniejszy, ale trzeba wiedzieć, iż Synaptic na dzień dobry zżera 20 MB pamięci RAM i ponadto (co mnie osobiście bardzo denerwuje) ma tendencję do długiego namysłu podczas samego uruchamiania oraz używania funkcji "Szukaj". Jeżeli ktoś ma starszy komputer z małą ilością RAM-u i słabszym procesorem to polecałbym jednak aptitude. Co może ważniejsze to to, że Synaptic nie śledzi zależności, czyli jeżeli chcesz odinstalować dany pakiet, to odinstalujesz tylko ten konkretny, ale nie te, które zostały zainstalowany razem z nim. No i w Synapticu nie pogramy w Sapera, a w aptitude tak ;-) Górne menu => Zakładka Akcje => Saper.


Być może zainteresuje was informacja, że Daniel Burrows w najnowszej wersji 0.5.0 (alpha) aptitude wprowadził typowy interfejs graficzny (http://algebraicthunk.net/~dburrows/projects/aptitude/news/aptitude-0.5.0-release-notes/).
Projekt zatem cały czas żyje, jest rozwijany i wkracza na nowe terytoria aplikacji wyposażonych w GUI.

Nie wiem jak wy, ale ja już przekonałem się do aptitude i zamierzam go używać. Wy też spróbujcie!

autor: Maciej Szczęsny mszonline *at* gmail.com

Tagi:

Komentarze 13 comments
Kacper86 pisze...

Ciesze sie, ze pojawil sie artykul a aptitude. Tylko czesc ludzi o nim wie, a jest z pewnoscia ciekawszym rozwiazaniem niz apt-get.

rozie pisze...

No to proponuję zainteresować się jeszcze wajig - pythonowa nakładka na apt-get i dpkg. Znacznie wygodniejsza od apta i dużo możliwości "zewnętrznych", że tak powiem.

Anonimowy pisze...

Właśnie skończyłem czytać Biblie Ubuntu i te zalety aptitude zostały tam przedstawione. Teraz żałuje ze nie używałem od początku aptitude ale na szczęście nie dużo instalowałem oprogramowania. Z tego co również było tam napisane (nie wiem czy to prawda, bo jestem świeżakiem) to aptitude nie ma tego co apt-get mianowicie dist-upgrade, a aptitude lepiej obsługuje zależności.

Szczęsny Maciej pisze...

Wprawdzie istnieje polecenie: aptitude dist-upgrade, ale rzeczywiście nie działa najlepiej, co można zaobserwować na różnych forach krajowych i zagranicznych. Ja jeszcze nie próbowałem w ten sposób upgrade'ować systemu ...

marcinsud pisze...

s chce wywalic apt-getem zależności to jest na to tez sposób

sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get clean

usunie to tez z dysku paczki deb które zostały użyte do aktualizacji systemu bądź instalacji nowych programów,a jeszcze znajdują się na dysku. Jeśli te polecenia chciałyby usunąć jakiś pakiet nam potrzebny trzeba w synapticu odznaczyć przy nim "zainstalowany automatycznie" i będzie git

Szczęsny Maciej pisze...

Zdarzało mi się, iż "apt-get autoremove" nie usuwał wszystkiego co powinien, ale na pewno samo polecenie to dobry krok w kierunku rozwoju apt-geta.

AdamK pisze...

Z ciekawszych kombinacji klawiszy: Control-c - historia pakietu

Kaml pisze...

Z tego co mi wiadomo Aptitude to nie jest nakładka na apta tylko na dpkg

Szczęsny Maciej pisze...

Na stronie Daniela Burrowsa czytamy: "aptitude is a terminal-based package manager for Unix-like operating systems that use the APT suite for package management" - czyli aptitude korzysta z APTa.

Anonimowy pisze...

Ja używam aptitude do robienia downgrade pakietów, pożyteczne gdy się używa backportów i nowe wersje pakietów czasami nie działają.

Kamil pisze...

Główny argument za używaniem aptitude - tj. lepsze radzenie sobie z paczkami instalowanymi w celu spełnienia zależności był aktualny i miał rację bytu ale się zdezaktualizował kiedy do apt-get doposożono w opcję "autoremove".
A już trochę minęło odkąd ją dodano - w przypadku ubuntu opcja ta pojawiła się wraz z wersją 6.10.
Dziwi mnie że nadal w tego typu porównaniach przeważa się szalę funkcjonalności za pomocą tego argumentu na stronę aptitude.

Plichu pisze...

A synaptic i manager aktuaizacji opiera się na apt-get czy aptitude?

Szczęsny Maciej pisze...

Synaptic działa jak apt-get, tj. dociąga potrzebne zależności do danego pakietu, ale przy jego deinstalacji już ich nie usuwa.

Prześlij komentarz


Popularne posty

Etykiety