Jestem użytkownikiem Ubuntu/Debiana (tak, jestem zwolennikiem obydwu systemów) i… zakochałem się w zaawansowanym narzędziu zarządzania pakietami (Advanced Packaging Tool) – szerzej znanym jako apt (słowo apt w tłumaczeniu na język polski to „trafny, zdolny” – przyp. tłum.). Zanim zacząłem używać Ubuntu pływałem w piekle niespełnionych zależności, z takimi dystrybucjami jak Red Hat, Mandrake (jak wtedy się nazywał) a nawet SuSE. Znajdowałem jakiś program, próbowałem zainstalować i najczęściej dowiadywałem się, że jego działanie zależy od innych pakietów. Instalowałem więc te brakujące pakiety i wtedy wychodziło na jaw, że są w konflikcie z nowszymi wersjami oprogramowania. W rzeczy samej – piekło. Kiedy odkryłem sposób w jaki Debian zarządza pakietami oprogramowania dziwiłem się czemu nikt wcześniej mi o nim nie wspomniał. To było jak zbawienie. „Tak się powinno instalować oprogramowanie!” – pomyślałem.
Tym, czego nowy użytkownik w świecie apta uczy się na początku, jest właśnie to, że apt-get jest narzędziem do instalowania oprogramowania w Twoim systemie. W czasie pracy z systemami z rodziny Debiana które używają apta (np. Ubuntu) uczymy się obsługi różnorakich narzędzi:
- apt-get: służy zarówno do instalowania i usuwania pakietów z Twojego systemu, jak również do aktualizacji listy pakietów i samego oprogramowania.
- apt-cache: jest narzędziem do wyszukiwania dostępnych pakietów, ze stworzonej przez użytkownika listy na lokalnej maszynie.
- dpkg: tego narzędzia używamy do administrowania systemem, na przykład do ponownej konfiguracji Xorg.
Jeśli będziesz chciał się zagłębić w system i pogrzebać w nim trochę bardziej to poniżej są narzędzia których obsługi prawdopodobnie nauczysz się najpierw w systemach opartych na Debianie. Ale odpowiedzialność nie spoczywa na mnie. Ty sam musisz zapamiętać i nauczyć się obsługi innych narzędzi (jeśli zamierzasz w większym stopniu administrować swoim systemem). Wśród nich są:
- apt-listbugs: używamy by sprawdzić listę błędów w programie zanim go zainstalujemy.
- apt-listchanges: podobnie jak apt-listbugs; z tą różnicą, że sprawdzamy listę zmian w nowej wersji programu, a nie listę błędów.
- apt-rdepends: narzędzie do sprawdzenia drzewa zależności.
- deborphan: szuka niepotrzebnych już zależności które zostały po usunięciu głównego pakietu.
- debfoster: pomaga deborphanowi zidentyfikować, które zależności pakietów nie są już potrzebne w systemie.
- dselect: interfejs oparty na curses służący do podglądu, zaznaczania i szukania pakietów w systemie.
Jest ich jeszcze więcej: apt-cdrom, apt-config, apt-extracttemplates, apt-ftparchive, apt-key, apt-mark, i apt-sortpkgs.
Jeśli ktokolwiek jeszcze nie zauważył – jest 16 różnych narzędzi, z którymi musisz się zapoznać by zacząć uczyć się o dystrybucjach opartych na Debianie. Nie wiem jak Wy, ale ja sądzę, że „robimy to na opak”. Mam na myśli to, że jeśli używam na przykład OpenSSH do innych rzeczy niż scp, to cała funkcjonalność OpenSSH zawarta jest w jednym narzędziu – ssh. Zatem – czy nie sądzicie, że lepiej by było by cała funkcjonalność apta była w jednym narzędziu – czyli „apt”?
Co więcej, apt-get ma dość duży problem, którym dopiero zajęto się niedawno. Problemem tym jest usuwanie pakietów. Wiemy, że apt-get wykonuje świetną robotę – identyfikuje jakie zależności muszą zostać zainstalowane kiedy żądasz konkretnego pakietu, ale ponosi całkowitą porażkę kiedy chcesz usunąć ten pakiet. Jeśli zależności były wymagane użycie „apt-get autoremove” usunie pakiet, ale zostawi osierocone zależności w systemie. Serwis Psychocats.net na swoich stronach internetowych demonstruje to samo zjawisko na przykładzie pakietu kword. Rozwiązanie? Aptitude.
Ale zanim przejdę dalej chcę powiedzieć, że jestem świadomy istnienia „apt-get autoremove” które ostatecznie jest w stanie zająć się osieroconymi zależnościami. To jest krok we właściwym kierunku, rzecz jasna. Jednakże, apt-get (wraz z wieloma innymi narzędziami ze swojej rodziny) zasługuje jedynie na ocenę dostateczną. Aptitude (z ang. „łatwość, zdolność, predyspozycja” -przyp. tłum.), jak za chwilę zobaczycie, jest jednym narzędziem do wszystkich operacji.
Dzięki aptitude pakiety instaluje się, usuwa, aktualizuje i zarządza nimi w dużo lepszy sposób. Po pierwsze – od chwili powstania aptitude radzi sobie z osieroconymi zależnościami. Po drugie – posiada interfejs curses który zostawia dselect daleko w tyle. Na koniec – i to najważniejsze – wykorzystuje jedno narzędzie które zawiera wiele funkcji. Spójrzmy:
- aptitude: uruchomienie bez żadnych parametrów przywołuje piękny interfejs do szukania, sterowania, instalowania, aktualizowania czy zarządzania w inny sposów pakietów.
- aptitude install: instaluje oprogramowanie w twoim systemie razem z wymaganymi zależnościami.
- aptitude remove: usuwa oprogramowanie razem z osieroconymi zależnościami.
- aptitude purge: usuwa nie tylko oprogramowanie z osieroconymi zależnościami, ale także pliki konfiguracyjne.
- aptitude search: szuka dostępnych pakietów oprogramowania na liście apta na danym komputerze.
- aptitude update: aktualizuje lokalną listę pakietów.
- aptitude upgrade: aktualizuje do nowszej wersji każdy pakiet oprogramowania jaki jest dostępny na liście pakietów.
- aptitude clean: usuwa każdy ściągnięty plik który był wymagany przy instalacji oprogramowania na twoim komputerze.
- aptitude dist-upgrade: aktualizuje oprogramowanie (nawet jeśli wiąże się to z deinstalacją niektórych pakietów).
- aptitude show: pokazuje szczegółowe informacje o danym pakiecie.
- aptitude autoclean: usuwa jedynie przestarzałe pakiety, ale zachowuje aktualne.
- aptitude hold: naprawia pakiet w aktualnej wersji, ale nie aktualizuje go.
Czy widzicie tu pewien model? Jedna komenda z czytelną opcją (żadnych niepotrzebnych flag). A to tylko wierzchołek góry lodowej. Będzie jeszcze lepiej. Kiedy na przykład szukasz pakietu używając aptitude wyniki są układane w porządku alfabetycznym (o rany, potrafisz to sobie wyobrazić?) i wyrównane do szerokości kolumny. Mało tego, program informuje cię które pakiety już są zainstalowane, zamiast wyświetlać na chybił trafił pakiety w jakimś przypadkowym, nieczytelnym formacie, tak jak jest w przypadku apt-cache.
Już o tym wspominałem, ale powtórzę: uruchomienie aptitude bez żadnych opcji przywołuje aplikację opartą o bibliotekę curses do nawigacji w twoim systemie apt. Jeśli ktokolwiek jej używał ten wie, że jest znacznie lepsza od dselect, który zrobiony jest byle jak. Dzięki aptitude szukanie pakietów, ich aktualizowanie, usuwanie, wyświetlanie szczegółów i używanie innych potrzebnych narzędzi stało się prostsze. Jeśli popracujesz 20 minut w konsoli dojdziesz do wniosku, że ta właśnie aplikacja została zrobiona porządnie. Jeśli te 20 minut spędzisz nad dselect rozboli Cię głowa i będziesz zagubiony niczym mysz optyczna na wypolerowanym lustrze.
Aptitude jest ponadprzeciętny w porównaniu do apt-get w każdej kwestii, kształcie, formie. Ma lepsze podejście do zależności. Jest lepszą aplikacją opartą na curses. Posiada lepsze opcje. Jedno narzędzie. Lepsze formatowanie wyników. Można wymieniać bez końca. Na każdym kroku widzę, że ludzie używają apt-get. Na forach, IRCu, w e-mailach króluje apt-get. Trzeba nauczyć naszych braci i siostry odpowiedniego użycia narzędzi i pokazać im postępowy sposób instalacji – aptitude. Używam go od kiedy pierwszy raz się o nim dowiedziałem i będę używał do końca moich dni z Debianem i Ubuntu.
Dziękuję GarfieldTech za inspirację do napisania artykułu.
Wspieraj łatwość. Używaj aptitude.
Autor: Aaron Toponce
udało CI się brachu 😉 zgadnij co ten uczniak od teraz będzie używał w swojej konsoli 😉 pozdrowienia
wszystko okey, ale autor artykułu zapomniał o kluczowej sprawie!!
Niestety, ale „Ten aptitude nie posiada Mocy Super Krowy.”
; )
Ale za to ładnie rysuje słonia zjadanego przez węża 😉
Ja jednak lubię sobie poklikać myszą, więc nie wiem, czy przekonam się do Aptitude’a, chyba jednak zostanę przy Synapticu.
Chyba.
Okej, a jak przez pół roku używałem apt-get’a to teraz mogę przejść na aptitude? nie wywali mi się Debian?
… rola przyzwyczajenia jest tutaj przeogromna, od poczatku uzywalem apt’a i ciezko bedzie mi zmienic (badz co badz) to doskonale narzedzie do zarzadzania pakietami.
jedyna kwestia, ktora moze mnie przekonac do aptitude to ten test z „psychocatsa”, ale to czas pokaze.
btw. ostatnio korzystajac z aptitude (ciekawosc 😉 ) odkrylem ciekawa rzecz, z kazdej aktualizacji jest tworzony log jakie to pakiety zostaly zaktualizowane. teraz rodzi sie pytanie, czy apt ma podobny „system dzialania” ?
btw2. bardzo dobry artykul 🙂
właśnie: a synaptic to wajs ?
apt nie tworzy takich logów jak aptitude, ale jak chcesz sprawdzić co zostało zainstalowane przez apt to wystarczy przejrzyeć logi dpkg tam jest wszystko
Uwielbiam aptitude, a z apt nie korzystam praktycznie nigdy. Są jednak sytuacje wyjątkowe, gdy piekło zależności daje o sobie znać pomimo całej inteligencji aptitude. Wtedy zazwyczaj udaje mi się jakoś rozwiązać problem eksperymentując z różnymi opcjami apt.
[quote comment=”10769″]Okej, a jak przez pół roku używałem apt-get’a to teraz mogę przejść na aptitude? nie wywali mi się Debian?[/quote]
Nie, nie wywali. Aptitude, to w DUŻYM uproszczeniu to samo narzędzie, ale lepiej. Sam system zarządzania pakietami się nie zmienia. Zmienia się tylko linia poleceń.
Zamias pisać:
apt-get install lub apt-cache search
wpisujesz:
aptitude install lub aptitude search
Tak naprawdę, to nic dla Debiana (Ubuntu) się nie zmienia, poza automagiczną obsługą zależności już niepotrzebnych (np. po deinstalacji pakietu, który od nich zależał).
Używam tego od lat. Więcej dowiesz się po: aptitude –help 🙂
I tak wajig bije aptitude na głowę 🙂
http://jakilinux.org/aplikacje/menadzery-pakietow/wajig-wladca-pakietow/
[quote post=”564″]Okej, a jak przez pół roku używałem apt-get’a to teraz mogę przejść na aptitude? nie wywali mi się Debian?[/quote]
Jak jest napisane na: http://debian.linux.pl/viewtopic.php?t=1670
[quote]”Mieszanie apt-get i aptitude
Tak, mieszanie apt-get i aptitude – czy to w ogóle możliwe? Czy to niczemu nie szkodzi? Zdania na ten temat są podzielone. Znajomy deweloper Debina uważa, że nic złego stać się nie może, jeżeli będziemy mieszać te dwa narzędzia. Jednakże praktyka mówi inaczej. Jedni mieszają, drudzy nie. Jednym po mieszaniu, zależności się sypią, innym nie. Więc jak w końcu robić? Otóż, jeżeli jesteś niedoświadczonym użytkownikiem, polecam używać aptitude, a w przypadku wyższej konieczności apt-get. Jeżeli natomiast jesteś już doświadczony, wiesz to i owo i walka z zależnościami nie sprawia Ci większego problemu, to zapewne prędzej czy później spróbujesz mieszać te dwa narzędzia. Ale mówię, jeżeli jesteś niedoświadczony nie rób tego jeżeli nie musisz – jeżeli jednak znasz już trochę Debiana, to rób jak uważasz (uważaj jak robisz!).”[/quote]
wajig sam używam i moim zdaniem jest bezkonkurencyjny. Wcześniej używałem apt-get, ale przerzuciłem się na wajig, dodając do tego graficzną nakładkę to spoko się na nim pracuje.
Witam !
Muszę przyznać świetny artykuł, sam jestem dość swieżym użytkownikiem ubuntu i nawet nie maiłem pojęcia, że istnieje aptitude. Ale chyba zacznę go używać zamiast apt-get, choć apt-get fajnie brzmi i już się przyzwyczaiłem 😛
1. artykuł świetny!!!
2. ostatnio na jakilinux.org pytałem czy apt-get, aptitude mają mechanizm sprawdzania zainstalowanych programów. Teraz widzę, że aptitude ma ;D.
3. aptitude search nie znalazł mi kiedyś paczki a apt-cache tak.
4. Korzystałem kiedyś na Debianie z apt-get i aptitude i tak jak ktoś pisał wyżej, mogą być problemy. Ja miałem- niec strasznego, ale jednak.
Więcej taki artykułów ;]
Używanie tych narzędzi zamiennie nie może spowodować żadnych problemów. Jedyny problem znajduje się między klawiaturą a monitorem.
Aptitude to frontend na apta. Nie zarządza pakietami inaczej niż apt. Aptitude po prostu dodaje nową funkcjonalność w postaci zarządzania pakietami osieroconymi i spaja wszystkie narzędzia apta.
Aptitude poza tym 'potrafi’ rozwiązać problem gdy próbujemy wykonać operacje sprzeczne ze sobą.
apt-get poprostu wyświetli komunikat o błędzie i zakończy pracę:
http://www.cidernet.pl/~ppietryga/apt-1.jpg
aptitude zaproponuje rozwiązanie, poda swoją ocenę rozwiązania i spyta co robić dalej:
http://www.cidernet.pl/~ppietryga/apt-2.jpg
I właśnie wtedy pojawia się problem wspomniany na początku, jeśli podejmiemy złą decyzję, to zaczną nam się sypać zależności. Należy sugerować się oceną (Wynik) aptitude i mniej więcej orientować się co tak na prawdę chcemy zrobić.
Samo mieszanie narzędzi nie może nam zaszkodzić.
Ppietryga, myślę, że jednak problem tkwi w funkcjach tych programów.
O ile dobrze zrozumiałem sposób, w jaki Aptitude decyduje o tym, czy pakiet jest zbędny, to nie zna on zależności w pakietach instalowanych apt-getem i problem z zależnościami zaczyna się w np. takiej oto sytuacji:
Instalujemy apt-getem pakiet X, który wymaga biblioteki libX, apt-get zatem instaluje także libX.
Następnie instalujemy aptitude’m pakiet Y, który także wymaga libX. Aptitude zapamiętuje tę zależność.
Y nam się znudził, więc go odinstalowujemy, znów używając aptitude. Aptitude uznaje, że libX był wykorzystywany tylko przez Y, gdyż nie zna zależności X. Odinstalowuje libX jako niepotrzebny pakiet (choć X go wymaga) i witamy w piekle zależności 🙂
Zrozumiałe?
Ale nie jestem pewien, czy dobrze zrozumiałem działanie aptitude. Nie używam go.
Prawda jest taka, że aptitude to następca apt-get. Posiada funkcje apt-get interfejs konsolowy lepsze zarządzanie zależnościami.
http://www.debian.org/releases/stable/i386/release-notes/ch-whats-new.pl.html#s-pkgmgmt
@Todu: Aptitude to: „apt frontend”. Czyli „nakładka” na system zarządzania pakietami.
http://pl.wikipedia.org/wiki/APT
🙂
apt-get, aptitude, synaptic, kynaptic, adept używają tej samej bazy dostepnych i zainstalowanych pakietów. Mają te same wiadomości o zależnościach (aptitude potrafi dodatkowo doinstalować automatycznie, tak jak np. synaptic, paczki zalecane), bo to autor/twórca pakietu decyduje jakie są zależności, a nie system.
I żaden program nie usunie pakietu, od którego zależy pakiet, którego zamierzamy usuwać, chyba że użyjesz:
dpkg –force-depends.
s/którego zamierzamy/którego nie zamierzamy/
🙂
Co do usuwania zależności, to aptitude nie usunie automatycznie wszystkich – zawsze w systemie zostanie pół tony śmiecia ~~
[quote post=”564″]Mają te same wiadomości o zależnościach (aptitude potrafi dodatkowo doinstalować automatycznie, tak jak np. synaptic, paczki zalecane), bo to autor/twórca pakietu decyduje jakie są zależności, a nie system.[/quote]
Właściwie, to zastanawiałem się, czy aptitude nie sprawdza informacji o zależnościach w locie, program po progamie (dlatego napisałem „O ile dobrze zrozumiałem sposób, w jaki Aptitude decyduje o tym, czy pakiet jest zbędny […]”), jednak na http://debian.linux.pl/viewtopic.php?t=1670 stoi jak byk napisane:[quote post=”564″]Co różni aptitude i APT? […] aptitude zapamiętuje instalowane zależności – co jest bardzo ważne jeżeli chcemy zachować porządek w systemie. Otóż, za każdym razem jak instalujesz jakieś pakiety, czy to przez apt, czy aptitude zawsze są potrzebne jakieś zależności, które są wtedy automatycznie instalowane. Niestety, tak się przykro złożyło, że apt-get nie zapamiętuje instalowanych zależności. To znaczy, że jeżeli przez apt-get zainstalujesz pakiet kde to zostanie zainstalowane 200 innych pakietów. Jednakże już przy próbie odinstalowania pakietu kde nie zostaną odinstalowane wszystkie zależności. Tak więc możemy sobie niezłego bałaganu narobić postępując w ten sposób. Z pomocą przychodzi aptitude, które zapamiętuje te zależności. Instalując pakiet kde przez aptitude i przy próbie jego odinstalowania, zostaną usunięte także zależności […].[/quote]
Uznałem więc, że aptitude zapamiętuje zależności instalowanych pakietów, a nie sprawdza za każdym razem wszystkie zainstalowane pakiety pod kątem zależności. Nie używam aptitude’a, nie zagłębiałem się w działanie APT-a, więc po prostu wierzę w to, co inni napiszą.
Mam wrazenie ze apt-get dziala szybciej niz aptitude.
W sumie aptitude wygodniejsze ale przyzwyczajenie robi swoje.
Z tego co widzę aptitude w większości przypadków instaluje więcej paczek niż apt-get. Wygląda to tak, jakby aptitude zamiast wymaganych zależności instalowało także pakiety sugerowane. Tutaj np.
http://viedzma.jogger.pl/2007/06/13/ubuntu/
Ktoś wie jak to wyłączyć?
W podręczniku aptitude jest taka informacja o instalowaniu pakierów zalecanych i sugerowanych:
————
–with-recommends, –with-suggests
Powodują traktowanie odpowiednio rekomendacji i sugestii jako zależności przy instalowaniu nowych pakietów. (Mają pierwszeństwo nad ustawieniami w /etc/apt/apt.conf i ~/.aptitude/config.)
W pliku konfiguracyjnym: Aptitude::Recommends-Important, Aptitude::Suggests-Important
–without-recommends, –without-suggests
Wyłączają traktowanie odpowiednio rekomendacji i sugestii jako zależności przy instalowaniu nowych pakietów.
————
@ Todu
„Niestety, tak się przykro złożyło, że apt-get nie zapamiętuje instalowanych zależności.”
Dziwne bo mi w ubuntu apt po wydaniu komendy
sudo apt-get autoremove pakiet
Usuwał pakiet wraz z tymi zależnościami z którymi był instalowany. Nie wiem czy różnica jest tu taka że apt zapamiętuje zależności tylko na jakiś czas…
Dzięki za bardzo dobry tekst. Jestem równie zachwycony działaniem aptitude. To jest to.
Sam przez dłuższy czas używałem aptitude, więc opiszę moje doświadczenia z nim.
Od kiedy tylko zacząłem używać Debiana, przeczytałem na forum, że lepiej jest używać aptitude. I w rzeczy samej, używałem i na początku wydawał się w porządku. Po jakimś czasie okazało się, że z powodu niespełnionych zależności, aptitude chciał usunąć mi całe KDE (!). Co prawda w tym czasie używałem gałęzi Sid, ale apt-get aż taki „brutalny” nie był pod tym względem.
Pomyślałem sobie, że te problemy są najprawdopodobniej spowodowane dystrybucją niestabilną, więc zainstalowałem wersję testową. I co się okazało? Nie mam pojęcia jak to jest możliwe, ale wyglądało to w ten sposób, jakby aptitude korzystał z innej bazy oprogramowania. To, co rzuciło mi się w oczy, to wersja 2.0.0.3 icewesel, zaś jak korzystałem z apt-get, była… 2.0.0.6 (przez dłuższy czas tak było, obecnie od tygodnia testuję Ubuntu, więc nie wiem, czy to już poprawiono). Sporo razy zdarzało mi się, że aptitude chciał mi, jako rozwiązanie problemów z zależnościami, usuwać wiele potrzebnych pakietów (nawet w linii Lenny).
Ogólnie jednak nie mam zbyt dobrych wrażeń z używania aptitude i pomimo że apt-get nie usuwa zależności przy odinstalowywaniu jakiegoś programu, wydaje mi się, że apt-get nie robi takiego śmietnika i działa bardziej łagodnie.
W sumie podoba mi się idea aptitude, ale jednak nie jest chyba jeszcze zbyt dopracowany i póki nie zmieni się to (chodzi mi o to co wyżej napisałem), pozostanę na razie przy apt-get.
Pingback: Przydatne polecenia linuksowe « Paweł R.
Ale apt posiada Moc Super Krowy, aptitude nie 😛
Pingback: Uwaga apt-get dist-upgrade !!! | Info software
Z tego co zauważyłem wszystko zależy od użytkownika. APT jest dobry dla doświadczonego usera, który z góry wie, których pakietów potrzebuje a których nie. Wtedy zależności dla takiego użytkownika na jego prywatnym komputerze nie mają znaczenia (znaczenie ma kwestia bezpieczeństwa a dlaczego to sami się domyślcie) Dla początkującego użytkownika bądź testera różnych paczek najlepsze będzie narzędzie APTITUDE – wtedy nie musi martwić zależnościami.
Jako początkujący użytkownik (kilka dni temu przerzuciłem się z Windowsa) znalazłem sobie skrypcik, w którym zamiast komendy
sudo aptitude install
wystarczy wpisać
install
Gdy się poduczę i uznam to za stosowne po prostu podmienię komendę aptitude na apt. Dopóki nie znam pakietów z których będę najczęściej korzystał testuję coraz to nowe paczki. Do tego czasu aptitude sam zarządza mi zależnościami.
Co za dziecinnie i bez jakiejkolwiek formy napisany (przepisany) artykuł.
Do tego bez żadnej logicznej argumentacji na korzyść lub nie korzyść
swojej tezy.
[quote comment=”46404″]Co za dziecinnie i bez jakiejkolwiek formy napisany (przepisany) artykuł.
Do tego bez żadnej logicznej argumentacji na korzyść lub nie korzyść
swojej tezy.[/quote]
Cieszy mnie taka postawa – czekamy na lepszy!
Ja na Debianie zawsze korzystam z dselecta – jakoś przyzwyczaiłem się do niego od pierwszych instalacji Debiana 🙂
Do instalacji pakietów apt-get, do całej reszty aptitude, dlaczego? Ano dlatego, że parametr -V w apt-get robi dobrze moim oczom 🙂
Bardzo fajny artykuł. Wraz z komentarzami odpowiedział na moje pytanie jak się ma aptitude to apt-*.
Dzięki za bardzo pożyteczne informacje. Używam LMDE i jestem newbie w linie, więc jak dla mnie od dziś apttitude. Liczę, że przestaną przewracać mi się programy które testuję. 🙂