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:

  1. galvenā krātuve
  2. Visuma krātuve
  3. 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.

  1. 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.