Wyszukiwanie w witrynie

Co to jest APT i Aptitude? i jaka jest prawdziwa różnica między nimi?


Aptitude i apt-get to dwa z popularnych narzędzi obsługujących zarządzanie pakietami. Obydwa są w stanie obsłużyć wszelkiego rodzaju działania na pakietach, w tym instalację, usuwanie, wyszukiwanie itp. Jednak nadal istnieją różnice między obydwoma narzędziami, które sprawiają, że użytkownicy wolą jedno od drugiego. Jakie są różnice, które sprawiają, że te dwa narzędzia należy rozpatrywać osobno, jest zakresem tego artykułu.

Co to jest Apt

Apt lub Advanced Packaging Tool to bezpłatne oprogramowanie typu open source, które z łatwością obsługuje instalację i usuwanie oprogramowania. Początkowo został zaprojektowany dla pakietów .deb Debiana, ale został dostosowany do Menedżera pakietów RPM.

Apt to cała linia poleceń bez GUI. Ilekroć zostanie wywołany z wiersza poleceń wraz z określeniem nazwy pakietu do zainstalowania, znajdzie ten pakiet na skonfigurowanej liście źródeł określonej w '/etc/apt/sources.list' wraz z listą zależności dla tego pakietu, sortuje je i automatycznie instaluje wraz z bieżącym pakietem, dzięki czemu użytkownik nie musi się martwić instalowaniem zależności.

Jest bardzo elastyczny, co pozwala Użytkownikowi łatwo kontrolować różne konfiguracje, takie jak: dodanie dowolnego nowego źródła do wyszukiwania pakietów, apt-pinning, czyli oznaczenie dowolnego pakietu niedostępnego podczas aktualizacji systemu, dzięki czemu jego bieżąca wersja będzie ostateczną zainstalowaną wersją, upgrade „inteligentny”, czyli aktualizacja najważniejszych pakietów i pozostawienie tych najmniej ważnych.

Co to jest Apetyt?

Aptitude to interfejs zaawansowanego narzędzia do pakowania, które dodaje interfejs użytkownika do funkcjonalności, umożliwiając użytkownikowi interaktywne wyszukiwanie pakietu oraz jego instalację lub usunięcie. Początkowo stworzony dla Debaina, Aptitude rozszerza swoją funkcjonalność również na dystrybucje oparte na RPM.

Jego interfejs użytkownika oparty jest na bibliotece ncurses, która dodaje do niego różne elementy powszechnie spotykane w GUI. Jedną z jego najważniejszych cech jest to, że może emulować większość argumentów wiersza poleceń apt-get.

Podsumowując, Aptitude to menedżer pakietów wyższego poziomu, który wyodrębnia szczegóły niskiego poziomu i może działać zarówno w interaktywnym trybie tekstowym interfejsu użytkownika, jak i w nieinteraktywnym trybie wiersza poleceń.

Jeśli chcesz poznać użycie APT i Aptitude na przykładach z prawdziwego świata, powinieneś udać się do poniższych artykułów.

  1. Poznaj 25 przydatnych przykładów dotyczących APT-GET i APT-CACHE
  2. Naucz się zarządzania pakietami systemu Linux za pomocą Aptitude i Dpkg

Jakie są różnice między APT a Aptitude?

Poza główną różnicą polegającą na tym, że Aptitude jest menedżerem pakietów wysokiego poziomu, podczas gdy APT jest menedżerem pakietów niższego poziomu, z którego mogą korzystać inni menedżerowie pakietów wyższego poziomu, inne główne najważniejsze cechy oddzielające te dwa menedżery pakietów to:

  1. Aptitude ma szerszą funkcjonalność niż apt-get i integruje funkcje apt-get i jego innych wariantów, w tym apt-mark i apt -pamięć podręczna.

Podczas gdy apt-get zajmuje się całą instalacją pakietów, aktualizacją, aktualizacją systemu, czyszczeniem pakietów, rozwiązywaniem zależności itp., Aptitude obsługuje o wiele więcej rzeczy niż apt, w tym funkcje apt-mark i apt-cache, czyli wyszukiwanie pakietu na liście zainstalowanych pakietów, zaznaczanie pakietu do instalacji automatycznej lub ręcznej, przetrzymywanie pakietu uniemożliwiającego aktualizację i tak dalej.

  1. Chociaż apt-get nie ma interfejsu użytkownika, Aptitude ma interaktywny interfejs tekstowy

Apt-get będący menedżerem pakietów niższego poziomu jest ograniczony tylko do wiersza poleceń, podczas gdy Aptitude będący narzędziem wyższego poziomu ma domyślny interaktywny interfejs tekstowy wraz z możliwością obsługi wiersza poleceń poprzez wprowadzenie wymaganych polecenia.

  1. Aptitude ma lepsze zarządzanie pakietami niż apt-get

W wielu sytuacjach związanych z instalacją, usuwaniem i rozwiązywaniem konfliktów pakietów Aptitude zamiast apt-get udowadnia swoją wartość. Niektóre z sytuacji obejmują:

1. Podczas usuwania zainstalowanego pakietu Aptitude automatycznie usunie nieużywane pakiety, podczas gdy apt-get wymagałby od użytkownika wyraźnego określenia tego poprzez dodanie dodatkowa opcja '—auto-remove' lub określenie 'apt-get autorove'.4

2. Aby dokładniej zbadać, dlaczego określone działanie jest blokowane lub dlaczego lub dlaczego nie należy podjąć określonego działania, Aptitude oferuje opcje „dlaczego” i ' polecenia „dlaczego nie”.

Lubię to: Aptitude może znaleźć powód do zainstalowania określonego pakietu, przeglądając listę zainstalowanych pakietów i sprawdzając, czy którykolwiek z sugerowanych pakietów ma zależności lub którakolwiek z ich zależności sugeruje ten pakiet itp. .

$ aptitude why yaws-wiki
i   doc-base  Suggests   dhelp | dwww | doc-central | yelp | khelpcenter4
p   dwww      Depends    apache2 | httpd-cgi
p   yaws      Provides   httpd-cgi
p   yaws      Suggests   yaws-wiki

Podobnie jak tutaj, szukał powodu zainstalowania pakietu o nazwie 'yaws-wiki', ponieważ sugeruje to zależność (yaws), która udostępnia pakiet wirtualny (httpd-cgi), od którego zależy pakiet (dwww), a pakiet (dwww) jest sugerowany przez jeden z zainstalowanych pakietów o nazwie ' baza-dokumentów'.

Tej funkcji brakuje w apt-get.

3. Podczas gdy apt-get prawdopodobnie zniknie w przypadku sprzecznych działań dotyczących instalacji lub usunięcia pakietu z komunikatem, Aptitude może zasugerować możliwych środków usunięcia tego konfliktu.

Aptitude zapewnia zaawansowane wyszukiwanie, którego można użyć do przeszukania prawie każdego pakietu nie tylko w systemie, ale także w całym repozytorium.

Podczas gdy apt-get potrzebuje innego wariantu apt, tj. apt-cache do wyszukiwania pakietu, Aptitude zapewnia znacznie łatwiejszy i skuteczny sposób wyszukiwania pakietu, który jest zainstalowany lub obecny w repozytorium, ale jeszcze nie zainstalowany.

Wyszukiwanie pakietu przy użyciu apt-cache vs Aptitude

$ apt-cache search 'python' | head -n4
kate - powerful text editor
kcachegrind-converters - format converters for KCachegrind profiler visualisation tool
kig - interactive geometry tool for KDE
python-kde4 - Python bindings for the KDE Development Platform

$ aptitude search 'python' | head -n4
i   bpython                         - fancy interface to the Python interpreter 
p   bpython-gtk                     - fancy interface to the Python interpreter 
p   bpython-urwid                   - fancy interface to the Python interpreter 
p   bpython3                        - fancy interface to the Python3 interpreter

Tutaj domyślnie zarówno apt-cache, jak i aptitude wyszukują pakiet na całej liście pakietów w repozytorium, ale wynik aptitude pokazuje, czy pakiet jest zainstalowany w systemie, czy nie poprzez podanie flagi pakietu, którą tutaj jest 'p' wskazująca, że pakiet jest obecny, ale nie jest zainstalowany, oraz 'i', która wskazuje, że pakiet jest zainstalowany, podczas gdy apt -cache po prostu wyświetla pakiet i jego jednowierszowe szczegóły, nie informując, czy pakiet jest zainstalowany, czy nie.

Kilka innych przykładów zaawansowanego wyszukiwania pakietów za pomocą Aptitude

1. Wyszukiwanie pakietu w repozytorium z 'python2.7' w nazwie pakietu i '2.7' w jego opisie.

$ aptitude search '~npython2.7 ~d2.7'
p   idle-python2.7                   - IDE for Python (v2.7) using Tkinter       
i   libpython2.7                     - Shared Python runtime library (version 2.7
p   libpython2.7:i386                - Shared Python runtime library (version 2.7
p   libpython2.7-dbg                 - Debug Build of the Python Interpreter (ver
p   libpython2.7-dbg:i386            - Debug Build of the Python Interpreter (ver
i A libpython2.7-dev                 - Header files and a static library for Pyth
p   libpython2.7-dev:i386            - Header files and a static library for Pyth
i   libpython2.7-minimal             - Minimal subset of the Python language (ver
p   libpython2.7-minimal:i386        - Minimal subset of the Python language (ver
i   libpython2.7-stdlib              - Interactive high-level object-oriented lan
p   libpython2.7-stdlib:i386         - Interactive high-level object-oriented lan
p   libpython2.7-testsuite           - Testsuite for the Python standard library 
i   python2.7                        - Interactive high-level object-oriented lan
p   python2.7:i386                   - Interactive high-level object-oriented lan
p   python2.7-dbg                    - Debug Build of the Python Interpreter (ver
p   python2.7-dbg:i386               - Debug Build of the Python Interpreter (ver
i A python2.7-dev                    - Header files and a static library for Pyth
p   python2.7-dev:i386               - Header files and a static library for Pyth
p   python2.7-doc                    - Documentation for the high-level object-or
p   python2.7-examples               - Examples for the Python language (v2.7)   
i   python2.7-minimal                - Minimal subset of the Python language (ver
p   python2.7-minimal:i386           - Minimal subset of the Python language (ver

Tutaj '~n' oznacza nazwę, a '~d' oznacza opis. Inną formą tego samego polecenia jest:

aptitude search '?name(python2.7) ?description(2.7)'
Niektóre inne flagi obejmują:
  1. ~i lub ?installed(): Wyszukiwanie pakietu tylko na liście zainstalowanych pakietów.
  2. ~U lub ~Upgradable: Lista wszystkich pakietów, które można zaktualizować do ich najnowszych dostępnych wersji.
  3. ~E lub ?Essential(): Te pakiety, które są zainstalowane lub dostępne i które są niezbędne.
$ aptitude versions '?Upgradable' | head -n 12
Package apache2:
ph  2.4.7-1ubuntu4                                trusty                    500 
ph  2.4.7-1ubuntu4.5                              trusty-security           500 
ih  2.4.7-1ubuntu4.8                                                        100 
ph  2.4.7-1ubuntu4.9                              trusty-updates            500 

Package apache2-bin:
p A 2.4.7-1ubuntu4                                trusty                    500 
p A 2.4.7-1ubuntu4.5                              trusty-security           500 
i A 2.4.7-1ubuntu4.8                                                        100 
p A 2.4.7-1ubuntu4.9                              trusty-updates            500 

Podobnie jak pokazana tutaj krótka lista 3 pakietów z zainstalowaną wersją (oznaczoną przez 'i') i obecną wersją, którą można zaktualizować (oznaczoną przez 'p').

2. Znalezienie wszystkich pakietów zapewniających określoną usługę

Aby znaleźć wszystkie pakiety, które zapewniają usługę smtp:

$ aptitude search '?provides(smtp)'
p   libghc-smtpclient-dev            - Simple Haskell SMTP client library        
p   libghc-smtpclient-dev:i386       - Simple Haskell SMTP client library        
p   libghc-smtpclient-prof           - Simple Haskell SMTP client library; profil
p   libghc-smtpclient-prof:i386      - Simple Haskell SMTP client library; profil
p   syslog-ng-mod-smtp               - Enhanced system logging daemon (SMTP plugi
p   syslog-ng-mod-smtp:i386          - Enhanced system logging daemon (SMTP plugi

3. Znalezienie wszystkich pakietów, które sugerują określony pakiet

Podobnie jak tutaj, wymieniliśmy wszystkie pakiety sugerujące pakiet „gcc”.

$ aptitude search '~DSuggests:gcc' | head -n10
p   bochs                           - IA-32 PC emulator                         
p   bochs:i386                      - IA-32 PC emulator                         
p   cpp-4.4                         - GNU C preprocessor                        
p   cpp-4.4:i386                    - GNU C preprocessor                        
p   cpp-4.6                         - GNU C preprocessor                        
p   cpp-4.6:i386                    - GNU C preprocessor                        
p   cpp-4.7                         - GNU C preprocessor                        
p   cpp-4.7:i386                    - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi       - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi:i386  - GNU C preprocessor 

Wniosek

Zatem w większości przypadków składnia Aptitude jest prawie taka sama jak składnia apt-get, aby użytkownicy apt-get mieli mniej problemów z migracją do Aptitude , ale oprócz tego w Aptitude zintegrowanych jest wiele zaawansowanych funkcji, które sprawiają, że należy go wybrać. Oprócz tych różnic, które podkreśliliśmy, jeśli znajdziesz jakieś inne interesujące różnice między tymi dwoma menedżerami pakietów, wspomnij o nich w swoich komentarzach.