NAMN
dpkg - en mellannivåpakethanterare för Debian
SYNOPS
dpkg [flagga...] åtgärd
VARNING
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.
BESKRIVNING
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.
INFORMATION OM PAKET
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.
Pakettillstånd
ej installerat (”not-installed”)
Paketet är inte installerat på ditt system.
konfigurationsfiler (”config-files”)
Endast konfigurationsfilerna eller skriptet postrm och de data det behöver för att ta bort för paketet finns på systemet.
halvt installerat (”half-installed”)
Installationen av paketet har påbörjats, men av någon orsak inte slutförts.
uppackat (”unpacked”)
Paketet är uppackat, men inte konfigurerat.
halvt konfigurerat (”half-configured”)
Paketet är uppackat och konfigurationen har påbörjats, men av någon orsak inte slutförts.
väntar på utlösare (”triggers-awaited”)
Paketet väntar på hantering av utlösare av ett annat paket.
utlösare väntar (”triggers-pending”)
Paketet har utlösts.
installerat (installed)
Paketet är uppackat och korrekt inställt.
Paketvalstillstånd
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.
Paketflaggor
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:
support-predepends
Stöder fältet Pre-Depends (sedan dpkg 1.1.0).
working-epoch
Stöder epoker i versionssträngar (sedan dpkg 1.4.0.7).
long-filenames
Stöder långa filnamn i deb(5)-arkiv (sedan dpkg 1.4.1.17).
multi-conrep
Stöder flera Conflicts och Replaces (sedan dpkg 1.4.1.19).
multi-arch
Stöder fält och semantik för flera arkitekturer (sedan dpkg 1.16.2)
versioned-provides
Stöder versioner i Provides (sedan dpkg 1.17.11).
protected-field
Stöder fältet Protected (sedan dpkg 1.20.1).
--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.
-b, --build katalog
[arkiv|katalog]
Bygg ett deb-paket.
-c, --contents arkiv
Lista innehållet i ett deb-paket.
-e, --control arkiv [katalog]
Extraherar styrfilsinformation från ett paket.
-x, --extract arkiv katalog
Extrahera filerna som finns i paketet.
-X, --vextract arkiv katalog
Extrahera och visa filnamnen som finns i paketet.
-f, --field arkiv [control-fält ...]
Visa paketets styrfilfält.
--ctrl-tarfile arkiv
Mata ut styr-tarfilen från ett Debianpaket.
--fsys-tarfile arkiv
Mata ut filsystems-tarfilen från ett Debianpaket.
-I, --info arkiv [control-fil ...]
Visa information om ett paket.
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.
-l, --list paketnamnsmönster...
Visa paket som motsvarar givet mönster.
-s, --status paketnamn...
Rapportera status för angivet paket.
-L, --listfiles paketnamn ...
Visa filer installerade på ditt system från paketnamn.
-S, --search filnamnssökmönster ...
Sök efter ett filnamn från installerade paket.
-p, --print-avail paketnamn...
Visar detaljer om paketnamn från /var/lib/dpkg/available. Användare av APT-baserade skal bör istället använda apt show paketnamn.
FLAGGOR
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
Sätter 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.
The invoke hooks are not executed when --no-act is specified, or when running as non-root without --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] pathname
[(error-message)]
?M5?????? [c] pathname
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: paket: status
Paketstatus ändrad; status är som i statusfilen.
status: paket : error : utökat-felmeddelande
Ett fel uppstod. Eventuella nyradstecken i utökat-felmeddelanden kommer ersättas med blanksteg innan de skrivs ut.
status: fil :
conffile-prompt : ’riktig-gammal’
’riktig-ny’
användarredigerad distredigerad
Användaren får en fråga om konfigurationsfiler.
processing: skede: paket
Sänds precis innan ett hanteringsskede påbörjas. Skede är något av upgrade, install (båda sänds innan paketet packas upp), configure, trigproc, disappear, remove, purge.
--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.
The status loggers are not executed when --no-act is specified, or when running as non-root without --force-not-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).
RETURVÄRDE
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. |
MILJÖVARIABLER
Extern
miljö
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.
PAGER
DPKG_PAGER
Programmet dpkg kommer att köra när en bläddrare körs, vilken kommer att köras med ”$SHELL -c”, till exempel när skillnader i konffiler ska visas. Om SHELL inte är satt kommer ”sh” att användas istället. DPKG_PAGER överstyr miljövariabeln PAGER (sedan dpkg 1.19.2).
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
If set, it will be used to decide whether to activate Native Language Support, also known as internationalization (or i18n) support (since dpkg 1.22.7). The accepted values are: 0 and 1 (default).
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).
Intern
miljö
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).
FILER
/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).
Filnamn i
filsystemet
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.
SÄKERHET
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).
PROGRAMFEL
--no-act ger oftast mindre information än vad som vore hjälpsamt.
EXEMPEL
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
Ytterligare funktioner kan erhållas genom att installera något av följande paket: apt, aptitude och debsig-verify.
SE ÄVEN
aptitude(8), apt(8), dselect(1), dpkg-deb(1), dpkg-query(1), deb(5), deb-control(5), dpkg.cfg(5), and dpkg-reconfigure(8).
FÖRFATTARE
Se /usr/share/doc/dpkg/THANKS för listan över personer som har bidragit till dpkg.
ÖVERSÄTTNING
Peter Krefting och Daniel Nylander.