Kas yra APT ir Aptitude? ir koks tikras skirtumas tarp jų?


Aptitude ir apt-get yra du populiarūs paketų valdymo įrankiai. Abi gali atlikti visas su paketais susijusias veiklas, įskaitant diegimą, pašalinimą, paiešką ir tt Tačiau vis tiek yra skirtumų tarp abiejų įrankių, dėl kurių vartotojai teikia pirmenybę vienam, o ne kitam. Kokie yra tie skirtumai, dėl kurių šios dvi priemonės turi būti nagrinėjamos atskirai, yra šio straipsnio taikymo sritis.

Kas yra Apt

Apt arba Išplėstinis pakavimo įrankis yra nemokama atvirojo kodo programinė įranga, kuri puikiai įdiegia ir pašalina programinę įrangą. Iš pradžių jis buvo sukurtas Debiano .deb paketams, tačiau buvo suderinamas su RPM paketų tvarkykle.

Apt yra visa komandų eilutė be GUI. Kai iškviečiama iš komandinės eilutės ir nurodomas įdiegtino paketo pavadinimas, jis randa tą paketą sukonfigūruotame šaltinių sąraše, nurodytame "/etc/apt/sources.list" kartu su priklausomybių sąrašu. tam paketui, juos surūšiuoja ir automatiškai įdiegia kartu su dabartiniu paketu, todėl vartotojas nesijaudina dėl priklausomybių diegimo.

Tai labai lanksti, leidžianti vartotojui lengvai valdyti įvairias konfigūracijas, pvz.: pridėti bet kokį naują šaltinį, kad būtų galima ieškoti paketų, prisegti, t. y. pažymėti bet kokį paketą nepasiekiamą sistemos atnaujinimo metu, todėl dabartinė jo versija tampa galutine įdiegta versija, „protingas“ atnaujinimas, t. y. atnaujinami svarbiausi paketai ir paliekami mažiausiai svarbūs paketai.

Kas yra Aptitude?

Aptitude yra išplėstinio pakavimo įrankio sąsaja, kuri prideda prie funkcijų vartotojo sąsają, todėl vartotojas gali interaktyviai ieškoti paketo ir jį įdiegti arba pašalinti. Iš pradžių sukurta „Debain“, „Aptitude“ taip pat išplečia savo funkcijas į RPM pagrįstus paskirstymus.

Jo vartotojo sąsaja pagrįsta ncurses biblioteka, kuri prideda įvairių elementų, dažniausiai matomų GUI. Vienas iš svarbiausių dalykų yra tai, kad jis gali imituoti daugumą apt-get komandinės eilutės argumentų.

Apskritai, Aptitude yra aukštesnio lygio paketų tvarkytuvės, kurios abstrahuoja žemo lygio detales ir gali veikti tiek interaktyviuoju tekstu pagrįstu vartotojo sąsajos režimu, tiek net komandinės eilutės neinteraktyviuoju režimu.

Jei norite sužinoti apie APT ir Aptitude naudojimą su realaus pasaulio pavyzdžiais, turėtumėte pereiti prie šių straipsnių.

  1. Sužinokite 25 naudingų APT-GET ir APT-CACHE pavyzdžių
  2. Išmokite valdyti „Linux“ paketus naudodami „Aptitude“ ir „Dpkg“.

Kuo skiriasi APT ir Aptitude?

Išskyrus pagrindinį skirtumą, kad Aptitude yra aukšto lygio paketų tvarkyklė, o APT yra žemesnio lygio paketų tvarkyklė, kurią gali naudoti kiti aukštesnio lygio paketų tvarkyklės, kitos pagrindinės akcentai, skiriantys šias dvi paketų tvarkykles:

  1. Aptitude yra funkcionalesnė nei apt-get ir apima apt-get bei kitų jo variantų funkcijas, įskaitant apt-mark ir apt -talpykla.

Nors apt-get tvarko visą paketo diegimą, atnaujinimą, sistemos atnaujinimą, paketo išvalymą, priklausomybių šalinimą ir pan., Aptitude tvarko daug daugiau dalykų nei apt, įskaitant apt-mark funkcijas. ir apt-cache, t. y. ieškote paketo įdiegtų paketų sąraše, pažymėkite paketą, kad jis būtų įdiegtas automatiškai arba rankiniu būdu, laikant paketą, todėl jo negalima atnaujinti ir pan.

  1. Nors „apt-get“ nėra vartotojo sąsajos, „Aptitude“ turi tik tekstinę ir interaktyvią vartotojo sąsają

Apt-get, kuris yra žemesnio lygio paketų tvarkyklė, yra apribota tik komandų eilute, o Aptitude, kuris yra aukštesnio lygio įrankis, turi numatytąją interaktyvią tik teksto sąsają ir komandinės eilutės operacijos parinktį įvedant būtiną komandas.

  1. Aptitude turi geresnį paketų valdymą nei apt-get

Daugeliu atvejų, susijusių su paketų diegimu, pašalinimu ir konfliktų sprendimu, „Aptitude“ įrodo savo vertę, o ne „apt-get“. Kai kurios situacijos apima:

1. Pašalinus bet kurį įdiegtą paketą, Aptitude automatiškai pašalins nenaudojamus paketus, o naudojant apt-get naudotojas turės tai aiškiai nurodyti pridėdamas arba papildoma parinktis „—auto-remove“ arba nurodant „apt-get autoremove“.4

2. Norėdami toliau tirti, kodėl tam tikri veiksmai blokuojami arba kodėl arba kodėl nereikėtų atlikti tam tikro veiksmo, „Aptitude“ siūlo kodėl ir kodėl-nekomandos.

Patinka: „Aptitude“ gali rasti priežastį įdiegti tam tikrą paketą, pažvelgusi į įdiegtų paketų sąrašą ir patikrinusi, ar kuris nors iš siūlomų paketų turi priklausomybių, ar kuri nors iš jų priklausomybių rodo, kad paketas ar pan. .

$ 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

Kaip ir čia, ji ieškojo priežasties įdiegti paketą pavadinimu 'yaws-wiki', nes jį siūlo priklausomybė (yaws), kuri suteikia virtualų paketą (httpd-cgi) nuo kurio paketo (dwww) priklauso, o paketą (dwww) siūlo vienas iš įdiegtų paketų pavadinimu ' doc-base'.

Šios funkcijos trūksta apt-get.

3. Nors apt-get tikriausiai išnyks, jei būtų atliktas prieštaringas veiksmas, susijęs su paketo su pranešimu įdiegimu ar pašalinimu, Aptitude gali pasiūlyti galimas priemones konfliktui pašalinti.

Aptitude suteikia galingą paiešką, kurią galima naudoti ieškant beveik bet kokio paketo ne tik sistemoje, bet ir visoje saugykloje.

Nors apt-get reikalingas kitas apt variantas, t. y. apt-cache, kad būtų galima ieškoti paketo, Aptitude suteikia daug paprastesnį ir efektyvesnį būdą ieškoti įdiegto arba esamo paketo. saugykloje, bet dar neįdiegta.

Paketo paieška naudojant 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

Čia pagal numatytuosius nustatymus tiek apt-cache, tiek aptitude ieško paketo visame saugykloje esančių paketų sąraše, tačiau aptitude išvestis rodo, ar paketas įdiegtas sistemoje, ar ne pateikiant paketo vėliavėlę, kuri čia yra 'p', nurodanti, kad paketas yra, bet neįdiegtas, ir 'i', kuri rodo, kad paketas yra įdiegtas, o apt -cache tiesiog pateikia paketo ir jo vienos eilutės detalių sąrašą, nenurodant, ar paketas įdiegtas, ar ne.

Kai kurie kiti išplėstinės paketų paieškos su Aptitude pavyzdžiai

1. Saugykloje ieškoma paketo, kurio pavadinime yra 'python2.7', o aprašyme - '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

Čia '~n' nurodo pavadinimą, o '~d' nurodo aprašymą. Kita tos pačios komandos forma yra:

aptitude search '?name(python2.7) ?description(2.7)'
Kai kurios kitos vėliavos apima:
  1. ~i arba ?installed(): ieškoma paketo tik įdiegtų paketų sąraše.
  2. ~U arba ~Atnaujinama: pateikiami visi paketai, kuriuos galima atnaujinti naudojant naujausias galimas versijas.
  3. ~E arba ?Essential(): tie paketai, kurie yra įdiegti arba pasiekiami, kurie yra būtini.
$ 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 

Kaip čia parodytas trumpas 3 paketų su įdiegta versija (pažymėta 'i') ir jų atnaujinama versija (pažymėta 'p').

2. Visų paketų, kuriuose teikiama tam tikra paslauga, paieška

Norėdami rasti visus paketus, kuriuose teikiama smtp paslauga:

$ 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. Visų paketų, siūlančių tam tikrą paketą, radimas

Kaip ir čia, išvardijame visus paketus, kuriuose siūlomas „gcc“ paketas.

$ 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 

Išvada

Taigi daugeliu atvejų Aptitude sintaksė išlaikoma beveik tokia pati kaip ir apt-get, kad apt-get naudotojams būtų lengviau pereiti prie Aptitude. , bet be to, „Aptitude“ yra integruota daug galingų funkcijų, todėl ją reikia pasirinkti. Be šių skirtumų, kuriuos pabrėžėme, jei pastebėsite kitų įdomių skirtumų tarp šių dviejų paketų tvarkyklių, paminėkite juos savo komentaruose.