Jaka jest prawdziwa różnica między “ apt-get ” a “ aptitude ”? (A może “ wajig ”?)

Wiem że zarówno apt-get, jak i aptitude są interfejsami zarządzania pakietami wiersza poleceń w Linuksie pochodnym Debiana, z różnymi opcjami, ale nadal jestem nieco zdezorientowany. Pod maską, czy nie używają tego samego systemu APT?

Dlaczego Debian utrzymuje te równoległe narzędzia? (Pytanie dodatkowe: czym u licha jest wajig ?)

Komentarze

  • Wiem, że to nie jest właściwa odpowiedź na twoje pytanie, ale dlaczego nie możesz spróbować synaptic? bardzo przyjazny użytkownikowi i automatycznie pobiera i instaluje zależności. Czy gnom nie jest obecny w Twoim systemie?
  • Mam ' m stronniczość, ale myślę, że to pytanie na witryna Ubuntu SE może być odpowiednia.
  • duplicate: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
  • @Wim ze względu na wajigową część tego pytania, zdecydowałem się 244 połączyć z tym pytaniem zamiast na odwrót
  • Warto zauważyć, że umiejętność jest zaplanowana do usunięcia z domyślnej instalacji w następnej wersji Ubuntu (chociaż zawsze możesz zainstalować ją później za pomocą apt-get)

Odpowiedź

Najbardziej oczywistą różnicą jest to, że aptitude udostępnia interfejs menu terminala (podobnie jak Synaptic w terminalu), podczas gdy apt-get nie.

Biorąc pod uwagę tylko interfejsy wiersza poleceń każdego z nich, są one dość podobne i przeważnie nie ma znaczenia, którego używasz. Najnowsze wersje obu będą śledzić, które pakiety zostały zainstalowane ręcznie, a które zostały zainstalowane jako zależności (i dlatego kwalifikują się do automatycznego usuwania). W rzeczywistości uważam, że jeszcze niedawno te dwa narzędzia zostały zaktualizowane, aby faktycznie współdzielić tę samą bazę danych pakietów instalowanych ręcznie i automatycznie, więc przypadki, w których instalujesz coś za pomocą apt-get, a następnie aptitude chce odinstalować to, są głównie kwestią przeszłość.

Jest kilka drobnych różnic:

  • aptitude automatycznie usunie odpowiednie pakiety, podczas gdy apt-get wymaga do tego osobnego polecenia
  • polecenia dla upgrade vs. dist-upgrade zostały przemianowane w aptitude na prawdopodobnie bardziej dokładne nazwy safe-upgrade i full-upgrade odpowiednio.
  • aptitude w rzeczywistości pełni funkcje nie tylko apt-get, ale także niektórych narzędzi towarzyszących, takich jak apt-cache i apt-mark.
  • aptitude ma nieco inną składnię zapytań do wyszukiwania (w porównaniu do apt-cache)
  • aptitude ma polecenia dlaczego i dlaczego nie , które mogą Ci powiedzieć które ręcznie zainstalowane pakiety uniemożliwiają wykonanie akcji.
  • Jeśli działania (instalowanie, usuwanie, aktualizowanie pakietów), które chcesz wykonać, powodują konflikty, aptitude może zaproponuj kilka potencjalnych rozwiązań. apt-get powie po prostu „Przepraszam Dave, nie mogę ci na to pozwolić”.

Są inne drobne różnice, ale to są najważniejsze, może wymyślić.

Krótko mówiąc, aptitude bardziej właściwie należy do kategorii z Synaptic i innymi nakładkami do menedżerów pakietów wyższego poziomu. Tak się składa, że ma również interfejs wiersza poleceń, który przypomina apt-get.

Runda bonusowa: co to jest wajig?

Pamiętasz, jak wspomniałem o tych narzędziach „towarzyszących”, takich jak apt- pamięć podręczna i apt-mark? Cóż, jest ich kilka i jeśli używasz ich często, możesz nie pamiętać, które z nich zapewniają jakie polecenia. Wajig jest jednym z rozwiązań tego problemu. Jest to w zasadzie dyspozytor, owijka wokół wszystkich tych narzędzi. w razie potrzeby stosuje również sudo. Gdy powiesz wajig install foo, wajig powie „Ok, install jest dostarczane przez apt-get i wymaga uprawnień administratora ”i działa sudo apt-get install foo. Kiedy powiesz wajig search foo, wajig powie„ OK, search jest udostępniany przez apt-cache i nie wymaga uprawnień administratora „i działa apt-cache search foo. Jeśli użyj wajig zamiast apt-get, apt-mark, apt-cache i innych, wtedy „nigdy nie będziesz mieć tego problemu:

$ apt-get search foo E: Invalid operation search 

Jeśli chcesz wie, co wajig robi za kulisami, jakich narzędzi używa do implementacji danego polecenia, ma --simulate i --teaching m odes.

Dwa polecenia wajig, których często używam, to wajig listfiles foo i wajig whichpkg /usr/bin/foo.

Komentarze

  • Jednym dużym problemem, który miałem z aptitude, jest to, że uzupełnienie tabulatorów nazw pakietów zajmuje dużo czasu (np. aptitude install linux-im tab), podczas gdy jest bardzo szybki dla apt-get. Wygląda na to, że w rodzinie apt-get brakuje pamięci podręcznej, której brakuje aptitude.
  • aptitude mają również niesamowite aptitude search, którego można używać z bardzo wydajnymi wzorcami wyszukiwania . Masz aptitude reinstall. Możesz także użyć interfejsu ncurses (menu terminala) do przygotowania złożonych operacji na pakietach , takich jak częściowa aktualizacja, usunięcie jednego pakietu, zamrożenie innego, zaktualizowanie tego, które możesz następnie wykonać w jednym operacja … Aha, i ma interaktywny rozwiązywanie konfliktów .
  • @Totor, święta krowa, używając aptitude ' Interfejs ncurses do przygotowywania poleceń właśnie sprzedał mi aptitude raz na zawsze! (po latach warto się zastanowić nad aptitude, ale wpisanie apt-get z pamięci mięśniowej)
  • … a aptitude ma również aptitude download package-name aby pobrać plik .deb pakietu!
  • To ' to tylko jedna rzecz, którą znalazłem, a nie ' t w aptitude, ale są w apt-get, czyli apt-get --compile source package-name . apt-get build-dep package-name istnieją, ale myślę, że aptitude build-dep package-name radzą sobie lepiej.

Odpowiedź

Często się zastanawiałem. Wikipedia podkreśla , że główną cechą wyróżniającą jest to, że umiejętność ma pełnoekranowy interfejs w trybie tekstowym (curses). Fakt, że możesz używać większości argumentów poleceń apt-get z samym aptitude jest tylko decyzją projektową aby ułatwić użytkownikom apt-get przejście do aptitude i odwrotnie.

Nigdy nie używałem wajig, ale dokumentacja sugeruje, że jest to tylko skrypt, który wie, czy przekazujesz mu plik deb (po uruchomieniu dpkg) lub nazwa pakietu apt (jeśli zamiast tego działa apt-get). Czy możesz go wypróbować i zobaczyć, czy to właśnie robi?

Oczywiście prawdziwa różnica jest taka:

gaurav@fern:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"... gaurav@fern:~$ aptitude moo There are no Easter Eggs in this program. 

Komentarze

  • Nie! aptitude ma więcej. Zapomniałeś umieścić nieskończone flagi -v w moo. (Możesz przejść do -vvvvvv)
  • Nie ' nie zapomnij o wszystkich ważnych mocach Super Cow, które apt-get ma, ale aptitude nie. (Wypróbuj --help na obu)
  • lmao. to fajna odpowiedź do przeczytania, mimo że odpowiedź @ryan ' jest dużo bardziej rozbudowana;)

Odpowiedź

aptitude jest preferowanym programem do zarządzania pakietami z konsoli zarówno w przypadku instalacji pakietów, jak i aktualizacji pakietów lub systemu w Debianie.

Oto przegląd narzędzia i funkcje, które ma ponad apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Dlatego radzę po prostu apt-get install aptitude 🙂

Komentarze

  • Informacje o wersji powiedz, że apt-get jest teraz zalecany zamiast aptitude do aktualizacji do squeeze.
  • Tak, ale tylko do tego. W przeciwnym razie są uważane za równe, ale aptitude ma wiele bardziej zaawansowanych funkcji, takich jak wyszukiwanie i tryb pełnoekranowy, niż apt-get.
  • Z jakiegoś powodu użyłem aptitude do zainstalowania emacsa i bez patrzenia usunął gdm! Więc na razie będę używać apt-get, ale jestem bardzo ciekawy, co to jest.

Odpowiedź

aptitude pamięta, które pakiety zostały jawnie zażądane i które zostały zainstalowane tylko z powodu zależności. Automatycznie odinstaluje pakiety, które nie zostały wyraźnie zażądane, gdy nie są już potrzebne.

apt-get traktuje pakiety żądane jawnie i ich zależności tak samo.

Dlatego lepiej używaj aptitude, to pomoże utrzymać porządek w systemie.

Komentarze

  • Kiedyś tak było, ale wiem, że mój apt-get ma polecenie apt-get autoremove do usuwania pakietów zainstalowanych tylko jako zależności. Nie ' nie wiem, kiedy ta funkcja została dodana, ale jedna witryna sugeruje, że mogło się to stać z Debianem Lennym (czerwiec 2010).
  • apt-get autoremove nie ' t usuwa pakiety zainstalowane tylko jako zależności, usuwa osierocone zależności, co jest subtelną różnicą ; nie może ' stwierdzić, czy pakiet ' leaf ' został zainstalowany z zamiarem, czy jako zależność, więc zostawia ją tam, gdzie aptitude mogłaby ją znać i usunąć.
  • Sprzedałem '! Istnieją inne fajne rzeczy związane z aptitude, ale jest to bardzo przydatna funkcja.

Odpowiedź

apt-get, a także różne narzędzia towarzyszące, zużywają znacznie mniej pamięci niż odpowiednie wywołania wiersza poleceń aptitude i są nieco szybsze. Byłem tego błogo nieświadomy, dopóki nie spróbowałem zaktualizować instalacji debiana na pomarszczonym starym ThinkPadzie Pentium z 32 MB pamięci RAM. Uruchomienie apt-get zajmie godzinę lub dwie bezładne zamiany, które zakończyły się pomyślnie; aptitude nie powiedzie się, gdy myślę, że po dłuższym okresie czasu.

To rozróżnienie jest mniej lub bardziej bez znaczenia w przypadku wszystkiego, co przypomina nowoczesny system komputerowy.

Odpowiedź

Opierając się na odpowiedzi @Gaurav „, pisanki w dwóch menedżerach pakietów są całkiem zabawne !:

siddhartha@siddhartha-dev:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ..."Have you mooed today?"... siddhartha@siddhartha-dev:~$ aptitude moo There are no Easter Eggs in this program. siddhartha@siddhartha-dev:~$ aptitude -v moo There really are no Easter Eggs in this program. siddhartha@siddhartha-dev:~$ aptitude -vv moo Didn"t I already tell you that there are no Easter Eggs in this program? siddhartha@siddhartha-dev:~$ aptitude -vvv moo Stop it! siddhartha@siddhartha-dev:~$ aptitude -vvvv moo Okay, okay, if I give you an Easter Egg, will you go away? siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo All right, you win. /----\ -------/ \ / \ / | -----------------/ --------\ ---------------------------------------------- siddhartha@siddhartha-dev:~$ aptitude -vvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. siddhartha@siddhartha-dev:~$ aptitude -vvvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. siddhartha@siddhartha-dev:~$ aptitude -vvvvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. 

i tak dalej.

Odpowiedź

Oferują te same podstawowe funkcje: instalować i usuwać pakiety z wiersza poleceń.

Oto bardziej szczegółowe porównanie, opublikowane na Witryna Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749

Komentarze

  • Są dość podobne, mogę się między nimi dość łatwo przełączać.

Odpowiedź

Jak wspomniano, http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude ma muc h łatwiejszy w użyciu interfejs wiersza poleceń.

Czy nie używają tego samego systemu APT? Tak.

Podstawowy system to nie tylko apt, ale dpkg. Ten system jest tak samo głupi jak RPM, obsługuje tylko instalację i administrowanie pojedynczymi pakietami. Śledzi, które zainstalowane pliki należą do którego pakietu.

apt obsługuje pobieranie repozytoriów, śledzenie zależności itd. Dla wszystkich pojedynczych pakietów – które następnie instaluje przy użyciu dpkg. aptitude robi to samo, z innym interfejsem.

Odpowiedź

Obie apt -get i aptitude polegają na bibliotece APT, tak.

Zobacz moją odpowiedź na serverfault.com .

Debian nie jest jednostką monolityczną, są ludzie o różnych opiniach, a opiekun umiejętności zdecydował, że apt-get ma pewne wady i chciał zbudować coś lepszego z umiejętnościami. Poprawił logikę, aby znaleźć rozwiązania dla złożonych scenariuszy aktualizacji, dodał GUI dla konsoli itp. Jest więcej niż tylko apt-get i aptitude, zobacz mój artykuł apt -get, aptitude,… wybierz odpowiedniego menedżera pakietów .

Odpowiedź

Nie mam pewności jeśli to nadal obowiązuje, ale nowatorski deweloper Debiana, Joey Hess, zawsze opowiadał się za aptitude zamiast apt-get. Oczywiście rzeczy do zmiany wraz z rozwojem oprogramowania. Apt-get teraz obsługuje zależności lepiej niż kiedyś. Od http://lists.debian.org/debian-user/2004/04/msg03138.html

Data: wt., 20 kwietnia 2004 r. 22:27:12 -0400 Od: Joey Hess

Dziewięć powodów, dla których powinieneś używać aptitude zamiast apt-get lub dselect.

  1. aptitude może wyglądać tak jak apt-get

    Jeśli uruchomisz „aptitude update”, „aptitude upgrade” lub „aptitude install”, wygląda i działa tak samo jak apt-get, z kilkoma ulepszeniami. Nie ma więc krzywej uczenia się.

    (Jeśli jesteś użytkownikiem programu dselect, krzywa uczenia się oczywiście nie jest jednym z twoich problemów.)

  2. ścieżki umiejętności pakiety instalowane automatycznie

    Przestań się martwić usuwaniem nieużywanych bibliotek i pakietów wsparcia z systemu. Jeśli używasz aptitude do instalowania wszystkiego, będzie on śledzić, które pakiety są pobierane przez same zależności i usuwać te pakiety, gdy nie są już potrzebne.

  3. Zdolność rozsądnie radzi sobie z zaleceniami

    Od dawna niepowodzeniem apt-get jest brak wsparcia dla relacji Poleca Co jest problemem, ponieważ wiele pakietów w Debianie polega na Zaleca pobranie oprogramowania, którego przeciętny użytkownik zazwyczaj używa wraz z pakietem. Jest to nierzadka przyczyna problemów, mimo że apt-get niedawno mógł przynajmniej wspomnieć o zalecanych pakietach , łatwo przeoczyć ostrzeżenia.

    Aptitude domyślnie obsługuje Polecenia i można go skonfigurować tak, aby obsługiwał także SUGESTIE. Obsługuje nawet instalowanie zalecanych pakietów, gdy jest używany w trybie wiersza poleceń.

  4. Używaj aptitude jako zwykłego użytkownika i unikaj zmiany systemu

    Może tego nie zrobiłeś ” wiem, że możesz uruchomić aptitude w trybie gui jako zwykły użytkownik. Wprowadź zmiany, które chciałbyś wypróbować. Jeśli wpadniesz w prawdziwy bałagan, możesz nacisnąć „q” i wyjść, twoje zmiany nie zostaną zapisane. (Aptitude pozwala również na użycie ctrl-u do cofania zmian.) Ponieważ działa jako normalny użytkownik, nie możesz połączyć systemu, dopóki nie powiesz aptitude, aby coś zrobiła, po czym zapyta Cię o hasło roota.

  5. aptitude ma potężny interfejs użytkownika i możliwości wyszukiwania

    Pomiędzy przeglądarką kategorialną aptitude a jej wspaniałą obsługą filtrowania w stylu mutta i wyszukiwania pakietów według nazwy, opis, opiekun, zależności itp., powinieneś być w stanie znaleźć pakiety szybciej niż kiedykolwiek wcześniej, używając aptitude.

  6. aptitude ułatwia śledzenie przestarzałego oprogramowania

    Jeśli Debian przestanie dystrybuować pakiet, apt pozostawi go w systemie na czas nieokreślony, bez ostrzeżeń i uaktualnień. Aptitude wymienia takie pakiety w sekcji „Pakiety przestarzałe i utworzone lokalnie”, dzięki czemu możesz zostać poinformowany o problemie i coś z nim zrobić.

  7. aptitude ma interfejs do Debiana system zadań

    Aptitude pozwala na używanie systemu zadań Debiana w takiej postaci, w jakiej został zaprojektowany. Możesz przeglądać dostępne zadania, wybrać zadanie do instalacji, a następnie zagłębić się w nim i usunąć zaznaczenie części zadanie, którego nie chcesz. apt-get nie obsługuje zadań, a aptitude jest lepsza nawet niż narzędzia specjalnego przeznaczenia, takie jak tasksel.

  8. aptitude obsługuje wiele źródeł

    Jeśli Twoje źródła. list jest skonfigurowany tak, aby udostępniać wiele wersji pakietu, aptitude pozwala na drążenie w dół, aby zobaczyć dostępne wersje i wybrać wersję inną niż domyślna do zainstalowania. Jeśli pakiet zepsuje się w niestabilnej, po prostu przywróć go do wersji z testing.

  9. aptitude rejestruje swoje działania

    Aptitude loguje pakiet, który instaluje, aktualizuje, i usuwa do / varlog / aptitude, co może być przydatne do wyjaśnienia, dlaczego coś zaczęło się psuć po wczorajszej aktualizacji lub po usunięciu pakietu partiticlar.

– zobacz nieśmiały jo

=================== tutaj jest również nowsza dyskusja z 2010 roku https://superuser.com/questions/93437/aptitude-vs-apt-get-which-is-the-recommended-aka-the-right-tool-to-use na StackExchange.

Dodaj komentarz

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