6.2. aptitude
, apt-get
, og apt
-kommandoer
APT is a vast project, whose original plans included a graphical interface. It is based on a library which contains the core application, and apt-get
is the first front end — command-line based — which was developed within the project. apt
is a second command-line based front end provided by APT which overcomes some design mistakes of apt-get
.
Tallrike andre grafiske grensesnitt dukket opp som eksterne prosjekter: synaptic
, aptitude
(som inkluderer både et tekstmodus grensesnitt og et grafisk - selv om det ikke er fullført ennå), wajig
, etc. Det mest anbefalte grensesnittet, apt
, er det vi vil bruke i eksemplene vi gir i denne seksjonen. Noter gjerne at apt-get
og aptitude
har en veldig lik kommandolinje-syntaks. Når det er store forskjeller mellom apt
, apt-get
og aptitude
, vil disse forskjellene være detaljerte.
For any work with APT, the list of available packages needs to be updated; this can be done simply through apt update
. Depending on the speed of your connection, the operation can take a while since it involves downloading a certain number of Packages
/Sources
/Translation-language-code
files, which have gradually become bigger and bigger as Debian has developed (at least 10 MB of data for the main
section). Of course, installing from a CD-ROM set does not require any downloading — in this case, the operation is very fast.
6.2.2. Installere og fjerne
With APT, packages can be added or removed from the system, respectively with apt install package
and apt remove package
. In both cases, APT will automatically install the necessary dependencies or delete the packages which depend on the package that is being removed. The apt purge package
command involves a complete uninstallation — the configuration files are also deleted.
Hvis filen
sources.list
nevner flere distibusjoner, er det mulig å gi den versjonen av pakken som skal installeres. Et spesifikt versjonsnummer kan hentes med
apt install pakke=versjon
, men å indikere distribusjonens opprinnelse (
Stable,
Testing eller
Unstable) - med
apt install pakke/distribusjon
- er vanligvis foretrukket. Med denne kommandoen er det mulig å gå tilbake til en eldre versjon av en pakke (hvis for eksempel du vet at den fungerer godt), forutsatt at den er tilgjengelig i en av kildene refererert til av
sources.list
-filen. Ellers kan
snapshot.debian.org
-arkivet komme til hjelp (se sidefelt
GÅR VIDERE Old package versions: snapshot.debian.org
).
Eksempel 6.3. Installasjon av unstable-versjonen av spamassassin
#
apt install spamassassin/unstable
6.2.3. Oppgradering av systemet
Regelmessige oppgraderinger anbefales fordi de inneholder de nyeste sikkerhetsoppdateringene. For å oppgradere bruk apt upgrade
, apt-get upgrade
, eller aptitude safe-upgrade
(selvfølgelig etter apt update
). Denne kommandoen ser etter installerte pakker som kan oppgraderes uten at pakker fjernes. Med andre ord er målet å sikre den minst mulig påtrengende oppgraderingen. apt-get
er litt mer krevende enn aptitude
, eller apt
fordi den vil avslå å installere pakker som ikke var installert på forhånd.
apt
vil vanligvis velge det seneste versjonsnummeret (unntatt for pakker fra Experimental og stable-backports, som ignoreres uansett versjonsnummer). Hvis du spesifiserer Testing, eller Unstable i din sources.list
, vil apt upgrade
skifte til det meste av ditt Stable-system til Testing eller Unstable, som kanskje ikke var det du ville.
Å be apt
om å bruke en bestemt distribusjon når du søker etter oppgraderte pakker, må du bruke -t
or --target-release
-valget, etterfulgt av navnet på distribusjonen du ønsker (for eksempel:apt -t stable upgrade
). For å slippe å spesifisere dette alternativet hver gang du brukerapt
, kan du legge til APT::Default-Release "stable";
i filen /etc/apt/apt.conf.d/local
.
For viktigere oppgraderinger, som for eksempel overgang fra en stor Debian versjon til den neste, må du bruke apt full-upgrade
. Med denne instruksjonen vil apt
fullføre oppgraderingen selv om den må fjerne noen utdaterte pakker, eller installere nye avhengigheter. Dette er også kommandoen som benyttes av brukere som jobber daglig med Debian Unstable-utgaven, og følger dens utvikling dag for dag. Det er så enkelt at det nesten ikke trenger forklaring: APTs omdømme er basert på denne store funksjonaliten.
Til forskjell fra apt
og aptitude
, kjenner ikke apt-get
til full-upgrade
-kommandoen. I stedet skal du bruke apt-get dist-upgrade
(«distribution upgrade»), den historiske og velkjente kommandoen apt
og aptitude
godtas også, til lettelse for de brukerne som ble vant med den.
Foruten de konfigurasjonselementer som allerede er nevnt, er det mulig å konfigurere visse egenskaper ved APT ved å legge til direktiver i en fil i /etc/apt/apt.conf.d/
-mappen. Husk for eksempel at det er mulig for APT å be dpkg
om å ignorere filkonfliktfeil ved å spesifisere DPkg::options { "--force-overwrite"; }
.
Hvis Internettet bare kan nås via en mellomtjener, legg til en linje som
Acquire::http::proxy "http://yourproxy:3128"
. For en FTP-mellomtjener, skriv
Acquire::ftp::proxy "ftp://yourproxy"
. For å finne flere konfigurasjonsvalg, les
apt.conf(5) manuelle side med
man apt.conf
-kommandoen (for detaljer om manuelle sider, se
Seksjon 7.1.1, «Manuelle sider»).
6.2.5. Styring av pakkeprioriteter
En av de viktigste aspektene i konfigurasjonen av APT er behandlingen av prioriteringene knyttet til hver pakkekilde. For eksempel kan du ønske å forlenge en fordeling med en eller to nyere pakker fra Testing, Unstable, eller Experimental. Det er mulig å tildele en prioritet til hver tilgjengelig pakke (samme pakke kan ha flere prioriteringer, avhengig av hvilken versjon eller distribusjon den kommer fra). Disse prioriteringene vil påvirke APTs oppførsel: For hver pakke vil det alltid velge versjonen med høyest prioritet (unntatt hvis denne versjonen er eldre enn den installerte, og hvis prioriteten er mindre enn 1000).
APT definerer flere standard prioriteringer. Hver installert pakkeversjon har en prioritet på 100. En ikke-installerte versjon har en prioritet på 500 som standard, men det kan hoppe til 990 hvis det er en del av målrettet utgivelse (definert med -t
kommandolinjevalg, eller APT::Default-Release
konfigureringsdirektiv).
Du kan endre prioriteringer ved å legge til oppføringer i /etc/apt/preferences
-filen med navnene på de berørte pakker, versjonen, opprinnelsen og den nye prioriteten deres.
APT vil aldri installere en eldre distribusjon av en pakke (som er en pakke med et versjonsnummer som er lavere enn det som den allerede installerte pakken har), unntatt hvis prioriteten dens er over 1000. APT vil alltid installere pakken med høyeste prioritet som følger denne begrensningen. Hvis to pakker har samme prioritet, installerer APT den nyeste (hvis versjonsnummer er høyest). Hvis to pakker av samme versjon har samme prioritet, men varierer i innhold, installerer APT versjonen som ikke er installert (denne regelen har blitt opprettet for å dekke tilfelle av en pakkeoppdatering uten økning av revisjonsnummeret, noe som vanligvis er nødvendig).
Mer konkret, en pakke som har prioritet mindre enn 0 vil aldri bli installert. En pakke med en prioritet som varierer mellom 0 og 100 vil kun installeres hvis ingen annen versjon av pakken allerede er installert. Med en prioritet mellom 100 og 500, vil pakken bare installeres når det ikke finnes noen annen nyere versjon installert, eller er tilgjengelig i en annen distribusjon. En pakke med prioritet mellom 501 og 990 vil kun installeres hvis det ikke er noen nyere versjon installert eller tilgjengelig i distribusjonen det gjelder. Med en prioritet mellom 990 og 1000, vil pakken bli installert, bortsett fra hvis den installerte versjonen er nyere. En prioritet høyere enn 1000 vil alltid føre til installasjon av pakken, selv om det tvinger APT til å nedgradere til en eldre versjon.
When APT checks /etc/apt/preferences
, it first takes into account the most specific entries (often those specifying the concerned package), then the more generic ones (including for example all the packages of a distribution). If several generic entries exist, the first match is used. The available selection criteria include the package's name and the source providing it. Every package source is identified by the information contained in a Release
file that APT downloads together with the Packages
files. It specifies the origin (usually “Debian” for the packages of official mirrors, but it can also be a person's or an organization's name for third-party repositories). It also gives the name of the distribution (usually Stable, Testing, Unstable or Experimental for the standard distributions provided by Debian) together with its version (for example 8 for Debian Jessie). Let's have a look at its syntax through some realistic case studies of this mechanism.
La oss anta at du bare vil bruke pakker fra den stabile versjonen av Debian. De som leveres i andre versjoner bør ikke installeres med mindre det eksplisitt blir bedt om det. Du kan skrive inn følgende i /etc/apt/preferences
-filen:
a=stable
definerer navnet på den valgte distribusjonen. o=Debian
begrenser utvalget til pakker som kommer fra «Debian».
La oss nå anta at du har en tjener med flere lokale programmer som støtter seg på versjon 5.14 av Perl, og at du ønsker å sikre at oppgraderinger ikke vil installere en annen versjon av den. Da kan du skrive inn det følgende:
Referansedokumentasjonen for denne konfigurasjonsfilen er tilgjengelig på den manuelle siden apt_preferences(5), som du kan vise med man apt_preferences
.
6.2.6. Å arbeide med flere distribusjoner
Når apt
er et så fantastisk verktøy, er det fristende å plukke pakker som kommer fra andre distribusjoner. For eksempel, etter å ha installert et Stable-system, ønsker du kanskje å prøve ut en programvarepakke som finnes i Testing, eller Unstable uten å avvike for mye fra systemets opprinnelige tilstand.
Selv om du noen ganger vil støte på problemer mens du mikser pakker fra forskjellige distribusjoner, håndterer
apt
slik sameksistens veldig godt, og begrenser risiko svært effektivt. Den beste måten for å fortsette er å liste opp alle distribusjoner som brukes i
/etc/apt/sources.list
(noen vil alltid sette inn de tre distribusjonene, men husk at
Unstable er reservert for erfarne brukere), og for å definere din referansedistribusjon med
APT::Default-Release
-parameter (se
Seksjon 6.2.3, «Oppgradering av systemet»).
Let's suppose that Stable is your reference distribution but that Testing and Unstable are also listed in your sources.list
file. In this case, you can use apt install package/testing
to install a package from Testing. If the installation fails due to some unsatisfiable dependencies, let it solve those dependencies within Testing by adding the -t testing
parameter. The same obviously applies to Unstable.
I denne situasjonen blir oppgraderingene (
upgrade
og
full-upgrade
) gjort innenfor
Stable, bortsett fra for pakker som allerede er oppgradert til en annen distribusjon: De vil følge oppdateringene som er tilgjengelige i andre distribusjoner. Vi forklarer denne virkemåten ved hjelp av standardprioriteringene satt av APT nedenfor. Ikke nøl med å bruke
apt-cache policy
(se sidefelt
TIP apt-cache policy
) for å verifisere de gitte prioriteringene.
Alt er basert på det faktum at APT bare vurderer pakker med høyere eller lik versjon enn den installerte (forutsatt at /etc/apt/preferences
ikke har vært brukt til å tvinge prioriteter høyere enn 1000 for noen pakker).
La oss anta at du har installert versjon 1 av en første pakke fra Stable, og at versjon 2 og 3 respektivt er tilgjengelig i Testing og Unstable. Den installerte versjonen har en prioritet på 100 mens versjonen som ligger i Stable (akkurat den samme) har en prioritet på 990 (fordi den er en del av målet utgivelse (target release)). Pakker i Testing, og Unstable har en prioritet på 500 (standardprioriteten til en ikke-installert versjon). Vinneren er da versjon 1 med en prioritet på 990. Pakken «står i Stable».
La oss ta et eksempel fra en annen pakke som versjon 2 er installert fra Testing. Version 1 er tilgjengelig i Stable, og versjon 3 i Unstable. Versjon 1 (med prioritet 990 - altså lavere enn 1000) forkastes fordi det er lavere enn den installerte versjonen. Bare versjon 2 og 3 står igjen, begge med prioritet 500. Konfrontert med dette alternativet, velger APT den nyeste versjonen, den ene fra Unstable. Hvis du ikke ønsker en pakke installert fra Testing til å flytte til Unstable, må du tildele en prioritet lavere enn 500 (490 for eksempel) til pakker som kommer fra Unstable. Du kan endre /etc/apt/preferences
med denne effekten:
Package: *
Pin: release a=unstable
Pin-Priority: 490
6.2.7. Å finne installerte pakker automatisk
En av de svært viktige funksjonene i apt
er sporing av pakker som bare er installert ved avhengigheter. Disse pakkene kalles «automatiske», og inkluderer for eksempel ofte biblioteker.
Med denne informasjonen, når pakker er fjernet, kan de pakkeansvarlige lage en liste over automatiske pakker som ikke lenger trengs (fordi det ikke er noen «manuelt installerte» pakker som er avhengig av dem). apt-get autoremove
vil kvitte seg med disse pakkene. aptitude
og apt
har ikke denne kommandoen: Den første fordi den fjerner dem automatisk så snart de er identifisert, og sistnevnte trolig fordi brukeren ikke skal måtte kjøre en slik kommando manuelt. I alle tilfelle, verktøyene viser en klar melding som lister de berørte pakkene.
Det er en god vane å merke med automatisk, pakker som du ikke trenger direkte, slik at de fjernes automatisk når de ikke er nødvendige lenger.
apt-mark auto pakke
vil merke en gitt pakke som automatisk, mens
apt-mark manual pakke
gjør det motsatte.
aptitude markauto
og
aptitude unmarkauto
virker på samme måte selv om de tilbyr flere funksjoner for å merke mange pakker på en gang (se
Seksjon 6.4.1, «aptitude
»). Det konsollbaserte brukergrensesnittet til
aptitude
gjør det også enkelt å gjennomgå det «automatiske flagget» hos mange pakker.
Folk vil kanskje vite hvorfor en automatisk installert pakke er til stede på systemet. For å få denne informasjonen fra kommandolinjen kan du bruke aptitude why pakke
(apt
og apt-get
har ingen tilsvarende funksjon):
$
aptitude why python-debian
i aptitude Recommends apt-xapian-index
i A apt-xapian-index Depends python-debian (>= 0.1.15)