Mis on APT ja võimekus? ja mis on nende vahel tõeline erinevus?


Sobivus ja apt-get on kaks populaarsemat pakettide haldamise tööriista. Mõlemad on võimelised pakettidega igasuguseid toiminguid tegema, sealhulgas installimine, eemaldamine, otsing jne. Kuid siiski on mõlema tööriista vahel erinevusi, mis panevad kasutajad üksteist eelistama. Mis on need erinevused, mille tõttu neid kahte tööriista eraldi käsitleda, on selle artikli reguleerimisala.

Mis on Apt

Apt ehk Advanced Packaging Tool on tasuta ja avatud lähtekoodiga tarkvara, mis haldab kenasti tarkvara installimist ja eemaldamist. Esialgu oli see mõeldud Debiani pakettide .deb jaoks, kuid see on muudetud RPM Package Manageriga ühilduvaks.

Apt on terve käsurida ilma GUI-ta. Alati kui käivitatakse käsurealt koos installitava paketi nime määramisega, leiab ta selle paketi seadistatud loendis "/etc/apt/sources.list" määratletud allikate loendist koos selle paketi sõltuvuste loendiga ning sorteerib need ja installib need automaatselt koos praeguse paketiga, mis võimaldab kasutajal mitte muretseda sõltuvuste installimise pärast.

See on väga paindlik, võimaldades kasutajal hõlpsalt erinevaid konfiguratsioone juhtida, näiteks: pakettide otsimiseks mis tahes uue allika lisamine, apt-pinning ehk kõigi pakettide märkimine süsteemi täiendamise ajal kättesaamatuks, muutes selle praeguse versiooni lõplikuks installitud versiooniks,\"nutikas ”Uuendamine ehk kõige olulisemate pakettide täiendamine ja kõige vähem oluliste pakettide jätmine.

Mis on võimekus?

Aptitude on täiustatud pakenditööriista esiotsa, mis lisab funktsionaalsusele kasutajaliidese, võimaldades kasutajal paketti interaktiivselt otsida ning seda installida või eemaldada. Esialgu Debaini jaoks loodud Aptitude laiendab oma funktsionaalsust ka RPM-põhistele jaotustele.

Selle kasutajaliides põhineb ncursese teegil, mis lisab sellele erinevaid elemente, mida GUI-des tavaliselt nähakse. Selle üks tipphetki on see, et see suudab jäljendada enamikku apt-geti käsurea argumentidest.

Kokku on Aptitude kõrgema taseme paketihaldurid, kes võtavad kokku madalama taseme üksikasjad ja suudavad töötada nii tekstipõhises interaktiivses kasutajaliidese režiimis kui ka käsureal mitteinteraktiivses režiimis.

Kui soovite teada APT ja sobivuse kasutamist koos reaalsete näidetega, peaksite minema järgmistele artiklitele.

  1. Lugege 25 kasulikku näidet APT-GET ja APT-Cache kohta
  2. Õppige Linuxi paketihaldust võimekuse ja Dpkg abil

Mis on APT ja võimekuse erinevused?

Lisaks peamisele erinevusele on see, et Aptitude on kõrgetasemeline paketihaldur, samal ajal kui APT on madalama taseme paketihaldur, mida saavad kasutada ka teised kõrgema taseme paketihaldurid, lisaks on need kaks paketihaldurit eraldavad põhitähelepanu:

  1. Sobivus on funktsionaalsusest suurem kui apt-get ja integreerib apt-get funktsioone ja muid selle variante, sealhulgas apt-mark ja apt-cache.

Kui apt-get haldab kogu paketi installimist, täiendamist, süsteemi täiendamist, paketi puhastamist, sõltuvuste lahendamist jne, siis Aptitude käsitleb palju rohkem asju kui apt, sealhulgas apt-marki ja apt-cache funktsioone, st paketi otsimist installitud pakettide loend, paketi märkimine automaatselt või käsitsi installimiseks, paketi hoidmine, mis muudab selle ajakohastamiseks kättesaamatuks ja nii edasi.

  1. Kuigi apt-get'il puudub kasutajaliides, on Aptitude'il ainult teksti- ja interaktiivne kasutajaliides

Madalama taseme paketihaldur Apt-get on piiratud ainult käsureal, samal ajal kui kõrgema taseme tööriistal Aptitude on vaiketeksti interaktiivne liides ja käsureal töötamise võimalus, sisestades vajalikud käsud.

  1. Sobivusel on parem pakettide haldamine kui apt-getil

Paljudes olukordades, mis hõlmavad pakettide installimist, eemaldamist ja konfliktide lahendamist, tõestab Aptitude pigem väärtust kui apt-get. Mõned olukorrad hõlmavad järgmist:

1. Mis tahes installitud paketi eemaldamisel eemaldab Aptitude kasutamata paketid automaatselt, samas kui apt-get peaks kasutajal selle selgesõnaliselt määrama, lisades kas lisavõimaluse '—auto-remove' või määrates 'apt-get autoremove' .4

2. Lisateabe saamiseks selle kohta, miks teatud toiming blokeeritakse või miks või miks ei tohiks teatud toimingut teha, pakub Aptitude käske why ja 'why-not'.

Meeldib: sobivus võib leida teile põhjuse teatud paketi installimiseks, vaadates installitud pakettide loendit ja kontrollides, kas mõnel nende pakettpaketil on sõltuvus või mõni nende sõltuvus soovitab seda paketti vms.

$ 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

Nagu siin, otsis see ka paketi yaws-wiki installimiseks põhjust, et seda soovitab sõltuvus (yaws) , mis pakub virtuaalset paketti ( httpd-cgi) millest pakett (dwww) sõltub ja paketti (dwww) soovitab üks installitud pakettidest nimega doc-base .

See funktsioon puudub apt-getis.

3. Kuigi apt-get sureks tõenäoliselt välja vastuoluliste toimingute korral seoses sõnumiga paketi installimise või eemaldamisega, võib Aptitude soovitada võimalikke meetmeid selle konflikti kõrvaldamiseks.

Aptitude pakub võimsat otsingut, mida saab kasutada peaaegu kõigi pakettide otsimiseks mitte ainult süsteemis, vaid ka kogu hoidlas.

Kui apt-get vajab paketi otsimiseks teist apt-i varianti, st apt-cache, pakub Aptitude palju lihtsamat ja tõhusamat viisi paketi otsimiseks, mis on installitud või hoidlas olemas, kuid pole veel installitud.

$ 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

Siin otsivad vaikimisi nii apt-cache kui ka aptitude paketti kogu hoidlate pakettide loendis, kuid aptitude'i väljund näitab, kas pakett on süsteemi installitud või mitte, andes paketi kohta lipu, mis siin on p , mis näitab, et pakett on olemas, kuid pole installitud, ja i , mis näitab, et pakett on installitud, samas kui apt-cache loetleb lihtsalt paketi ja selle ühe rea üksikasjad, andmata teada, kas pakett on installitud või mitte.

1. Paketi otsimine hoidlast, kus paketi nimes on python2.7 ja kirjelduses 2.7 .

$ 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

Siin tähistab ~ n nime ja ~ d tähistab kirjeldust. Sama käsu teine vorm on:

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

  1. ~ i või? install() : paketi otsimine ainult installitud pakettide loendist.
  2. ~ U või ~ Upgradable : loetleb kõik paketid, mida on võimalik uuemate versioonidega uuendada.
  3. ~ E või? Essential() : need paketid on installitud või saadaval, mis on hädavajalikud.

$ 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 

Nagu siin kuvatud lühike loend kolmest paketist, millel on installitud versioon (tähistatud tähisega i ) ja nende täiendatava versiooniga (tähistatud tähisega p ).

Kõigi pakettide leidmiseks, kes pakuvad smtp-teenust, toimige järgmiselt.

$ 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

Nagu siin, loetleme ka kõik paketid, mis pakuvad paketti 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 

Järeldus

Nii et enamikul juhtudel hoitakse võimekuse süntaksit peaaegu samana kui apt-getis, et apt-get kasutajad saaksid Aptitude'i migreerimisel vähem valu, kuid lisaks sellele integreeritakse võimekusse ka palju võimsaid funktsioone mis muudavad selle valituks. Peale nende meie esile tõstetud erinevuste, kui leiate nende kahe paketihalduri vahel muid huvitavaid erinevusi, mainige neid oma kommentaarides.