Forståelse af APT, APT-cache og deres hyppigt anvendte kommandoer


Hvis du nogensinde har brugt Debian eller en Debian-baseret distribution som Ubuntu eller Linux Mint, er chancerne for, at du har brugt APT-pakkesystemet til at installere eller fjerne software. Selvom du aldrig har dablet på kommandolinjen, er det underliggende system, der styrer din pakkehåndterings-GUI, APT-systemet.

I dag skal vi se på nogle velkendte kommandoer og dykke ned i nogle mindre eller oftere anvendte APT-kommandoer og kaste lys over dette strålende designede system.

Hvad er APT?

APT står for Advanced Package Tool. Det blev først set i Debian 2.1 tilbage i 1999. I det væsentlige er APT et styringssystem for dpkg-pakker, som det ses med udvidelsen * .deb. Det var designet til ikke kun at styre pakker og opdateringer, men at løse de mange afhængighedsproblemer, når du installerer bestemte pakker.

Som alle, der brugte Linux tilbage i disse pionerdage, var vi alt for fortrolige med udtrykket "afhængighedshelvede", når vi forsøgte at kompilere noget fra kilden, eller endda når vi beskæftiger os med et antal Red Hats individuelle RPM-filer.

APT løste alle disse afhængighedsproblemer automatisk, hvilket gør installation af enhver pakke, uanset størrelsen eller antallet af afhængigheder, en kommando med en linje. For dem af os, der arbejdede i timevis på disse opgaver, var dette en af de "solskille skyer" øjeblikke i vores Linux liv!

Forståelse af APT-konfiguration

Denne første fil, vi skal se på, er en af APTs konfigurationsfiler.

$ 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

Som du sandsynligvis kan udlede fra min sources.list-fil, bruger jeg Ubuntu 12.04 (Precise Pangolin). Jeg bruger også tre arkiver:

  1. Hovedlager
  2. Universlager
  3. Ubuntu Sikkerhedsopbevaring

Syntaksen for denne fil er relativt enkel:

deb (url) release repository

Den medfølgende linje er kildefilens lager. Det følger et lignende format:

deb-src (url) release repository

Denne fil er stort set det eneste, du nogensinde bliver nødt til at redigere ved hjælp af APT, og chancerne er, at standardindstillingerne serverer dig ret godt, og at du slet ikke behøver at redigere den.

Der er dog tidspunkter, hvor du måske vil tilføje tredjepartsregistre. Du ville blot indtaste dem i det samme format og derefter køre opdateringskommandoen:

$ sudo apt-get update

BEMÆRK: Vær meget opmærksom på at tilføje tredjepartsregistre !!! Tilføj kun fra pålidelige og velrenommerede kilder. Tilføjelse af risikable opbevaringssteder eller blandingsudgivelser kan ødelægge dit system alvorligt!

Vi har kigget på vores sources.list-fil og ved nu, hvordan vi opdaterer den, så hvad er der næste? Lad os installere nogle pakker. Lad os sige, at vi kører en server, og vi vil installere WordPress. Lad os først søge efter pakken:

$ 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

Hvad er APT-Cache?

Apt-cache er en kommando, der blot spørger APT-cachen. Vi sendte søgeparameteren til den og sagde, at vi naturligvis vil søge APT efter den. Som vi kan se ovenfor, returnerede søgning efter “wordpress” et antal pakker, der relaterede til søgestrengen med en kort beskrivelse af hver pakke.

Fra dette ser vi hovedpakken med "wordpress - weblog manager", og vi vil installere den. Men ville det ikke være rart at se nøjagtigt, hvilke afhængigheder der skal installeres sammen med det? APT kan også fortælle os det:

$ 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:

Dette viser os, at wordpress 3.3.1 er den version, der skal installeres, det lager, det skal installeres fra, omvendte afhængigheder og andre pakker, det afhænger af, plus deres versionsnumre.

BEMÆRK: (null betyder, at versionen ikke er defineret, og den nyeste version i arkivet installeres.)

Nu er den aktuelle installationskommando:

$ sudo apt-get install wordpress

Denne kommando installerer WordPress-3.3.1 og alle afhængigheder, der ikke er installeret i øjeblikket.

Selvfølgelig er det ikke alt, hvad du kan gøre med APT. Nogle andre nyttige kommandoer er som følger:

BEMÆRK: Det er en god praksis at køre apt-get-opdatering, før du kører en række APT-kommandoer. Husk, apt-get update analyserer din /etc/apt/sources.list-fil og opdaterer dens database.

Afinstallation af en pakke er lige så let som at installere pakken:

$ sudo apt-get remove wordpress

Desværre efterlader kommandoen apt-get remove alle konfigurationsfilerne intakte. For at fjerne dem også skal du bruge apt-get purge:

$ sudo apt-get purge wordpress

Nu og da kan du muligvis løbe over en situation, hvor der er brudte afhængigheder. Dette sker normalt, når du ikke kører apt-get opdatering ordentligt og mangler databasen. Heldigvis har APT en løsning på det:

$ sudo apt-get –f install

Da APT downloader alle * .deb-filerne fra lageret direkte til din maskine (gemmer dem i/var/cache/apt/arkiver), kan du med jævne mellemrum fjerne dem for at frigøre diskplads:

$ sudo apt-get clean

Dette er kun en lille brøkdel af APT, APT-Cache og nogle af dens nyttige kommandoer. Der er stadig meget at lære og udforske nogle mere avancerede kommandoer i nedenstående artikel.

  1. 25 Nyttige og avancerede kommandoer til APT-GET og APT-CACHE

Som altid skal du kigge på mandsiderne for endnu flere muligheder. Når man først er fortrolig med APT, er det muligt at skrive fantastiske Cron-scripts for at holde systemet opdateret.