Kas ir APT un spēja? un kāda ir viņu patiesā atšķirība?


Spēja un apt-get ir divi populāri rīki, kas apstrādā pakotņu pārvaldību. Abi ir pakļauti visu veidu darbībām paketēs, ieskaitot instalēšanu, noņemšanu, meklēšanu utt. Tomēr starp abiem rīkiem ir atšķirības, kas liek lietotājiem dot priekšroku citiem. Kādas ir atšķirības, kas liek šos divus rīkus aplūkot atsevišķi, ir šī raksta darbības joma.

Kas ir Apt

Apt vai Advanced Packaging Tool ir bezmaksas un atvērta pirmkoda programmatūra, kas graciozi apstrādā programmatūras instalēšanu un noņemšanu. Sākotnēji tas tika izstrādāts Debian pakotnēm .deb , taču tas tika padarīts savietojams ar RPM Package Manager.

Apt ir visa komandrinda bez GUI. Ikreiz, kad tiek izsaukts no komandrindas, norādot instalējamās pakotnes nosaukumu, tā atrod šo pakotni konfigurētajā avotu sarakstā, kas norādīts “/etc/apt/sources.list”, kā arī šīs pakotnes atkarību sarakstu un sakārto tos un automātiski instalē tos kopā ar pašreizējo pakotni, tādējādi ļaujot lietotājam neuztraukties par atkarību instalēšanu.

Tas ir ļoti elastīgs, ļaujot lietotājam viegli kontrolēt dažādas konfigurācijas, piemēram: jebkura jauna avota pievienošana paku meklēšanai, apt-pinning, ti, visas paketes atzīmēšana, kas nav pieejama sistēmas atjaunināšanas laikā, tādējādi padarot tās pašreizējo versiju par tās galīgo instalēto versiju, “gudru” jaunināt, ti, uzlabot vissvarīgākās paketes un atstāt mazāk svarīgās paketes.

Kas ir spēja?

Aptitude ir uzlabotas iesaiņošanas rīks, kas funkcionalitātei pievieno lietotāja saskarni, tādējādi ļaujot lietotājam interaktīvi meklēt pakotni un instalēt vai noņemt to. Sākotnēji izveidots Debain, Aptitude paplašina savu funkcionalitāti arī uz RPM balstītiem izplatījumiem.

Tās lietotāja saskarne ir balstīta uz ncurses bibliotēku, kas tai pievieno dažādus elementus, kas parasti redzami GUI. Viens no tā izcilākajiem ir tas, ka tas var atdarināt lielāko daļu apt-get komandrindas argumentu.

Kopumā Aptitude ir augstāka līmeņa pakotņu pārvaldnieki, kas apkopo zema līmeņa informāciju un var darboties gan uz tekstu balstītā interaktīvā lietotāja interfeisa režīmā, gan pat komandrindas neinteraktīvā režīmā.

Ja vēlaties uzzināt APT un Aptitude lietojumu ar reāliem pasaules piemēriem, jums vajadzētu pāriet uz šiem rakstiem.

  1. Uzziniet 25 noderīgus piemērus par APT-GET un APT-Cache
  2. Uzziniet Linux pakotņu pārvaldību ar piemērotību un Dpkg

Kādas ir atšķirības starp APT un piemērotību?

Papildus galvenajai atšķirībai ir tā, ka Aptitude ir augsta līmeņa pakotņu pārvaldnieks, bet APT ir zemāka līmeņa pakotņu pārvaldnieks, kuru var izmantot citi augstāka līmeņa pakotņu pārvaldnieki, citi galvenie akcenti, kas nošķir šos divus pakotņu pārvaldniekus, ir:

  1. Spēja ir plašāka nekā apt-get funkcionalitāte, un tā integrē apt-get un citu tā variantu, tostarp apt-mark un apt-cache, funkcijas.

Lai gan apt-get apstrādā visu pakotņu instalēšanu, pakāpenisku uzlabošanu, sistēmas jaunināšanu, paketes attīrīšanu, atkarību novēršanu utt., Aptitude apstrādā daudz vairāk lietu nekā apt, ieskaitot apt-mark un apt-cache funkcijas, ti, meklējot paketi instalēto pakotņu saraksts, atzīmējot paketi automātiski vai manuāli instalējamu, turot paketi, padarot to nepieejamu jaunināšanai un tā tālāk.

  1. Lai gan apt-get trūkst lietotāja saskarnes, lietotnei Aptitude ir tikai teksta un interaktīva lietotāja saskarne

Apt-get kā zemāka līmeņa pakotņu pārvaldnieks ir ierobežots tikai ar komandrindu, savukārt Aptitude kā augstāka līmeņa rīkam ir noklusējuma tikai teksta interaktīvs interfeiss, kā arī komandrindas darbības iespēja, ievadot nepieciešamās komandas.

  1. Spējai ir labāka pakotņu pārvaldība nekā apt-get

Daudzās situācijās, kas saistītas ar pakotņu instalēšanu, noņemšanu un konfliktu risināšanu, Aptitude pierāda savu vērtību, nevis apt-get. Dažās situācijās ietilpst:

1. Noņemot jebkuru instalēto pakotni, Aptitude automātiski noņems neizmantotās paketes, savukārt apt-get vajadzēs, lai lietotājs to skaidri norādītu, vai nu pievienojot papildu opciju '—auto-remove' , vai norādot 'apt-get autoremove' .4

2. Lai sīkāk izpētītu, kāpēc noteikta darbība tiek bloķēta vai kāpēc vai kāpēc nav jāveic noteikta darbība, Aptitude piedāvā komandas why un ‘why-not’.

Patīk: Aptitude var atrast iemeslu konkrētas pakotnes instalēšanai, apskatot instalēto pakotņu sarakstu un pārbaudot, vai kādam no viņu ieteiktajiem pakotnēm ir atkarība vai kāda no viņu atkarībām liecina par šo paketi vai tā tālāk.

$ 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

Tāpat kā šeit, tā meklēja iemeslu instalēt paketi ar nosaukumu yaws-wiki , lai to ierosinātu atkarība (yaws) , kas nodrošina virtuālo paketi ( httpd-cgi) no kuras paketei (dwww) ir atkarība, un paketi (dwww) iesaka viena no instalētajām pakotnēm ar nosaukumu doc-base .

Šī funkcija trūkst apt-get.

3. Kaut arī apt-get, iespējams, beigtos konfliktējošu darbību gadījumā attiecībā uz pakotnes ar ziņojumu instalēšanu vai noņemšanu, Aptitude var ieteikt iespējamos pasākumus šī konflikta novēršanai.

Aptitude nodrošina spēcīgu meklēšanu, kuru var izmantot, lai meklētu gandrīz jebkuru paketi ne tikai sistēmā, bet arī visā repozitorijā.

Kamēr apt-get ir nepieciešams cits apt variants, t.i., apt-cache, lai meklētu pakotni, Aptitude nodrošina daudz vienkāršāku un efektīvāku veidu, kā meklēt pakotni, kas ir vai nu instalēta, vai atrodas krātuvē, bet vēl nav jāinstalē.

$ 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

Šeit pēc noklusējuma gan apt-cache, gan aptitude meklē pakotni visam repozitorija pakotņu sarakstam, bet aptitude izeja parāda, vai pakotne ir instalēta sistēmā, vai nē, piešķirot katras pakotnes karodziņu, kas šeit ir p , kas norāda, ka pakete ir, bet nav instalēta, un i , kas norāda, ka pakete ir instalēta, turpretī apt-cache tikai norāda pakotni un tās vienas rindiņas detaļas, nezinot, vai pakotne ir instalēta vai nē.

1. Pakotnes meklēšana krātuvē ar python2.7 paketes nosaukumā un 2.7 tās aprakstā.

$ 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

Šeit ~ n norāda vārdu un ~ d norāda aprakstu. Cita tās pašas komandas forma ir:

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

  1. ~ i vai? Install() : Pakotnes meklēšana notiek tikai instalēto pakotņu sarakstā.
  2. ~ U vai ~ Upgradable : Uzskaita visas paketes, kuras var jaunināt ar jaunākajām pieejamajām versijām.
  3. ~ E vai? Essential() : instalētās vai pieejamās paketes, kas ir būtiskas.

$ 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 

Tāpat kā šeit parādīts īss saraksts ar 3 pakotnēm ar instalētu versiju (apzīmēts ar i ) un to jaunināmo versiju (norādīts ar p ).

Lai atrastu visas paketes, kuras nodrošina smtp pakalpojumu:

$ 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

Tāpat kā šeit, mēs uzskaitām visas paketes, kurās tiek ieteikts “gcc” pakotne.

$ 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 

Secinājums

Tātad vairumā gadījumu Aptitude sintakse tiek saglabāta gandrīz tāda pati kā apt-get, lai apt-get lietotājiem būtu mazāk sāpju, pārejot uz Aptitude, taču papildus tam Aptitude ir integrētas daudzas spēcīgas funkcijas kas padara to par izvēlēto. Bez šīm atšķirībām, kuras mēs izcēlām, ja atrodat citas interesantas atšķirības starp šiem diviem pakotņu pārvaldniekiem, pieminiet tās savos komentāros.