Izpratne par APT, APT kešatmiņu un to bieži izmantotajām komandām
Ja esat kādreiz izmantojis Debian vai Debian balstītu izplatīšanu, piemēram, Ubuntu vai Linux Mint, iespējams, programmatūras instalēšanai vai noņemšanai esat izmantojis APT pakotņu sistēmu. Pat ja jūs nekad neesat aizmirsis komandrindu, pakotņu pārvaldnieka GUI darbojošā pamata sistēma ir APT sistēma.
Šodien mēs aplūkosim dažas pazīstamas komandas un ienirsim dažās mazāk vai biežāk izmantotās APT komandās un nedaudz apgaismosim šo izcili izstrādāto sistēmu.
Kas ir APT?
APT nozīmē Advanced Package Tool. Pirmo reizi tas tika redzams Debian 2.1 versijā 1999. gadā. Būtībā APT ir dpkg pakotņu pārvaldības sistēma, kā redzams ar paplašinājumu * .deb. Tas tika izstrādāts, lai ne tikai pārvaldītu paketes un atjauninājumus, bet arī atrisinātu daudzas atkarības problēmas, instalējot noteiktas paketes.
Kā ikviens, kurš šajās pionieru dienās izmantoja Linux, mēs pārāk labi bijām pazīstami ar jēdzienu “atkarības elle”, mēģinot apkopot kaut ko no avota vai pat nodarbojoties ar vairākiem Red Hat atsevišķiem RPM failiem.
APT visus šos atkarības jautājumus atrisināja automātiski, padarot jebkuras paketes instalēšanu neatkarīgi no atkarību lieluma vai skaita par vienas rindas komandu. Tiem no mums, kas stundām ilgi strādāja pie šiem uzdevumiem, šis bija viens no tiem “saules dalīšanās mākoņos” mirkļiem mūsu Linux dzīvē!
Izpratne par APT konfigurāciju
Šis pirmais fails, kuru apskatīsim, ir viens no APT konfigurācijas failiem.
$ sudo cat /etc/apt/sources.list
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise main deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise main deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates main deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates main deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise universe deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise universe deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates universe deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates universe deb http://security.ubuntu.com/ubuntu precise-security main deb-src http://security.ubuntu.com/ubuntu precise-security main deb http://security.ubuntu.com/ubuntu precise-security universe deb-src http://security.ubuntu.com/ubuntu precise-security universe
Kā jūs droši vien varat secināt no mana sources.list faila, es izmantoju Ubuntu 12.04 (Precise Pangolin). Es izmantoju arī trīs krātuves:
- galvenā krātuve
- Visuma krātuve
- Ubuntu drošības krātuve
Šī faila sintakse ir samērā vienkārša:
deb (url) release repository
Pavadošā rinda ir avota failu krātuve. Tam ir līdzīgs formāts:
deb-src (url) release repository
Šis fails ir gandrīz vienīgais, kas jums kādreiz būs jārediģē, izmantojot APT, un, visticamāk, noklusējumi jūs diezgan labi servēs un jums to nekad nevajadzēs rediģēt.
Tomēr dažreiz jūs varētu vēlēties pievienot trešo personu krātuves. Jūs tos vienkārši ievadīsit, izmantojot to pašu formātu, un pēc tam palaidiet atjaunināšanas komandu:
$ sudo apt-get update
PIEZĪME: Esiet ļoti uzmanīgs, pievienojot trešo personu krātuves !!! Pievienojiet tikai no uzticamiem un cienījamiem avotiem. Pievienojot neveiklas krātuves vai sajaucot izlaidumus, sistēma var nopietni sajaukt!
Mēs esam apskatījuši mūsu failu source.list un tagad zinām, kā to atjaunināt, un kas notiks tālāk? Instalēsim dažus pakotnes. Pieņemsim, ka mēs izmantojam serveri un mēs vēlamies instalēt WordPress. Vispirms meklēsim paketi:
$ sudo apt-cache search wordpress
blogilo - graphical blogging client drivel - Blogging client for the GNOME desktop drupal6-mod-views - views modules for Drupal 6 drupal6-thm-arthemia - arthemia theme for Drupal 6 gnome-blog - GNOME application to post to weblog entries lekhonee-gnome - desktop client for wordpress blogs libmarkdown-php - PHP library for rendering Markdown data qtm - Web-log interface program tomboy-blogposter - Tomboy add-in for posting notes to a blog wordpress - weblog manager wordpress-l10n - weblog manager - language files wordpress-openid - OpenID plugin for WordPress wordpress-shibboleth - Shibboleth plugin for WordPress wordpress-xrds-simple - XRDS-Simple plugin for WordPress zine - Python powered blog engine
Kas ir APT kešatmiņa?
Apt-cache ir komanda, kas vienkārši vaicā APT kešatmiņu. Mēs tam nodevām meklēšanas parametru, norādot, ka, protams, mēs vēlamies to meklēt APT. Kā redzam iepriekš, meklējot vārdu “wordpress”, tika atgriezti vairāki paketes, kas saistītas ar meklēšanas virkni, ar īsu katras paketes aprakstu.
No tā mēs redzam galveno “wordpress - weblog manager” paketi un vēlamies to instalēt. Bet vai nebūtu jauki redzēt, kādas tieši atkarības tiks instalētas kopā ar to? Arī APT to mums var pateikt:
$ sudo apt-cache showpkg wordpress
Versions: 3.3.1+dfsg-1 (/var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages) Description Language: File: /var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages MD5: 3558d680fa97c6a3f32c5c5e9f4a182a Description Language: en File: /var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_i18n_Translation-en MD5: 3558d680fa97c6a3f32c5c5e9f4a182a Reverse Depends: wordpress-xrds-simple,wordpress wordpress-shibboleth,wordpress 2.8 wordpress-openid,wordpress wordpress-l10n,wordpress 2.8.4-2 Dependencies: 3.3.1+dfsg-1 - libjs-cropper (2 1.2.1) libjs-prototype (2 1.7.0) libjs-scriptaculous (2 1.9.0) libphp-phpmailer (2 5.1) libphp-simplepie (2 1.2) libphp-snoopy (2 1.2.4) tinymce (2 3.4.3.2+dfsg0) apache2 (16 (null)) httpd (0 (null)) mysql-client (0 (null)) libapache2-mod-php5 (16 (null)) php5 (0 (null)) php5-mysql (0 (null)) php5-gd (0 (null)) mysql-server (2 5.0.15) wordpress-l10n (0 (null)) Provides: 3.3.1+dfsg-1 - Reverse Provides:
Tas mums parāda, ka WordPress 3.3.1 ir instalējamā versija, krātuve, no kuras tā jāinstalē, apgrieztās atkarības un citas paketes, no kurām tā ir atkarīga, kā arī to versiju numuri.
PIEZĪME: (null nozīmē, ka versija nav definēta, un tiks instalēta jaunākā krātuves versija.)
Tagad faktiskā instalēšanas komanda:
$ sudo apt-get install wordpress
Šī komanda instalēs WordPress-3.3.1 un visas atkarības, kas pašlaik nav instalētas.
Protams, tas nav viss, ko jūs varat darīt ar APT. Dažas citas noderīgas komandas ir šādas:
PIEZĪME. Labā prakse ir palaist apt-get update pirms jebkuras APT komandu sērijas palaišanas. Atcerieties, ka apt-get update parsē jūsu /etc/apt/sources.list failu un atjaunina tā datubāzi.
Pakotnes atinstalēšana ir tikpat vienkārša kā pakotnes instalēšana:
$ sudo apt-get remove wordpress
Diemžēl komanda apt-get remove atstāj neskartus visus konfigurācijas failus. Lai noņemtu arī tos, ieteicams izmantot apt-get purge:
$ sudo apt-get purge wordpress
Ik pa brīdim jūs varat saskarties ar situāciju, kad ir sadalītas atkarības. Tas parasti notiek, ja pareizi neizdodas atjaunināt apt-get update, sagrozot datu bāzi. Par laimi, APT to labo:
$ sudo apt-get –f install
Tā kā APT lejupielādē visus * .deb failus no repozitorija tieši uz jūsu mašīnu (tos uzglabā mapē/var/cache/apt/archives), ieteicams tos periodiski noņemt, lai atbrīvotu vietu diskā:
$ sudo apt-get clean
Šī ir tikai neliela daļa APT, APT-Cache un dažas no tās noderīgajām komandām. Zemāk rakstā joprojām ir daudz jāmācās un jāizpēta dažas papildu komandas.
- 25 noderīgas un uzlabotas APT-GET un APT-CACHE komandas
Kā vienmēr, lūdzu, apskatiet rokasgrāmatas, lai uzzinātu vēl vairāk iespēju. Kad kāds ir apguvis APT, ir iespējams uzrakstīt lieliskus Cron skriptus, lai sistēma būtu atjaunināta.