Hvað er APT og Aptitude? og hver er raunverulegur munur á þeim?


Aptitude og apt-get eru tvö af vinsælustu verkfærunum sem sjá um pakkastjórnun. Báðir eru færir um að takast á við alls kyns athafnir á pakka, þar með talið uppsetningu, fjarlægingu, leit o.s.frv. En samt er munur á báðum verkfærunum sem gerir það að verkum að notendur kjósa annað fram yfir annað. Hver er þessi munur sem gerir það að verkum að þessi tvö verkfæri þarf að skoða sérstaklega er umfang þessarar greinar.

Hvað er Apt

Apt eða Advanced Packaging Tool er ókeypis og opinn hugbúnaður sem sér um uppsetningu og fjarlægingu hugbúnaðar á þokkafullan hátt. Upphaflega var það hannað fyrir .deb pakka Debian en það hefur verið gert samhæft við RPM pakkastjórnun.

Apt er heil skipanalína án GUI. Alltaf þegar það er kallað á skipanalínuna ásamt því að tilgreina nafn pakkans sem á að setja upp, finnur það pakkann í stilltan lista yfir heimildir sem tilgreindar eru í '/etc/apt/sources.list' ásamt listanum yfir ósjálfstæði fyrir þann pakka og flokkar þá og setur þá sjálfkrafa upp ásamt núverandi pakka og gerir notandanum þannig kleift að hafa ekki áhyggjur af því að setja upp ósjálfstæði.

Það er mjög sveigjanlegt sem gerir notandanum kleift að stjórna ýmsum stillingum auðveldlega, eins og: bæta við hvaða nýjum uppruna sem er til að leita að pakka, apt-pinning þ.e.a.s. merkja hvaða pakka sem er ófáanlegur við uppfærslu kerfisins þannig að núverandi útgáfa hans sé lokaútgáfan uppsett, \snjall ” uppfærsla þ.e.a.s. uppfæra mikilvægustu pakkana og skilja þá minnstu eftir.

Hvað er Aptitude?

Aptitude er framhlið háþróaðs pökkunartóls sem bætir notendaviðmóti við virknina og gerir notanda þannig kleift að leita gagnvirkt að pakka og setja upp eða fjarlægja hann. Aptitude, sem upphaflega var búið til fyrir Debain, útvíkkar einnig virkni sína til RPM byggðar dreifingar.

Notendaviðmót þess er byggt á ncurses bókasafni sem bætir ýmsum þáttum við það sem almennt sést í GUI. Einn af hápunktum þess er að það getur líkt eftir flestum skipanalínurökum apt-get.

Á heildina litið er Aptitude pakkastjóri á hærra stigi sem tekur út smáatriði á lágu stigi og getur starfað í bæði textabundinni gagnvirku notendaviðmóti og jafnvel í skipanalínu sem er ekki gagnvirkt.

Ef þú vilt vita notkun APT og Aptitude með raunverulegum dæmum ættirðu að fara í eftirfarandi greinar.

  1. Lærðu 25 gagnleg dæmi um APT-GET og APT-CACHE
  2. Lærðu Linux pakkastjórnun með Aptitude og Dpkg

Hver er munurinn á APT og Aptitude?

Fyrir utan að aðalmunurinn er sá að Aptitude er pakkastjóri á háu stigi á meðan APT er pakkastjóri á lægra stigi sem hægt er að nota af öðrum pakkastjórum á hærra stigi, eru aðrir helstu hápunktar sem aðskilja þessa tvo pakkastjóra:

  1. Aptitude er víðfeðmari í virkni en apt-get og samþættir virkni apt-get og önnur afbrigði þess, þar á meðal apt-mark og apt-cache.

Þó apt-get sjái um alla uppsetningu pakka, uppfærslu, kerfisuppfærslu, hreinsun pakka, úrlausn ósjálfstæðis o.s.frv., sér Aptitude um margt fleira en apt, þar á meðal virkni apt-mark og apt-cache, þ.e.a.s. að leita að pakka í lista yfir uppsetta pakka, merkja pakka til að vera sjálfvirkt eða handvirkt uppsettur, halda pakka sem gerir hann ófáanlegur fyrir uppfærslu og svo framvegis.

  1. Þó að apt-get vanti notendaviðmót er Aptitude með texta-aðeins og gagnvirkt notendaviðmót

Apt-get að vera pakkastjóri á lægra stigi er aðeins bundinn við skipanalínu, en Aptitude, sem er hærra stigs tól, hefur sjálfgefið gagnvirkt viðmót eingöngu fyrir texta ásamt möguleika á stjórnlínuaðgerð með því að slá inn nauðsynlegar skipanir.

  1. Aptitude er með betri pakkastjórnun en apt-get

Í mörgum aðstæðum sem fela í sér uppsetningu, fjarlægingu og úrlausn átaka fyrir pakka, sannar Aptitude gildi sitt frekar en apt-get. Sumar aðstæðurnar eru ma:

1. Á meðan uppsettur pakki er fjarlægður mun Aptitude sjálfkrafa fjarlægja ónotaða pakka, en apt-get þyrfti notanda til að tilgreina þetta sérstaklega með því að annað hvort bæta við viðbótarvalkosti '—auto-remove' eða tilgreina 'apt-get autoremove'.4

2. Til að kanna frekar hvers vegna ákveðnum aðgerðum er lokað eða hvers vegna eða hvers vegna ekki ætti að grípa til ákveðinnar aðgerða, býður Aptitude skipanir af hverju og 'af hverju-ekki'.

Eins og: Aptitude getur fundið þér ástæðuna til að setja upp ákveðinn pakka með því að skoða listann yfir uppsetta pakka og athuga hvort einhver af þeim pakka sem þeir hafa lagt til sé með ósjálfstæði eða eitthvað af ósjálfstæði þeirra bendir til þess pakka eða svo framvegis.

$ 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

Eins og hér leitaði það að ástæðunni fyrir því að setja upp pakka sem heitir yaws-wiki að það sé stungið upp á því af ósjálfstæði (yaws) sem gefur sýndarpakka ( httpd-cgi) sem pakki (dwww) er háður og pakki (dwww) er stungið upp á af einum af uppsettu pakkanum sem heitir doc-base .

Þennan eiginleika vantar í apt-get.

3. Þó apt-get myndi líklega deyja út ef misvísandi aðgerðir varðandi uppsetningu eða fjarlægingu pakka með skilaboðum, geta Aptitude lagt til mögulegar ráðstafanir til að fjarlægja þann árekstur.

Aptitude býður upp á öfluga leit sem hægt er að nota til að leita í nánast hvaða pakka sem er, ekki aðeins á kerfinu heldur einnig á allri geymslunni.

Þó að apt-get þurfi annað afbrigði apt, þ.e. apt-cache til að leita að pakka, býður Aptitude miklu auðveldari og skilvirkari leið til að leita að pakka sem er annað hvort uppsettur eða til staðar í geymslu en enn á eftir að setja upp.

$ 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

Hér er sjálfgefið að bæði apt-cache og aptitude leita að pakka á öllum lista yfir pakka í geymslunni, en úttak aptitude sýnir hvort pakkinn er settur upp á kerfinu eða ekki með því að gefa upp fána fyrir hvern pakka sem hér er p sem gefur til kynna að pakki sé til staðar en ekki uppsettur og i sem gefur til kynna að pakkinn sé uppsettur, en apt-cache listar bara pakkann og eina línu hans án þess að segja til um hvort pakkinn sé uppsettur eða ekki.

1. Að leita að pakka í geymslu með python2.7 í nafni pakkans og 2.7 í lýsingu hans.

$ 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

Hér gefur ~n til kynna nafn og ~d gefur til kynna lýsingu. Önnur mynd af sömu skipun er:

$ aptitude search '?name(python2.7) ?description(2.7)'

  1. ~i eða ?installed(): Aðeins er leitað að pakka á listanum yfir uppsetta pakka.
  2. ~U eða ~Uppfæranleg: Listi yfir alla pakka sem hægt er að uppfæra með nýjustu fáanlegu útgáfunum.
  3. ~E eða ?Essential(): Þessir pakkar annað hvort uppsettir eða tiltækir, sem eru nauðsynlegir.

$ 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 

Eins og stuttur listi sem sýndur er hér yfir 3 pakka með uppsettri útgáfu (táknað með i) og uppfæranleg útgáfa þeirra til staðar (táknað með p).

Til að finna alla pakka sem veita smtp þjónustu:

$ 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

Eins og hér listum við alla pakka sem stinga upp á „gcc“ pakka.

$ 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 

Niðurstaða

Þannig að í flestum tilfellum er setningafræði Aptitude haldið næstum því sama og apt-get, til að gera notendum apt-get minni sársauka við að flytja til Aptitude, en auk þessa eru margir öflugir eiginleikar samþættir í Aptitude sem gera það að verkum að hann verður fyrir valinu. Burtséð frá þessum mun sem við lögðum áherslu á, ef þú finnur einhvern áhugaverðan mun á þessum tveimur pakkastjórum, skaltu ekki nefna hann í athugasemdum þínum.