Kaj sta APT in Aptitude? in kakšna je resnična razlika med njima?
Aptitude in apt-get sta dve izmed priljubljenih orodij za upravljanje paketov. Oba sta sposobna opravljati vse vrste dejavnosti na paketih, vključno z namestitvijo, odstranjevanjem, iskanjem itd. A kljub temu obstajajo razlike med obema orodjema, zaradi katerih imajo uporabniki prednost pred enim. Kakšne so razlike, zaradi katerih je treba ta dva orodja obravnavati ločeno, je obseg tega članka.
Kaj je Apt
Apt ali Advanced Packaging Tool je brezplačna in odprtokodna programska oprema, ki elegantno obravnava namestitev in odstranitev programske opreme. Sprva je bil zasnovan za Debianove pakete .deb
, vendar je bil združljiv z RPM Package Manager.
Apt je celotna ukazna vrstica brez grafičnega uporabniškega vmesnika. Vsakič, ko se prikliče iz ukazne vrstice, skupaj z navedbo imena paketa, ki ga je treba namestiti, ta paket najde na konfiguriranem seznamu virov, določenih v '/etc/apt/sources.list', skupaj s seznamom odvisnosti za ta paket in jih razvrsti in jih samodejno namesti skupaj s trenutnim paketom, kar uporabniku omogoča, da ne skrbi namestitve odvisnosti.
Je zelo prilagodljiv, kar uporabniku omogoča enostavno upravljanje različnih konfiguracij, na primer: dodajanje katerega koli novega vira za iskanje paketov, apt-pinning, tj. ”Nadgraditi, tj. Nadgraditi najpomembnejše pakete in pustiti najmanj pomembne.
Kaj je sposobnost?
Aptitude je prednji del naprednega orodja za pakiranje, ki funkcionalnosti doda uporabniški vmesnik in tako uporabniku omogoči interaktivno iskanje paketa ter njegovo namestitev ali odstranitev. Prvotno ustvarjen za Debain, Aptitude razširja svojo funkcionalnost tudi na distribucije na osnovi RPM.
Njegov uporabniški vmesnik temelji na knjižnici ncurses, ki mu doda različne elemente, ki jih pogosto vidimo v grafičnem uporabniškem vmesniku. Eden od njegovih vrhuncev je, da lahko posnema večino argumentov ukazne vrstice apt-get.
Na splošno je Aptitude upravitelj paketov na višji ravni, ki povzema podrobnosti nizke ravni in lahko deluje tako v besedilnem interaktivnem načinu uporabniškega vmesnika kot celo v neinteraktivnem načinu ukazne vrstice.
Če želite poznati primere APT in Aptitude s primeri iz resničnega sveta, si oglejte naslednje članke.
- Naučite se 25 uporabnih primerov na APT-GET in APT-CACHE
- Naučite se upravljanja paketov Linux z Aptitude in Dpkg
Kakšne so razlike med APT in Aptitude?
Poleg glavne razlike je v tem, da je Aptitude upravitelj paketov na visoki ravni, medtem ko je APT upravitelj paketov na nižji ravni, ki ga lahko uporabljajo tudi drugi upravitelji paketov na višji ravni, drugi glavni poudarki, ki ločujejo ta dva upravitelja paketov, pa so:
- Aptitude je bolj funkcionalen kot apt-get in vključuje funkcionalnosti apt-get in njegovih drugih različic, vključno z apt-mark in apt-cache.
Medtem ko apt-get obravnava vso namestitev paketov, nadgradnjo, nadgradnjo sistema, čiščenje paketa, razreševanje odvisnosti itd., Aptitude obravnava veliko več stvari kot apt, vključno s funkcionalnostmi apt-mark in apt-cache, tj. Iskanje paketa v seznam nameščenih paketov, označevanje paketa za samodejno ali ročno namestitev, držanje paketa, zaradi česar ni na voljo za nadgradnjo itd.
- Čeprav apt-get nima uporabniškega vmesnika, ima Aptitude samo besedilni in interaktivni uporabniški vmesnik
Apt-get kot upravitelj paketov nižje stopnje je omejen samo na ukazno vrstico, medtem ko ima orodje Aptitude višje ravni privzeti samo besedilni interaktivni vmesnik, skupaj z možnostjo delovanja ukazne vrstice z vnosom zahtevanih ukazov.
- Aptitude ima boljše upravljanje paketov kot apt-get
V mnogih situacijah, ki vključujejo namestitev, odstranjevanje in reševanje konfliktov za pakete, se Aptitude izkaže za boljše kot za primeren. Nekatere situacije vključujejo:
1. Med odstranjevanjem nameščenega paketa bo Aptitude samodejno odstranil neuporabljene pakete, medtem ko bi moral apt-get uporabnik to izrecno določiti z dodajanjem dodatne možnosti '—auto-remove'
ali z določitvijo 'apt-get autoremove'
.4
2. Za nadaljnje raziskovanje, zakaj se določeno dejanje blokira ali zakaj ali zakaj ne bi bilo treba sprejeti določenega dejanja, Aptitude ponuja ukaza why
in ‘why-not’.
Tako kot: Aptitude vam lahko poišče razlog za namestitev določenega paketa tako, da pogleda seznam nameščenih paketov in preveri, ali ima kateri od predlaganih paketov odvisnosti ali katera od njihovih odvisnosti predlaga ta paket ali tako naprej.
$ 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
Tako kot tukaj je iskal razlog za namestitev paketa z imenom yaws-wiki
, da ga predlaga odvisnost (yaws)
, ki zagotavlja navidezni paket ( httpd-cgi)
, kateri paket (dwww)
je odvisen, in paket (dwww)
predlaga eden od nameščenih paketov z imenom doc-base
.
Ta funkcija manjka v apt-get.
3. Čeprav bi apt-get verjetno izumrl v primeru nasprotujočega si dejanja glede namestitve ali odstranitve paketa s sporočilom, lahko Aptitude predlaga možne ukrepe za odpravo tega konflikta.
Aptitude omogoča močno iskanje, ki ga lahko uporabimo za iskanje skoraj vseh paketov ne samo v sistemu, temveč tudi v celotnem repozitoriju.
Medtem ko apt-get potrebuje drugo različico apt, tj.
$ 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
Tu privzeto apt-cache in aptitude iščeta paket na celotnem seznamu paketov v repozitoriju, vendar izhod aptitude pokaže, ali je paket nameščen v sistemu, tako da poda zastavico za paket, ki je tukaj p
označuje, da je paket prisoten, vendar ni nameščen, in i
, kar pomeni, da je paket nameščen, medtem ko apt-cache samo navede paket in njegove enovrstne podrobnosti, ne da bi vedel, ali je paket nameščen ali ne.
1. Iskanje paketa v repozitoriju z python2.7
v imenu paketa in 2.7
v njegovem opisu.
$ 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
Tu ~ n
označuje ime, ~ d
pa opis. Druga oblika istega ukaza je:
$ aptitude search '?name(python2.7) ?description(2.7)'
-
~ i ali? Installed()
: iskanje paketa samo na seznamu nameščenih paketov. -
~ U ali ~ Nadgradljivo
: Navede vse pakete, ki jih je mogoče nadgraditi, z najnovejšimi razpoložljivimi različicami. -
~ E ali? Essential()
: Paketi, ki so nameščeni ali na voljo, ki so bistveni.
$ 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
Tako kot tukaj prikazan kratek seznam treh paketov z nameščeno različico (označeno z i
) in njihovo nadgradljivo različico (označeno z p
).
Če želite najti vse pakete, ki ponujajo storitev 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
Tako kot tukaj navajamo vse pakete, ki predlagajo paket "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
Zaključek
V večini primerov je sintaksa Aptitude skoraj enaka sintaksi apt-get, da bi imeli uporabniki apt-get manj bolečin pri selitvi na Aptitude, vendar je poleg tega v Aptitude vključenih veliko zmogljivih funkcij zaradi česar je izbrana. Razen teh razlik, ki smo jih poudarili, če med temi dvema skrbnikoma paketov najdete še kakšno zanimivo razliko, jih v komentarjih omenite.