dpkg - en mellannivåpakethanterare för Debian
Manualen är avsedd för användare som vill
få en mer detaljerad förståelse för dpkgs
kommandoradsflaggor och pakettillstånd än vad som
berättas med dpkg --help.
Den bör inte användas av paketansvariga som
vill lära sig hur dpkg kommer att installera deras paket.
Beskrivningen över vad dpkg gör när paket
installeras och tas bort är speciellt otillräckliga.
dpkg är ett mellannivåverktyg för att
installera, bygga, ta bort och hantera Debianpaket. Det primära och
mer användarvänliga skalet runt dpkg som ett CLI
(kommandoradsgränssnitt) är apt(8) och som ett TUI
(terminalanvändargränssnitt) är aptitude(8).
dpkg kontrolleras helt och hållet via kommandoradsparametrar,
vilka består av exakt en åtgärd och noll eller fler
flaggor. Åtgärdsparametern talar om för dpkg vad som
ska göras, och flaggorna styr på vilket sätt
åtgärden ska utföras.
dpkg kan också användas som ett skal runt
dpkg-deb(1) och dpkg-query(1). En förteckning
över tillgängliga åtgärder beskrivs nedan i
stycket ÅTGÄRDER. Om dpkg upptäcker en
sådan åtgärd anropas bara dpkg-dpkg eller
dpkg-query med de givna flaggorna, men inga specifika flaggor
sänds direkt till dem, för att använda sådana
flaggor måste bakgrundsprogrammen anropas direkt.
dpkg upprätthåller viss användbar
information om tillgängliga paket. Informationen delas in i tre
klasser: tillstånd, markeringstillstånd och
flaggor. Dessa värden är avsedda att huvudsakligen
ändras via dselect.
- installera
(”install”)
- Paketet är markerat för installation.
- håll
(”hold”)
- Ett paket markerat för håll behålls i samma
version, det vill säga, inga automatiska nya installationer,
uppgraderingar eller borttagningar kommer att utföras på
dem, såvida inte dessa åtgärder anges explicit, eller
tillåts göra automatiskt med flaggan
--force-hold.
- ta bort
(”deinstall”)
- Paketet är markerat för avinstallation (dvs. vi vill ta bort
alla filer förutom konfigurationsfilerna).
- rensa
(”purge”)
- Paketet är markerat för rensning (dvs. vi vill ta bort
allting från systemkataloger, även
konfigurationsfiler).
- okänt
(”unknown”)
- Paketvalet är okänt. Ett paket som också är i
tillståndet ej installerat, och med en ok-flagga
kommer glömmas bort nästa gång databasen lagras.
- ok
- Ett paket märkt ok är i ett känt
tillstånd, men kan behöva ytterligare behandling.
- ominstallation
krävs (”reinstreq”)
- Ett paket markerat ominstallation krävs är trasigt
och kräver ominstallation. Dessa paket kan inte tas bort,
såvida inte det framtvingas med flaggan
--force-remove-reinstreq.
ÅTGÄRDER
- -i, --install
paketfil...
- Installera paketet. Om flaggan --recursive eller -R anges
måste paketfil istället vara en katalog.
Installationen består av följande steg:
- 1.
- Extrahera styrfilerna ur det nya paketet.
- 2.
- Om en annan version av samma paket redan fanns installerat vid
nyinstallationen exekveras prerm-skriptet för det gamla
paketet.
- 3.
- Kör preinst-skriptet, om ett sådant medföljer
paketet.
- 4.
- Packa upp de nya filerna och säkerhetskopiera samtidigt de gamla
filerna så att de kan återställas om någonting
går fel.
- 5.
- Om en annan version av samma paket redan fanns installerat vid
nyinstallationen exekveras postrm-skriptet för det gamla
paketet. Observera att skriptet exekveras efter preinst för
det nya paketet eftersom de nya filerna skrivs samtidigt som de gamla tas
bort.
- 6.
- Konfigurera paketet. Se --configure för detaljerad
information om hur man gör det.
- --unpack
paketfil ...
- Packa upp paketet, men konfigurera det inte. Om flaggan --recursive
eller -R anges måste paketfil istället vara en
katalog.
Hanterar utlösare för Pre-Depends
såvida inte --no-triigers har angivits.
- --configure
paket...|-a|--pending
- Konfigurera ett paket som har packats upp men ännu inte
konfigurerats. Om -a eller --pending anges istället
för paket konfigureras alla paket som har packats upp men
ännu inte konfigurerats.
För att omkonfigurera ett paket som redan har
konfigurerats kan du istället använda kommandot
dpkg-reconfigure(8) (som ingår i
debconf-projektet).
Konfigurering består av följande steg:
- 1.
- Packa upp konfigurationsfilerna och säkerhetskopiera samtidigt de
gamla konfigurationsfilerna så att de kan återställas
om någonting går fel.
- 2.
- Kör postinst-skriptet, om ett sådant finns i
paketet.
Hanterar utlösare såvida inte --no-triggers
har angivits.
- --triggers-only
paket...|-a|--pending
- Hanterar bara utlösare (sedan dpkg 1.14.17). Alla avvaktande
utlösare kommer att hanteras. Om paketnamn anges kommer endast
dessa pakets utlösare att hanteras, precis en gång, om
nödvändigt. Om du använder denna flagga kan det
hända att paket hamnar i felaktiga väntar på
utlösare- och utlösare
väntar-tillstånd. Detta kan rättas senare genom
att köra: dpkg --configure --pending.
- -r, --remove
paket...|-a|--pending
- Ta bort ett installerat paket. Detta tar bort allt utom konffiler och
annan data som städas upp av skriptet postrm, vilket kan
göra att du kan undvika att konfigurera om paketet om du
ominstallerar det senare (konffiler är konfigurationsfiler som
listas i styrfilen DEBIAN/conffiles). Om det inte finns
någon styrfil DEBIAN/conffiles eller något skript
DEBIAN/postrm, motsvarar det här kommandot att köra
--purge. Om -a eller --pending anges istället
för ett paketnamn kommer alla paket som är uppackade, men
markerade för borttagning i filen /var/lib/dpkg/status, att
tas bort.
Borttagning av ett paket består av följande
steg:
- 1.
- Kör prerm-skriptet.
- 2.
- Ta bort de installerade filerna.
- 3.
- Kör postrm-skriptet.
Hanterar utlösare såvida inte --no-triggers
har angivits.
- -P, --purge
paket...|-a|--pending
- Rensa ett installerat eller redan borttaget paket. Detta tar bort allting,
inklusive konffiler, och allt annat som städas upp från
postrm. Om -a eller --pending anges instället
för ett paketnamn kommer alla paket som packats upp eller tagits
bort, men som är markerade för rensning i filen
/var/lib/dpkg/status, att rensas.
Observera: det är möjligt att dpkg
inte känner till vissa konfigurationsfiler på grund av att
de skapas och hanteras separat via konfigurationsskript. I så
fall kommer inte dpkg självt ta bort dem, utan paketets
postrm-skript (som anropas av dpkg) måste ta hand
om att de tas bort när paketet tas bort med --purge. Detta
gäller naturligtvis endast för filer i systemkatalogerna,
inte konfigurationsfiler som skrivs i enstaka användares
hemkataloger.
Rensning av ett paket består av följande
steg:
- 1.
- Ta bort paketet, om det inte redan är borttaget. Se --remove
för detaljerad information om hur det görs.
- 2.
- Kör postrm-skriptet.
Hanterar utlösare såvida inte --no-triggers
har angivits.
- -V, --verify
paketnamn ...
- Bekräftar integriteten för paketnamn eller, om det
inte anges, alla paket, genom att jämföra informationen
från de filer paketet installerar med metadatainformationen som
lagras i dpkg-databasen (sedan dpkg 1.17.2). Ursprunget till
filernas metadatainformation i databasen är binärpaketen
själva. Metadata samlas in från paketen när de packas
upp under installationsprocessen.
Det enda funktionstest som utförs är för
närvarande en md5sum-verifiering av filinnehållet mot det
värde som lagrats i fildatabasen. Det kontrolleras bara om
databasen innehåller filens md5-summa. Kommandot --audit
kan användas för att söka efter saknad metadata i
databasen. Detta är endast en integritetskontroll och ska inte
tolkas som någon som helst form av säkerhetskontroll.
Utdataformatet kan väljas med flaggan
--verify-format, vilket som standard använder formatet
rpm, men detta kan komma att ändras i framtiden,
varför program som tolkar kommandots utdata bör
välja vilket format de förväntar sig explicit.
- -C, --audit
[paketnamn...]
- Utför sundhets- och konsekvenskontroll för paketnamn
eller alla paket om det inte anges (kontroller för enskilda paket
sedan dpkg 1.17.10). Söker, till exempel, efter paket som endast
har installerats delvis på ditt system eller som har skande,
trasiga eller föråldrade styrdata eller filer. dpkg
kommer att föreslå vad du ska göra för att
få dem rättade.
- --update-avail
[Packages-fil]
- --merge-avail
[Packages-fil]
- Uppdatera dpkgs och dselects lista över vilka paket
som finns tillgängliga. Med --merge-avail kombineras den
gamla informationen med informationen från Packages-filen.
Med --update-avail ersätts den gamla informationen med
informationen från Packages-filen. Packages-filerna
som medföljer Debian heter helt enkelt
”Packages”. Om Packages-fil-argumentet saknas
eller namnet ”-” anges kommer det att läsas
från standard in (sedan dpkg 1.17.7). dpkg skriver sin lista
över tillgängliga paket i /var/lib/dpkg/available.
Ett lättare enkelkommando för att hämta
och uppdater available-filen är dselect update.
Observera att den här filen i huvudsak är onödig om
du använder ett APT-baserat skal istället för
dselect: APT har ett eget system för att hålla reda
på tillgängliga paket.
- -A, --record-avail
paketfil ...
- Uppdatera dpkgs och dselects lista över vilka paket
som finns tillgängliga med information från paketet
paketfil. Om flaggan --recursive eller -R anges
måste paketfil istället vara en katalog.
- --forget-old-unavail
- En numera föråldrad flagga som inte utför
någonting, då dpkg automatiskt glömmer ej
installerade och ej tillgängliga paket (sedan dpkg 1.15.4), men
endast de som inte innehåller användarinformation
såsom paketval.
- --clear-avail
- Radera existerande information om vilka paket som är
tillgängliga.
- --get-selections
[paketnamnsmönster...]
- Hämta en lista över paketval och skriv den till standard ut.
Paket som inte är installerats (dvs. de som tidigare helt har
tagits bort) kommer inte att visas om inte ett mönster anges.
- --set-selections
- Sätt paketvalslistan med den fil som läses från
standard in. Filen måste vara på formatet
”paket status”, där status är en
av install, hold, deinstall eller purge.
Tomrader och kommentarsrader som börjar med
”#” är också tillåtna.
Filen available måste vara
àjourförd för att kommandot ska vara av
något värde, annars kommer okända paket att
ignoreras med en varning. Se kommandona --update-avail och
--merge-avail för mer information.
- --clear-selections
- Sätt det önskade tillståndet för varje
icke-grundläggande paket till avinstallera (sedan dpkg 1.13.18).
Detta är avsett att användas direkt före
--set-selections, för att avinstallera alla paket som inte
finns med i listan som anges av --set-selections.
- --yet-to-unpack
- Söker efter paket som markerats för installation men som av
någon anledning ännu inte har installerats.
Observera: Kommandot använder både
available-filen och paketvalen.
- --predep-package
- Skriv ut ett enda paket som är målet för en eller
flera relevanta förhandsberoenden och som själv inte har
ouppfyllda förberoenden.
Om ett sådant paket finns är utdatan en post
från Packages-filen, som Kan hanteras som
nödvändigt.
Observera: Kommandot använder både
available-filen och paketvalen.
Returnerar 0 om ett paket skrivs ut, 1 om inget
lämpligt paket finns och 2 vid fel.
- --add-architecture
arkitektur
- Lägg till arkitektur i listan över arkitekturer
för vilka paket kan installeras utan att använda
--force-architecture (sedan dpkg 1.16.2). Arkitekturen dpkg
har byggts för (dvs. utdata från
--print-architecture) är alltid en del av listan.
- --remove-architecture
arkitektur
- Ta bort arkitektur från listan över arkitekturer
för vilka paket kan installeras utan att använda
--force-architectures (sedan dpkg 1.16.2). Om arkitekturen
för närvarande används i databasen kommer operationen
att vägras, såvida inte --force-architectures anges.
Arkitekturen dpkg byggs för (dvs. utdata från
--print-architecture) kan aldrig tas bort från listan.
- --print-architecture
- Visa arkitektur för paketen dpkg installerar (till exempel
”i386”).
- --print-foreign-architectures
- Visa en lista, avdelad med nyradstecken, över extraarkitekturer
dpkg har konfigurerats att tillåta installation av paket
för (sedan dpkg 1.16.2).
- --assert-help
- Ge hjälp om --assert-funktion-flaggorna (sedan dpkg
1.21.0).
- --assert-funktion
- Påstå att dpkg stöder den önskade
funktionen. Returnerar 0 om funktionen stöds i sin helhet, 1 om
funktionen är känd men dpkg inte kan stöda den
ännu, och 2 om funktionen är okänd. Aktuell lista
över funktioner som kan hävdas är:
- --validate-saker
sträng
- Bekräftar att saker-sträng har korrekt syntax
(sedan dpkg 1.18.16). Returnerar 0 om sträng är
giltig, 1 om sträng är ogiltig men kan tänkas
godtas i slapp kontext och 2 om sträng är ogiltig.
Aktuell lista över saker som kan bekräftas
är:
- pkgname
- Bekräftar det givna paketnamnet (sedan dpkg 1.18.16).
- trigname
- Bekräftar det givna utlösarnamnet (sedan dpkg 1.18.16).
- archname
- Bekräftar det givna arkitekturnamnet (sedan dpkg 1.18.16).
- version
- Bekräftar den givna versionen (sedan dpkg 1.18.16).
- --compare-versions
ver1 op ver2
- Jämför versionsnummer, där op är en
binär operator. dpkg returnerar sant (0) om det
angivna värdet uppfylls, och falskt (1) i annat fall. Det
finns två grupper operatorer, vilka endast skiljer sig i hur de
hanterar när ver1 eller ver2 är tom. Dessa
hanterar tom version som om den är tidigare än alla andra
versioner: lt le eq ne ge gt. Dessa hanterar tom version som om den
är senare än alla andra versioner: lt-nl le-nl ge-nl
gt-nl. Dessa tillhandahålls endast för kompatibilitet
med styrfilssyntaxen: < << <= = >= >> >.
Operatorerna < och > är
föråldrade och bör inte användas,
på grund av förvirrande semantik. Till exempel: 0.1 <
0.1 utvärderas som sant.
- -?, --help
- Visar en kortfattad hjälptext.
- --force-help
- Get hjälp om --force-nånting-flaggorna.
- -Dh,
--debug=help
- Ger hjälp om felsökningsflaggorna.
- --version
- Visar dpkgs versionsinformation.
När det används tillsammans med --robot
kommer utdata vara programmets versionsnummer i ett numeriskt format
avdelat med punkt, utan radbrytningstecken.
- dpkg-deb-åtgärder
- Se dpkg-deb(1) för ytterligare information om
följande åtgärder, och andra åtgärder
och flaggor som inte är tillgängliga via skalet
dpkg.
- dpkg-query-åtgärder
- Se dpkg-query(1) för ytterligare information om
följande åtgärder, och andra åtgärder
och flaggor som inte är tillgängliga via skalet
dpkg.
Alla flaggorna kan ges både på kommandoraden och i
dpkgs konfigurationsfil /etc/dpkg/dpkg.cfg eller
fragmentfilerna (vars namn motsvarar skalmönstret '[0-9a-zA-Z_-]*') i
konfigurationskatalogen /etc/dpkg/dpkg.cfg.d/. En rad i
konfigurationsfilen är antingen en flagga (precis samma som på
kommandoraden, men utan inledande bindestreck) eller en kommentar (om den
börjar med ett ”#”).
- --abort-after=antal
- Ställer in efter hur många fel dpkg ska avbryta.
Förvalet är 50.
- -B,
--auto-deconfigure
- När ett paket tas bort är det möjligt att ett annat
paket beror på det borttagna paketet. Om du anger flaggan kommer de
paket som beror på det borttagna paketet automatiskt att
avkonfigureras.
- -Doktalvärde,
--debug=oktalvärde
- Aktiverar felsökning. oktalvärdet skapas genom att
utföra bitvis logisk ”eller” av de önskade
värdena från listan nedan (observera att dessa värden
kan ändras i framtida versioner). -Dh eller
--debug=help visar dessa felsökningsvärden.
Tal Beskrivning
1 Allmänt hjälpsam förloppsinformation
2 Anrop och status för utvecklarskript
10 Utdata för varje fil som hanteras
100 Massvis med utdata för varje fil som hanteras
20 Utdata för varje konfigurationsfil
200 Massvis med utdata för varje konfigurationsfil
40 Beroenden och konflikter
400 Massvis av beroende-/konfliktutdata
10000 Aktivering och hantering av utlösare
20000 Massvis av utdata om utlösare
40000 Dumma mängder utdata om utlösare
1000 Massvis av pladder om till exempel dpkg/info-katalogen
2000 Knäppa mängder pladder
- --force-saker
- --force-saker,
--refuse-saker
- Tvinga eller vägra (no-force och refuse betyder
detsamma) att göra vissa saker. saker är en
kommaavdelad lista med saker som anges nedan. --force-help visar en
lista med beskrivningar. Saker som markeras med (*) är tvingade som
förval.
Varning: Dessa flaggor är huvudsakligen avsedda
att endast användas av experter. Om du använder dem utan
att fullt ut förstå vad de går ut på kan du
förstöra din systeminstallation.
- all:
- Slår på (eller av) alla tvingande flaggor.
- downgrade(*):
- Installera ett paket även om en nyare version redan är
installerad.
Varning: För närvarande undersöker
inte dpkg beroenden vid nedgradering och kommer
därför inte att varna dig om nedgraderingen bryter ett
beroende för något paket. Detta kan ha allvarliga
sidoeffekter, genom att nedgradera grundläggande
systemkomponenter kan du riskera att göra hela systemet
instabilt. Använd med tillförsikt.
- configure-anny:
- Konfigurera även alla uppackade men ej konfigurerade paket
på vilka det aktuella paketet beror.
- hold:
- Tillåt automatiska installationer, uppgraderingar eller
borttagningar av paket även när de är märkts
som ”håll”. Obervera: När dessa
åtgärder anges explicit ignoreras alltid paketvalstatusen
”håll”.
- remove-reinstreq_
- Ta bort ett paket även om det är trasigt och markerat att
vara i behov av ominstallation. Detta kan, till exempel, göra
så att delar av paketet blir kvar på systemet, men
glöms bort av dpkg.
- remove-protected:
- Ta bort paketet även om det anses som skyddat (protected, sedan
dpkg 1.20.1). Skyddade paket är huvudsakligen viktig infrastruktur
för systemstart eller används för
skräddarsydda systemlokala metapaket. Om du tar bort dem kan det
göra så att hela systemet inte klarar att starta eller
förlora krävd funktionalitet, så använd med
tillförsikt.
- remove-essential:
- Ta bort paketet även om det anses som viktigt (essential). Viktiga
paket är huvudsakligen de mest grundläggande Unixkommandona,
vilka krävs för pakethanteringssystemet, för att
systemet generellt ska fungera korrekt eller under start (även om
det sistnämnda bör skrivas om till skyddade (protected)
paket). Om du tar bort dem kan det göra så att hela systemet
slutar fungera, så använd med tillförsikt.
- depends:
- Gör alla beroendeproblem till varningar. Detta påverkar
fälten Pre-Depends och Depends.
- depends-version:
- Ignorera versionsnummer när beroenden kontrolleras. Detta
påverkar fälten Pre-Depends och Depends.
- breaks:
- Installera, även om det skulle förstöra ett annat
paket (sedan dpkg 1.14.16). Detta påverkar fältet
Breaks.
- conflicts:
- Installera även om paket som är i konflikt (krockar) med ett
annat paket. Detta är farligt, eftersom det oftast leder till att
vissa filer skrivs över. Detta påverkar fältet
Conflicts.
- confmiss:
- Installera alltid saknade konfigurationsfiler utan att fråga. Detta
är farligt, eftersom det inte bibehåller ändringar
(tar bort) av filer.
- confnew:
- Om en konfigurationsfil har modifierats och versionsnumret i paketet
ändrades, installera alltid nya versioner av ändrade
konfigurationsfiler utan att fråga, såvida inte
--force-confdef också anges, i vilket fall det
förvalda alternativet kommer att utföras.
- confold:
- Om en konfigurationsfil har modifierats och versionsnumret i paketet
ändrades, behåll alltid gamla versioner av ändrade
konfigurationsfiler utan att fråga, såvida inte
--force-confdef också anges, i vilket fall det
förvalda alternativet kommer att utföras.
- confdef:
- Om en konfigurationsfil har modifierats och versionsnumret i paketet
ändrades, välj alltid det förvalda alternativt
för ändrade konfigurationsfiler. Om inget förval har
angivits kommer programmet stanna och fråga användaren
såvida inte --force-confnew eller --force-confold
också angetts, i så fall används den för att
bestämma vad som ska utföras.
- confask:
- Erbjud alltid att ersätta en modifierad konfigurationsfil med
versionen i paketet, även om versionen i paketet inte
ändrades (sedan dpkg 1.15.8). Om någon av
--force-confnew, --force-confold eller
--force-confdef också angetts, så används den
för att bestämma vad som ska utföras.
- overwrite:
- Skriv över ett pakets filer med ett annats.
- overwrite-dir:
- Skriv över ett pakets kataloger med ett annats filer.
- overwrite-diverted:
- Skriv över en omdirigerad fil med en ej omdirigerad version.
- statoverride-add
- Skriver över en existerande stat-överstyrning när den
läggs till (sedan dpkg 1.19.5).
- statoverride-remove:
- Ignorera en saknad stat-överstyrning när den tas bort (sedan
dpkg 1.19.5).
- security-mac(*):
- Använd platformsspecifik säkerhet baserad på
obligatorisk åtkomststyrning (Mandatory Access Controls, MAC)
när filer installeras i filsystemet (sedan dpkg 1.19.5). På
Linuxsystem använder implementationen SELinux.
- unsafe-io:
- Utför inte säkra I/O-operationer vid uppackning (sedan dpkg
1.15.8.6). Detta innebär för närvarande att
filsystemssynkroniseringar inte utförs innan namn på filer
ändras, något som vi vet kan påverka prestanda
betydligt negativt för vissa filsystem, vilket tyvärr
är samma system som behöver säker I/O på grund
av att de har ett otillförlitligt beteende som orsakar tomma filer
vid tvära systemkrascher.
Observera: För ext4, den värsta syndaren,
kan det vara värt att istället använda
monteringsflaggan nodelalloc, vilken både korrigerar
prestandaförlusten och datasäkerhetsproblemen, det
sistnämnda genom att inte låta filsystemet skapa tomma
filer vid tvära krascher för programvara som inte
utför synkronisering före atomära namnbyten.
Varning: Den här flaggan kan ge bättre
prestanda på bekostnad av dataförluster, använd med
tillförsikt.
- script-chrootless:
- Kör utvecklarskript utan att chroot(2):a in i instdir
även om paketet inte stöder detta arbetssätt (sedan
dpkg 1.18.5).
Varning: Detta kan förstöra ditt
värdsystem, använd med extrem tillförsikt.
- architecture:
- Hantera även paket med fel eller saknad maskinvaruarkitektur.
- bad-version:
- Hantera även paket med fel versioner (sedan dpkg 1.16.1).
- bad-path:
- Sökvägen i PATH saknar viktiga program, så
problem är troliga.
- not-root:
- Försök (av)installera saker även utan att vara
root.
- bad-verify:
- Installera ett paket även om det inte går att verifiera dess
äkthet.
- --ignore-depends=paket,...
- Ignorera beroendekontroll för angivna paket (i verkligheten
utförs kontrollen, men det ges endast varningar, ingenting annat).
Detta påverkar fälten Pre-Depends, Depends och
Breaks.
- --no-act, --dry-run,
--simulate
- Gör allting som efterfrågas, men skriv inte några
ändringar. Detta används för att se vad som skulle ha
hänt med åtgärden utan att faktiskt ändra
något.
Se till att du anger --no-act före
åtgärdsflaggan, annars kan du få oönskade
biverkningar (t.ex så kommer dpkg --purge foo --no-act
först att rensa ut paketet ”foo” för att
sedan försöka rensa ut paketet ”--no-act”,
trots att du troligen förväntade dig att ingenting skulle
utföras).
- -R,
--recursive
- Hantera alla vanliga filer som matchar sökmönstret
*.deb rekursivt i de kataloger som anges, med alla sina
underkataloger. Flaggan kan användas tillsammans med
åtgärderna -i, -A, --install,
--unpack och --record-avail.
- -G
- Installera inte paketet om en nyare version av samma paket redan är
installerat. Detta är ett alias för
--refuse-downgrade.
- --admindir=kat
- Ställ in administrationskatalogen till katalog. Katalogen
innehåller flera filer som beskriver status för installerade
eller avinstallerade paket, osv. Standardvärde är
”/var/lib/dpkg” om DPKG_ADMINDIR inte har
satts.
- --instdir=katalog
- Ställ in installationskatalogen, vilket anger katalogen där
paket ska installeras. instdir är även katalogen som
skickas som argument till chroot(2) innan paketets
installationsfiler körs, vilket betyder att skripten ser
instdir som rotkatalog. (Förval är
”/”)
- --root=katalog
- Ställ in rotkatalogen till katalog, vilket sätter
installationskatalogen till ”katalog” och den
administrativa katalogen till
”katalog/var/lib/dpkg”.
- -O,
--selected-only
- Hantera endast paket som markerats för installation. Själva
markeringen utförs med dselect eller av dpkg
när paketen hanteras. Till exempel kommer paket som tas bort att
markeras för installation.
- -E,
--skip-same-version
- Installera inte paketet om samma version och arkitektur av paketet redan
är installerat.
Sedan dpkg 1.21.10 tar även arkitekturen med i
beräkningen, vilket gör det möjligt att korsgradera
paket eller installera ytterligare sidoinstallerbara instanser med samma
version, men olika arkitektur.
- --pre-invoke=kommando
- --post-invoke=kommando
- Ange en anropskrok kommando som körs via ”sh
-c” före eller efter dpkg körs för
åtgärderna unpack, configure, install,
triggers-only, remove och purge (sedan dpkg 1.15.4)
samt add-architecture och remove-architecture (sedan dpkg
1.17.19). Flaggan kan anges flera gånger. Ordningen på
flaggorna som anges behålls och de som anges i konfigurationsfilen
har företräde. Miljövariabeln DPKG_HOOK_ACTION
sätts för hakar i den nuvarande
dpkg-åtgärden.
Anropskrokarna körs inte när --no-act
anges, eller vid körning som icke-root utan
--force-not-root.
Observera: Skal kan anropa dpkg flera
gånger per körning, vilket kan göra att hakarna
körs fler gånger än förväntat.
- --path-exclude=filnamnsmönster
- --listfilnamnsmönster
- Sätt filnamnsmönster som ett
sökvägsfilter, antingen genom att exkludera eller
åter inkludera tidigare exkluderade sökvägar som
motsvarar det angivna mönstret under installationen (sedan dpkg
1.15.8).
Varning: Tänk på att du kan totalt
ödelägga ditt system, beroende på vilka
sökvägar du exkluderar, så använd med
tillförsikt.
Filnamnsmönstrena använder samma sorts
jokertecken som skalet, där ”*” motsvarar en
sekvens av valfritt antal tecken, inklusive den tomma strängen
och även ”/”. Till exempel på motsvarar
”/usr/*/READ*”
”/usr/share/doc/paket/README”. ”?”
motsvarar som vanligt ett ensamt tecken (även här
ingår ”/”). Och ”[” inleder en
teckenklass, som kan innehålla en lista över tecken,
intervall och komplement. Se glob(7) för detaljerad
information om filnamnsmönster. Observera: den nuvarande
implementationen kan återinkludera fler kataloger och symboliska
länkar än nödvändigt, speciellt
nänär det finns en mer specifik återinkludering,
för att vara på den säkra sidan och undvika
möjliga uppackningsfel, framtida ändringar kan komma att
rätta detta.
Detta kan användas för att ta bort alla
sökvägar förutom några specifika; ett
typiskt användningsområde är:
--path-exclude=/usr/share/doc/*
--path-include=/usr/share/doc/*/copyright
för att ta bort alla dokumentationsfiler förutom
upphovsrättsinformation.
Dessa två flaggor kan anges flera gånger, och
kan interfolieras med varandra. De hanteras båda i den givna
ordningen och det är den sista regeln som motsvarar ett filnamn
som fäller avgörandet.
Filtren appliceras när binärpaketen packas upp,
och därför har de bara information om vilken sorts objekt
som filtreras just nu (t.ex. en normal fil eller en katalog) och kan
inte se vilka objekt som kommer härnäst. Eftersom filtren
har sidoeffekter (i motsats till find(1)-filter), får inte
det att exkludera exakta sökvägsnamn som råkar vara
ett katalogobjekt som /usr/share/doc önskat resultat, och
endast sökvägsnamnet kommer att exkluderas (vilket kan
komma att automatiskt tas med igen om koden ser behovet). Eventuella
senare filer som finns i den katalogen kommer inte att kunna packas
upp.
Tips: se till att mönstren inte expanderas av
ditt skal.
- --verify-format
formatnamn
- Väljer utdataformat för kommandot --verify (sedan
dpkg 1.17.2).
Det enda utdataformatet som stöds är för
närvarande rpm, som består av en rad för
varje sökväg där ett test misslyckas. Dessa rader
har följande format:
missing [c] sökvägsnamn
[(felmeddelande)]
?M5?????? [c] sökvägsnamn
De första 9 tecknen används för att
rapportera resultaten från testerna, antingen ett bokstavligt
missing (saknas) om filen inte finns eller dess metadata inte kan
hämtas, eller ett av följande specialtecken som
rapporterar resultatet från varje enskilt test:
- ”?”
- Anger at testet inte kunde utföras (stöd saknas,
filbehörigheter, osv).
- ”.”
- Antyder att testet lyckades.
- ”A-Za-z0-9”
- Antyder att testet misslyckades. Följande positioner och
alfanumeriska tecken stöds för närvarande:
- 1 ”?”
- Dessa test stöds för närvarande inte och är
alltid ”?”.
- 2 ”M”
- Testet för filens läge misslyckades (sedan dpkg 1.21.0).
Eftersom metadata för sökvägsnamn för
närvarande inte spåras kan testet endast delvis emuleras
genom en väldigt enkel heuristik för
sökvägsnamn som har ett känt kondensat, vilket
antyder att de bör vara vanliga filer, där testet misslyckas
om sökvägsnamnet inte är en vanlig fil i filsystemet.
Testet kan för närvarande aldrig lyckas eftersom
tillräcklig information inte är tillgänglig.
- 3 ”5”
- Kontrollen av kondensatet misslyckades, vilket betyder att filens
innehåll kan ha ändrats. Detta är endast en
integritetskontroll och ska inte tolkas som någon som helst form av
säkerhetskontroll.
- 4-9 ”?”
- Dessa test stöds för närvarande inte och är
alltid ”?”.
Raden följs av ett blanksteg och ett attributtecken.
Följande attributtecken stöds:
- ”c”
- Sökvägsnamnet är en konffil
Slutligen följs det av ytterligare ett blanksteg och
sökvägsnamnet.
Om posten var av typen missing och filen faktiskt inte
finns i filsystemet komemrr aden följas av ett blanksteg och
felmeddelandet inom parenteser.
- --status-fd
n
- Sänd maskinläsbar paketstatus och förloppsinformation
till filhandtag n. Flaggan kan anges flera gånger.
Informationen lagras vanligtvis rad för rad, i följande
format:
- --status-logger=kommando
- Sänd maskinläsbar paketstatus och förloppsinformation
till skal-kommandots standard in, som körs via ”sh
-c” (sedan dpkg 1.16.0). Flaggan kan anges flera gånger.
Utdataformatet som används är detsamma som för
--status-fd.
Statusloggarna körs inte när --no-act
anges, eller när det körs som icke-root utan
--force-non-root
- --log=filnamn
- Logga uppdateringar av statusändringar och åtgärder
till filnamn, istället för den förvalda
/var/log/dpkg.log. Om flaggan anges flera gånger
används det sista filnamnet. Loggmeddelanden är på
formen:
- ÅÅÅÅ-MM-DD HH:MM:SS startup typ
kommando
- För varje dpkg-körning där typ är
archives (med kommandot unpack eller install)
eller packages (med kommandot configure,
b<triggers-only>, remove eller purge).
- ÅÅÅÅ-MM-DD HH:MM:SS status
tillstånd paket installerad-version
- För uppdateringar om statusändringar.
- ÅÅÅÅ-MM-DD HH:MM:SS
åtgärd paket installerad-version
tillgänglig-version
- För åtgärder där åtgärd
är en av install, upgrade, configure,
trigproc, disappear, remove eller purge.
- ÅÅÅÅ-MM-DD HH:MM:SS conffile
filnamn val
- För konffil-ändringar där val är
antingen install (installera) eller keep
(behåll).
- --robot
- Använd ett maskinläsbart utdataformat. Detta
tillhandahåller ett gränssnitt för program som
behöver tolka utdata från några av de kommandon som
annars inte skriver ut ett maskinläsbart utdataformat. Ingen
lokalanpassning kommer att användas och utdata kommer att
modifieras så att det är lättare att tolka.
Det enda kommando som för närvarande
stöds är --version.
- --no-pager
- Använd inte någon bläddrare för att visa
informationen (sedan dpkg 1.19.2).
- --no-debsig
- Försök inte verifiera paketsignaturer.
- --no-triggers
- Utför inte utlösare i denna körning (sedan dpkg
1.14.17), men aktiveringar kommer fortfarande att antecknas. Om det
används tillsammans med --configure paket eller
--triggers-only paket kommer det namngivna paketets postinst
fortfarande att köras även om det enda som behövdes
var en körning av utlösare. Om du använder denna
flagga kan det hända att paket hamnar i felaktiga väntar
på utlösare- och utlösare
väntar-tillstånd. Detta kan rättas senare genom
att köra: dpkg --configure --pending.
- --triggers
- Annullerar ett tidigare --no-triggers (sedan dpkg 1.14.17).
- 0
- Den önskade funktionen utfördes utan fel. Eller ett test
eller ett påstående returnerade sant.
- 1
- Ett test eller ett påstående returnerade falskt.
- 2
- Ödesdigert eller irreparabelt fel på grund av felaktig
användning på kommandoraden, eller interaktioner med
systemet, såsom databasåtkomst, minnesallokeringer,
osv.
- PATH
- Den här variabeln förväntas vara angiven i
miljön och peka på de systemsökvägar
där flera krävda program hittas. Om den inte är satt
eller programmen inte hittas kommer dpkg att avbryta.
- HOME
- Om satt så kommer dpkg att använda det som den
katalog från vilken det ska läsa den
användarspecifika konfigurationsfilen.
- TMPDIR
- Om satt så kommer dpkg att använda det som den
katalog där det skapar temporära filer och kataloger.
- SHELL
- Programmet dpkg kommer att exekveras när ett nytt skal
startas, eller när ett kommando startas via ett skal.
- The program dpkg will execute when running a pager, which will be
executed with «$SHELL
-c», for example when displaying the conffile differences. If
SHELL is not set, «sh» will be used instead.
The DPKG_PAGER overrides the PAGER environment
variable (since dpkg 1.19.2). If none of the programs pointed by
DPKG_PAGER or PAGER are present, the following programs
will be tried in order (since dpkg 1.22.12): the default pager
pager, then less, more, and finally cat.
- DPKG_COLORS
- Väljer färgläge (sedan dpkg 1.18.5). För
närvarande godtas följande värden: auto
(förval), always och never.
- DPKG_NLS
- Om satt, används för att bestämma om lokalt
språkstöd ska aktiveras, även känt som
internationaliseringsstöd (eller i18n) (sedan dpkg 1.22.7).
Tillåtna värden är: 0 och 1
(förval).
- DPKG_DEBUG
- Anger felsökningsmasken (sedan dpkg 1.21.10) från ett oktalt
värde. De flaggor som för närvarande godtas beskrivs
i flaggan --debug.
- DPKG_FORCE
- Ställer in de tvingande flaggorna (sedan dpkg 1.19.5). När
variabeln är satt kommer inte de inbyggda förvalda tvingande
flaggorna att användas. Om variabeln är närvarande
men tom kommer alla tvingande flaggor att inaktiverats.
- DPKG_ADMINDIR
- Om satt, och flaggorna --admindir och -root inte har
angivits, används värdet som administrativ katalog
för dpkg (sedan dpkg 1.20.0).
- DPKG_FRONTEND_LOCKED
- Ställer in ett pakethanterarskal att meddela dpkg att det inte ska
ta skal-låset (sedan dpkg 1.19.1).
- LESS
- Definieras av dpkg till ”-FRSXMQ” om det inte
redan har satts, när en bläddrare startas (sedan dpkg
1.19.2). För att ändra det förvalda beteendet kan den
här variabeln ställas in på förhand till ett
annat värde, däribland en tom sträng, eller så
kan variablerna PAGER eller DPKG_PAGER ställas in
till att inaktivera specifika flaggor med ”-+”, till
exempel DPKG_PAGER="less -+F".
- DPKG_ROOT
- Definieras av dpkg i utvecklarskriptets miljö till att ange
vilken installation det ska utföras på (sedan dpkg 1.18.5).
Värdet är tänkt att läggas till först i
alla sökvägar utvecklarskripten opererar på. Under
vanlig körning är den här variabeln tom. När
paket installeras i ett annat instdir startar dpkg normalt
utecklarskipten med chroot(2) och lämnar variabeln tom, men
om --force-script-chrootless anges kommer chroot(2)-anropet
att hoppas över och instdir är icke-tomt.
- DPKG_ADMINDIR
- Definieras av dpkg i utvecklarskriptets miljö för att
ange vilket administrativ dpkg-katalog som ska användas
(sedan dpkg 1.16.0). Den här variabeln är alltid satt till
aktuellt värde för --admindir.
- DPKG_FORCE
- Definieras av dpkg i underprocessmiljöer till namnen
på alla för närvarande aktiverade tvingande flaggor,
avdelade med komma (sedan dpkg 1.19.5).
- DPKG_SHELL_REASON
- Definieras av dpkg i skalet som startas för att
undersöka situationen efter konfigurationsfilsfrågan (sedan
dpkg 1.15.6). Tillåtet värde är för
närvarande: conffile-prompt.
- DPKG_CONFFILE_OLD
- Definieras av dpkg i skalet som startas för att
undersöka situationen efter konfigurationsfilsfrågan (sedan
dpkg 1.15.6). Innehåller sökvägen till den gamla
konfigurationsfilen.
- DPKG_CONFFILE_NEW
- Definieras av dpkg i skalet som startas för att
undersöka situationen efter konfigurationsfilsfrågan (sedan
dpkg 1.15.6). Innehåller sökvägen till den nya
konfigurationsfilen.
- DPKG_HOOK_ACTION
- Definieras av dpkg i skalet som startas när en
krokåtgärd exekveras (sedan dpkg 1.15.49. Innehåller
aktuell dpkg-åtgärd.
- DPKG_RUNNING_VERSION
- Definieras av dpkg i utvecklarskriptets miljö till versionen
av den instans av dpkg som körs för tillfället
(sedan dpkg 1.14.17).
- DPKG_MAINTSCRIPT_PACKAGE
- Definieras av dpkg i utvecklarskriptets miljö till (det icke
arkitekturkvalificerade) namnet på paketet som hanteras (sedan dpkg
1.14.17).
- DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT
- Definieras av dpkg i utvecklarskriptets miljö till paketets
referensräknare, dvs. antalet paketinstanser med ett
tillstånd högre än not-installed (sedan dpkg
1.17.2).
- DPKG_MAINTSCRIPT_ARCH
- Definieras av dpkg i utvecklarskriptets miljö till
arkitekturen paketet byggdes för (sedan dpkg 1.15.4).
- DPKG_MAINTSCRIPT_NAME
- Definieras av dpkg i utvecklarskriptets miljö till namnet
på det skript som körs, en av preinst,
postinst, prerm eller postrm (sedan dpkg
1.15.7).
- DPKG_MAINTSCRIPT_DEBUG
- Definieras av dpkg i utvecklarskriptets miljö till ett
värde (”0” eller ”1”) som
anger huruvida felsökning har efterfrågats (sedan dpkg
1.18.4).
- /etc/dpkg/dpkg.cfg.d/[0-9a-zA-Z_-]*
- Konfigurationsfragmentfiler (sedan dpkg 1.15.4).
- /etc/dpkg/dpkg.cfg
- Konfigurationsfil med förvalda inställningar.
- /var/log/dpkg.log
- Förvald loggfil (se /etc/dpkg/dpkg.cfg och flaggan
--log).
Övriga filer som listas här finns i sina
förvalda kataloger, se flaggan --admindir för
information om hur du ändrar placeringen av dessa filer.
- /var/lib/dpkg/available
- Lista över tillgängliga paket.
- /var/lib/dpkg/status
- Status för tillgängliga paket. Filen innehåller
information om huruvida ett paket är markerat för
borttagning eller ej, om det är installerat eller ej, osv. Se
sektionen "INFORMATION OM PAKET" för ytterligare
information.
Statusfilen säkerhetskopieras dagligen i
/var/backups. Det kan vara nyttigt om den går
förlorad eller skrivs sönder på grund av problem
med filsystemet.
Formatet och innehållet i ett binärpaket beskrivs i
deb(5).
Under uppackning och konfigurering använder dpkg
olika filnamn för säkerhetskopior och
återställning. Här följer en förenklad
förklaring av hur dessa filnamn används under
paketinstallationen.
- *.dpkg-new
- Vid uppackning extraherar dpkg nya filsystemsobjekt till
sökvägsnamn.dpkg-new (förutom
för existerande kataloger eller symboliska länkar till
kataloger som hoppas över), när det är färdigt
och efter att säkerhetskopior har skapats av de gamla objekten
får objekten namnen bytt till
sökvägsnamn.
- *.dpkg-tmp
- Under uppackning tar dpkg säkerhetskopior av gamla
filsystemsobjekt i sökvägsnamn.dpkg-tmp efter
att ha packat upp de nya objekten. Dessa säkerhetskopior
utförs antingen som namnbyten för kataloger (men bara om de
byter typ), en ny symbolisk länk-kopia för symboliska
länkar, eller en hård länk för andra
filsystemsobjekt, förutom för konfigurationsfiler som inte
säkerhetskopieras eftersom de hanteras i ett senare steg.
Om en återställning behövs används
dessa säkerhetskopior för att återställa
föregående innehåll i objekten. Dessa tas
automatiskt bort när installationen är färdig.
- *.dpkg-old
- Under konfiguration, vid installation av en ny version, kan dpkg ta
en säkerhetskopia av den tidigare ändrade
konfigurationsfilen som
sökvägsnamn.dpkg-old.
- *.dpkg-dist
- Under konfiguration, när den gamla versionen behålls, kan
dpkg ta en säkerhetskopia av den nya omodifierade
konfigurationsfilen som
sökvägsnamn.dpkg-dist.
Alla operationer som behöver skrivåtkomst till
databasen eller filsystemet anses vara privilegierade operationer som kan
tillåta utökning av rootbehörigheter. Operationerna
får aldrig delegeras till en obetrodd användare eller
göras på obetrodda paket, eftersom det kan tillåta
rootåtkomst till systemet.
Vissa operationer (såsom bekräftelse av paket) kan
behöva rootprivilegier för att nå filer på
filsystemet som annars inte skulle vara tillgängliga på grund
av begränsade behörigheter, men bör annars fungera som
normalt och generera lämpliga meddelanden i dessa
tillfällen.
Frågeoperationer bör aldrig kräva
root-behörighet, och delegering av exekvering av dem till
icke-privilegierade användare via något kommando föra
att få root-behörighet kan ha säkerhetskonsekvenser
(såsom utökning av privilegier), till exempel när en
siduppdelare körs automatiskt från verktyget.
Se även stycket SÄKERHET i manualsidorna
dpkg-deb(1) och dpkg-split(1).
--no-act ger oftast mindre information än vad som
vore hjälpsamt.
För att lista paket relaterade till
textredigeringsprogrammet vi(1) (observera att dpkg-query inte
längre läser in available-filen som standard, och att
flaggan dpkg-query --load-avail istället bör
användas för det):
dpkg -l '*vi*'
För att se posterna i /var/lib/dpkg/available
för två paket:
dpkg --print-avail vim neovim | less
För att själv söka i paketlistan:
dpkg --print-avail | less
För att ta bort det installerade paketet neovim:
dpkg -r neovim
För att installera ett paket måste du först
leta på det i ett arkiv eller på en mediaskiva. När du
använder ett arkiv baserat på en poolstruktur räcker
det att känna till namnet på paketet för att hitta
sökvägen:
dpkg -i /media/bdrom/pool/main/v/vim/vim_9.0.2018-1_amd64.deb
För att göra en lokal kopia av
paketmarkeringarna:
dpkg --get-selections >mitturval
Du kan överföra filen till en annan dator, och efter
att du har uppdaterat available-filen där med ditt
önskade pakethanterarskal (se
<https://wiki.debian.org/Teams/Dpkg/FAQ#set-selections> för mer
information), till exempel:
apt-cache dumpavail | dpkg --merge-avail
så kan du installera den med:
dpkg --clear-selections
dpkg --set-selections <mitturval
Observera att detta faktiskt inte kommer installera eller ta bort
någonting, utan bara sätta valstatus på de
efterfrågade paketen. Du måste använda ett annat
program för att faktiskt hämta och installera de
efterfrågade paketen. Till exempel kan du köra apt-get
dselect-upgrade.
För normalt bruk kommer du att upptäcka att
dselect(1) tillhandahåller ett bekvämare sätt
att ändra paketmarkeringarna.
Ytterligare funktioner kan erhållas genom att installera
något av följande paket: apt, aptitude och
debsig-verify.
aptitude(8), apt(8), dselect(1),
dpkg-deb(1), dpkg-query(1), deb(5),
deb-control(5), dpkg.cfg(5), and
dpkg-reconfigure(8).
Se /usr/share/doc/dpkg/THANKS för listan över
personer som har bidragit till dpkg.
ÖVERSÄTTNING
Peter Krefting och Daniel Nylander.