Product SiteDocumentation Site

Kapittel 6. Vedlikehold og oppdateringer; ATP-verktøyene

6.1. Å fylle inn sources.list-filen
6.1.1. Syntaks
6.1.2. Kodelageret for Stable brukere
6.1.3. Kodelager for Testing/Unstable brukere
6.1.4. Uoffisielle ressurser: mentors.debian.net
6.1.5. Mellomlagringstjener for Debian-pakker
6.2. aptitude, apt-get, og apt-kommandoer
6.2.1. Initialisering
6.2.2. Installere og fjerne
6.2.3. Oppgradering av systemet
6.2.4. Konfigureringsvalg
6.2.5. Styring av pakkeprioriteter
6.2.6. Å arbeide med flere distribusjoner
6.2.7. Å finne installerte pakker automatisk
6.3. Kommandoen apt-cache
6.4. Brukergrensesnitt (Frontends): aptitude, synaptic
6.4.1. aptitude
6.4.2. synaptic
6.5. Sjekking av pakkeautensitet
6.6. Oppgradering fra en stabil distribusjon til den neste
6.6.1. Anbefalt prosedyre
6.6.2. Å håndtere problemer etter en oppgradering
6.7. Å holde systemet oppdatert
6.8. Automatiske oppgraderinger
6.8.1. Konfigurasjon (oppsett) dpkg
6.8.2. Å konfigurere APT
6.8.3. Å konfigurere debconf
6.8.4. Å håndtere kommandolinjesamhandling
6.8.5. Mirakelkombinasjonen
6.9. Søke etter pakker
Hva som gjør Debian så populært hos administratorer er hvor lett programvaren kan installeres, og hvor lett hele systemet kan oppdateres. Denne unike fordelen er hovedsakelig på grunn av APT-programmet, som Falcot Corp administratorene studerte med entusiasme.
APT er forkortelse for Advanced Package Tool. Hva som gjør dette programmet «avansert» er tilnærmingen til pakker. Det betyr ikke bare å vurdere dem hver for seg, men det anser dem som en helhet, og gir den best mulige kombinasjon av pakker, avhengig av hva som er tilgjengelig og kompatibelt (ut fra avhengigheter).
APT trenger å bli gitt en «liste over pakkekilder»: filen /etc/apt/sources.list vil liste de ulike pakkebrønner (eller «kilder») som publiserer Debian-pakker. APT vil deretter importere listen over pakker utgitt av hver av disse kildene. Denne operasjonen oppnås ved å laste ned Packages.xz, eller en variant som bruker en annen pakkemetode (slik som Packages.gz, eller .bz2)-filer (i tilfelle fra en kilde med binærpakker) og Sources.xz, eller en variant (i tilfelle av en kilde med kildepakker), og ved å analysere innholdet. Når en gammel kopi av disse filene allerede er til stede, kan APT oppdatere den ved bare å laste ned forskjellene (se sidestolpe TIPS Trinnvis oppgradering).

6.1. Å fylle inn sources.list-filen

6.1.1. Syntaks

Hver aktiv linje i /etc/apt/sources.list-filen inneholder beskrivelsen av en kilde, laget av 3 deler atskilt med mellomrom.
Det første feltet indikerer kildetype:
  • «deb» for binærpakker,
  • «deb-src» for kildepakker.
Det andre feltet gir kildens base-URL (kombinert med filnavnene liggende i Packages.gz-filene, må det gi en fullstendig og gyldig URL): Dette kan komme fra et Debian-speil, eller fra en annen pakkebrønn satt opp av en tredjepart. Nettadressen kan starte med file:// for å indikere at en lokal kilde er installert i systemets filhierarki, med http:// for å indikere at en kilde er tilgjengelig fra en netttjener, eller medftp:// for en kilde som er tilgjengelig på en FTP-tjener. URL-en kan også starte med cdrom: for CD-ROM/DVD-ROM/Blu-ray-baserte installasjoner fra disk, selv om dette er sjeldnere når nett-baserte installasjoner er mer og mer vanlige.
Syntaksen i det siste feltet avhenger av strukturen i kodelageret. I de enkleste tilfellene kan du bare indikere en undermappe (med en obligatorisk skråstrek) for ønsket kilde (dette er ofte et enkelt «./» som refererer til fraværet av en underkatalog — pakkene er så direkte på den angitte URL). Men i de vanligste tilfellene vil kildebrønnene være strukturert som et Debian-speil, med flere distribusjoner som hver har flere komponenter. I de tilfellene, gi navnet på den valgte distribusjonen (ved sitt «kodenavn» - se listen i sidefeltet FELLESSKAP Bruce Perens, en kontroversiell leder — eller i de «suites» som svarer til — stable, testing, unstable), så komponentene (eller seksjonene) for å aktivere (valgt mellom main, contrib, og non-free i et typisk Debian-speil).
The cdrom-innganger beskriver den CD/DVD-ROM du har. I motsetning til andre innganger, er en CD-ROM ikke alltid tilgjengelig fordi den må settes inn i stasjonen, og fordi bare én disk kan leses om gangen. Av disse grunnene brukes disse kildene på en litt annen måte, og apt-cdrom-programmet må legges til, vanligvis utløst med add-parameteret. Dette siste vil be om at disken settes inn i stasjonen, og vil bla gjennom innholdet på jakt etter pakke-filer. Det vil bruke disse filene til å oppdatere sin database med tilgjengelige pakker (denne operasjonen gjøres vanligvis ved apt update-kommandoen). Fra da av kan APT kreve at disken settes inn om det behov for en av pakkene derfra.

6.1.2. Kodelageret for Stable brukere

Her er en standard sources.list for et system som kjører Stable versjonen av Debian:

Eksempel 6.1. /etc/apt/sources.list-fil for brukere av Debian Stable

# Sikkerhetsoppdateringer
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

## Debian-speil

# Grunnlagspakkelager
deb http://ftp.debian.org/debian jessie main contrib non-free
deb-src http://ftp.debian.org/debian jessie main contrib non-free

# Oppdateringer for stable
deb http://ftp.debian.org/debian jessie-updates main contrib non-free
deb-src http://ftp.debian.org/debian jessie-updates main contrib non-free

# Tilbakeførte versjoner for stable
deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free
Denne filen inneholder alle kilder til pakker assosiert med Jessie-versjonen av Debian (som i skrivende stund er Stable. Vi valgte å nevne «Jessie» eksplisitt istedenfor å bruke det samsvarende «stable» aliaset (stable, stable-updates, stable-backports) fordi vi ikke ønsker å ha den underliggende distribusjonen endret uten vår kontroll når den neste stabile utgaven kommer ut.
De fleste pakker vil komme fra «basiskodelagere» som inneholder alle pakkene, men sjelden blir oppdatert (omtrent en gang hver 2. måned for en «point release»). De andre kodelagrene inneholder ikke alle pakkene, og kan være vert for oppdateringer (pakker med en nyere versjon) som APT kan installere. Følgende avsnitt vil forklare hensikten og reglene om hver av disse kodelagrene.
Merk at når den ønskede versjonen av en pakke er tilgjengelig fra flere kodelagre, vil den første oppførte sources.list-filen bli benyttet. Av denne grunn blir ikke-offentlige kilder vanligvis lagt til ved slutten av filen.
Som en sidekommmentar, det meste av hva denne seksjonen sier om Stable gjelder like meget Oldstable, ettersom den siste bare er en eldre Stable som er vedlikeholdt parallelt.

6.1.2.1. Sikkerhetsoppdateringer

Sikkerhetsoppdateringene ligger ikke i det vanlige Debian nettarkivet, men på security.debian.org (på et lite sett med maskiner vedlikeholdt av Debian System Administrators). Dette arkivet inneholder sikkerhetsoppdateringer (utarbeidet av Debian Security Team og/eller av pakkevedlikeholdere) for Stable-distribusjonen.
Serveren kan også ha sikkerhetsoppdateringer for Testing, men det skjer ikke svært ofte siden disse oppdateringer tenderer til å nå Testing via den regulære flyten av oppdateringer fra Unstable.

6.1.2.2. Stabile oppdateringer

Stabile oppdateringer er ikke sikkerhetssensitive, men anses viktige nok til å leveres til brukere før neste stabile utgivelse.
Dette pakkearkivet vil normalt inneholde feilrettinger for kritiske feil som ikke kunne bli ordnet før utgivelse, eller som har blitt lagt inn ved påfølgende oppdateringer. Avhengig av om det haster, kan det også inneholde oppdateringer for pakker som må utvikles over tid ... som spamassassins deteksjonsregler for spam, clamavs virus database, eller sommertidsregler for alle tidssoner (tzdata).
I praksis er denne kodebrønnen en undergruppe av proposed-updates kodebrønnen, omhyggelig valgt ut av vedlikeholderne av «Stable»-utgivelsen.

6.1.2.3. Foreslåtte oppdateringer

Etter utgivelsen blir Stable-distributsjonen bare oppdatert en gang hver annen måned. proposed-updates-kodelageret er der den forventede oppdateringer forberedes (under tilsyn av «Stable»-utgivelsens vedlikeholdere).
Sikkerheten og stabile oppdateringer som er dokumentert i de foregående avsnittene, er alltid med i dette kodelageret, men det er mer også, fordi pakkens vedlikeholdere har også mulighet til å fikse viktige feil som ikke fortjener å bli gitt ut med en gang.
Alle kan bruke dette kodelageret for å teste disse oppdateringene før den offentlige publiseringen. Utdraget nedenfor bruker jessie-proposed-updates-aliaset som både er mer eksplisitt og mer konsekvent, wheezy-proposed-updates er også der (for oppdateringene av Oldstable):
deb http://ftp.debian.org/debian jessie-proposed-updates main contrib non-free

6.1.2.4. Stabile tilbakeføringer

stable-backportskodelager har «pakketilbakeføringer». Begrepet refererer til en pakke med noen nyere programmer som har blitt kompilert for en eldre distribusjon, vanligvis for Stable.
Når distribusjonen blir litt utdatert, har mange programvareprosjekter lansert nye versjoner som ikke er integrert i den nåværende Stable (som bare er modifisert for å løse de mest kritiske problemer, slik som sikkerhetsproblemer). Ettersom Testing og Unstable-distribusjoner kan være mer risikable, tilbyr pakkevedlikeholderne noen ganger rekompileringer av nyere programmer forStable, som har fordelen å begrense mulig ustabilitet til et lite antall valgte pakker.
stable-backports kodelageret er nå tilgjengelig fra de vanlige Debian-speilene. Men tilbakeføringer for Squeeze ligger fremdeles på en en egen tjener (backports.debian.org), og krever den følgende sources.list inngangen:
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
Tilbakeføringer fra stable-backports er alltid laget fra pakker som er tilgjengelig i Testing. Det sikrer at alle installerte tilbakeføringer kan oppgraderes til den samsvarende stabile versjonen så snart den neste stabile utgivelsen av Debian er tilgjengelig.
Selv om dette arkivet gir nyere versjoner av pakker, vil ikke APT installere dem med mindre du gir klare instruksjoner om å gjøre det (eller hvis du ikke allerede har gjort det med en tidligere versjon av den gitte tilbakeføringen):
$ sudo apt-get install package/jessie-backports
$ sudo apt-get install -t jessie-backports package

6.1.3. Kodelager for Testing/Unstable brukere

Her er en standard sources.list for et system som kjører Testing, eller Unstable-versjonen av Debian:

Eksempel 6.2. /etc/apt/sources.list-fil for brukere av Debian Testing/Unstable

# Unstable
deb http://ftp.debian.org/debian unstable main contrib non-free
deb-src http://ftp.debian.org/debian unstable main contrib non-free

# Testing
deb http://ftp.debian.org/debian testing main contrib non-free
deb-src http://ftp.debian.org/debian testing main contrib non-free

# Stable
deb http://ftp.debian.org/debian stable main contrib non-free
deb-src http://ftp.debian.org/debian stable main contrib non-free

# Sikkerhetsoppdateringer
deb http://security.debian.org/ stable/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
Med denne sources.list fil vil APT installere pakker fra Unstable. Hvis det ikke er ønsket, bruk APT::Default-Release-settingen (se Seksjon 6.2.3, «Oppgradering av systemet») for å instruere APT til å velge pakker fra en annen distribusjon (mest sannsynlig Testing i dette tilfellet).
Det er gode grunner til å inkludere alle disse kodelagrene, selv om en eneste en skulle være nok. Testing ville brukere sette pris på muligheten til å velge seg ut en fast pakke fra Unstable når versjonen i Testing berøres av en irriterende feil. På den andre siden, Unstable-brukere som treffer på uventede regresjoner, har muligheten til å nedgradere pakkene til Testing-versjonen (som forutsettes å virke).
Å inkludere Stable er mer diskutabelt, men det ofte gir tilgang til noen pakker som har blitt fjernet i utviklingsversjoner. Det sikrer også at du får de siste oppdateringene for pakker som ikke har blitt endret siden den siste stabile utgaven.

6.1.3.1. Experimental kodelageret

Arkivet med Experimental-pakker er med i alle Debian-speil, og som ikke er med i Unstable-versjonen ennå, på grunn av at kvaliteten er dårligere. De er ofte programutviklingsversjoner eller pre-versjoner (alpha, beta, utgivelseskandidater...). En pakke kan også bli sendt dit etter å ha fått endringer som kan generere problemer. Utvikleren prøver deretter å avdekke problemer med hjelp av avanserte brukere som kan håndtere alvorlige problemer. Etter dette første trinnet, blir pakken flyttet til Unstable, der den når et mye større publikum, og hvor den vil bli testet i mer detalj.
Experimental brukes vanligvis av dem som ikke har noe imot at systemet deres svikter, og deretter må reparere det. Denne distribusjonen gir mulighet til å importere en pakke som en bruker ønsker å prøve eller bruke om behovet oppstår. Det er akkurat Debians tilnærming, når det legges i APTs sources.list-fil fører det ikke til den systematiske bruken av akkurat disse pakkene. Linjen som må legges til er:
deb http://ftp.debian.org/debian experimental main contrib non-free

6.1.4. Uoffisielle ressurser: mentors.debian.net

Det er mange ikke-offisielle kilder til Debian-pakker lagt ut av avanserte brukere som har rekompilert noen programmer (Ubuntu gjorde dette populært med sin personlige Package Archive service), laget av programmerere som gjør det de har laget tilgjengelig for alle. Selv Debians utviklere tilbyr pre-versjoner av pakken sin på nettet.
mentors.debian.net-området er interessant (selv om det bare gir kildepakkene), fordi det samler pakker opprettet av kandidater til status som offisielle Debian-utviklere, eller av frivillige som ønsker å lage Debian-pakker uten å gå gjennom denne integreringsprosessen. Disse pakkene er gjort tilgjengelige uten kvalitetsgaranti. Sørg for at du sjekker opprinnelsen og integriteten deres, og test dem deretter ut før du vurderer å bruke dem i produksjonen.
Å installere en pakke betyr å gi rotrettigheter til den som har laget den, fordi de fastsetter innholdet i initialiseringsskriptet som kjøres under denne identiteten. Offisielle Debian-pakker er laget av frivillige som er valgt inn og vurdert, og kan forsegle sine pakker, slik at opprinnelsen og integriteten kan kontrolleres.
Generelt, vær skeptisk til en pakke med en opprinnelse du ikke kjenner, og som ikke ligger på en av de offisielle Debian-serverne; vurder i hvilken grad du kan stole på den som har laget den, og sjekk integriteten til pakken.

6.1.5. Mellomlagringstjener for Debian-pakker

Når et helt nettverk av maskiner er konfigurert til å bruke samme eksterne server for å laste ned de samme oppdaterte pakker, vet enhver administrator at det vil være fordelaktig å ha en mellomtjener som virker som et nettverks-lokalt hurtiglager (se sidefelt ORDFORRÅD Cache).
Du kan konfigurere APT til å bruke en «standard» mellomtjener (se Seksjon 6.2.4, «Konfigureringsvalg» etter APT-siden, og Seksjon 11.6, «HTTP/FTP-mellomtjener» etter mellomtjener-siden). Debian økosystem tilbyr imidlertid bedre alternativer for å løse dette problemet. Den egne programvaren som presenteres i dette avsnittet er smartere enn et vanlig mellomtjener hurtiglager fordi de kan stole på den spesifikke strukturen i APTs kodelagre (for eksempel at de vet når enkeltfiler er foreldet eller ikke, og dermed kan justere den tiden de skal beholdes).
apt-cacher og apt-cacher-ng virker som vanlige mellomlager hurtiglager-tjenere. APTs sources.list holdes uendret, mens APT konfigureres til å bruke dem som mellomlager for utgående forespørsler.
approx, på den andre siden, fungerer som en HTTP-tjener som «speiler» et ubegrenset antall eksterne kodelagre i sitt øverste nettadresse-nivå. Tilknytningen mellom disse toppnivå-nettlagrene og de eksterne nettadressene til kodelagrene er lagret i /etc/approx/approx.conf:
# <navn> <url-base-for-pakkelager>
debian   http://ftp.debian.org/debian
security http://security.debian.org
approx kjører som standard på port 9999 via inetd (se Seksjon 9.6, «Super-server inetd»), og krever at brukerne justerer sine sources.list-filer til å peke mot approx-tjeneren:
# Eksempel sources.list peker til en approx server
deb http://apt.falcot.com:9999/security jessie/updates main contrib non-free
deb http://apt.falcot.com:9999/debian jessie main contrib non-free