Kapitel 2. Debians pakethantering

InnehÄllsförteckning

2.1. FörutsÀttningar för Debians pakethantering
2.1.1. Debians system för pakethantering
2.1.2. Konfiguration av paket
2.1.3. GrundlÀggande försiktighetsÄtgÀrder
2.1.4. Liv med eviga uppgraderingar
2.1.5. Grunderna i Debian-arkivet
2.1.6. Debian Àr 100% fri programvara
2.1.7. Beroenden av paket
2.1.8. HÀndelseflödet för pakethanteringen
2.1.9. Första svaret pÄ problem med pakethantering
2.1.10. Hur man vÀljer Debian-paket
2.1.11. Hur man hanterar motstridiga krav
2.2. GrundlÀggande funktioner för pakethantering
2.2.1. apt mot apt-get / apt-cache mot aptitude
2.2.2. GrundlÀggande pakethanteringsoperationer med kommandoraden
2.2.3. Interaktiv anvÀndning av begÄvning
2.2.4. Viktiga bindningar för lÀmplighet
2.2.5. Paketera visningar under aptitude
2.2.6. Sök metodalternativ med aptitude
2.2.7. Formeln för regex för lÀmplighet
2.2.8. Beroendeupplösning av lÀmplighet
2.2.9. Loggar över paketaktiviteter
2.3. Exempel pÄ lÀmplighetsoperationer
2.3.1. Söker intressanta paket
2.3.2. Lista paket med regex-matchning pÄ paketnamn
2.3.3. BlÀddra med regex-matchning
2.3.4. Utrensning av borttagna paket för gott
2.3.5. StÀdning av status för automatisk/manuell installation
2.3.6. Systemomfattande uppgradering
2.4. Avancerade ÄtgÀrder för pakethantering
2.4.1. Avancerad pakethantering med kommandoraden
2.4.2. Verifiering av installerade paketfiler
2.4.3. Skydd för paketproblem
2.4.4. Sökning pÄ paketets metadata
2.5. Interna funktioner för Debians pakethantering
2.5.1. Metadata för arkiv
2.5.2. "Release"-fil pÄ högsta nivÄ och Àkthet
2.5.3. "Release"-filer pÄ arkivnivÄ
2.5.4. HÀmtning av metadata för paketet
2.5.5. Paketstatus för APT
2.5.6. Paketstatus för aptitude
2.5.7. Lokala kopior av de hÀmtade paketen
2.5.8. Debian paket filnamn
2.5.9. Kommandot dpkg
2.5.10. Kommandot update-alternatives
2.5.11. Kommandot dpkg-statoverride
2.5.12. Kommandot dpkg-divert
2.6. ÅterhĂ€mtning frĂ„n ett trasigt system
2.6.1. Inkompatibilitet med gammal anvÀndarkonfiguration
2.6.2. Cachelagring av fel i paketdata
2.6.3. RĂ€ddning med kommandot dpkg
2.6.4. Misslyckad installation pÄ grund av att beroenden saknas
2.6.5. Olika paket med överlappande filer
2.6.6. ÅtgĂ€rdar trasigt paketskript
2.6.7. ÅterstĂ€llning av data för paketval
2.7. Tips för pakethantering
2.7.1. Vem laddade upp paketet?
2.7.2. BegrÀnsning av nedladdningsbandbredd för APT
2.7.3. Automatisk nedladdning och uppgradering av paket
2.7.4. Uppdateringar och baksidor
2.7.5. Externa paketarkiv
2.7.6. Paket frÄn blandade arkivkÀllor utan apt-pinning
2.7.7. Justera kandidatversionen med apt-pinning
2.7.8. Blockeringspaket installerade av "Recommends"
2.7.9. SpÄra testing med vissa paket frÄn unstable
2.7.10. SpÄrning unstable med vissa paket frÄn experimental
2.7.11. Akut nedgradering
2.7.12. Equivs-paketet
2.7.13. Portering av ett paket till det stabila systemet
2.7.14. Proxyserver för APT
2.7.15. Mer lÀsning för pakethanteringen
[Notera] Notera

Detta kapitel Àr skrivet med antagandet att den senaste stabila versionen Àr codename: trixie.

APT-systemets datakÀlla kallas i detta dokument för kÀllistan. Den kan definieras var som helst i filerna "/etc/apt/sources.list", "/etc/apt/sources.list.d/*.list" eller "/etc/apt/sources.list.d/*.sources".

Debian Àr en frivilligorganisation som bygger konsekventa distributioner av förkompilerade binÀra paket med fri programvara och distribuerar dem frÄn sitt arkiv.

Debian-arkivet erbjuds av mÄnga fjÀrranslutna spegelsajter för Ätkomst via HTTP- och FTP-metoder. Det finns ocksÄ tillgÀngligt som CD-ROM/DVD.

Det nuvarande pakethanteringssystemet i Debian som kan utnyttja alla dessa resurser Àr Advanced Packaging Tool (APT).

Debians pakethanteringssystem, nÀr det anvÀnds pÄ rÀtt sÀtt, erbjuder anvÀndaren att installera konsekventa uppsÀttningar av binÀra paket till systemet frÄn arkivet. För nÀrvarande finns det 74874 paket tillgÀngliga för arkitekturen amd64.

Debians pakethanteringssystem har en rik historia och mÄnga valmöjligheter för anvÀndarprogrammet i frontend och metoden för arkivÄtkomst i backend som ska anvÀndas. För nÀrvarande rekommenderar vi följande.

  • apt(8) för alla interaktiva kommandoradsoperationer, inklusive installation, borttagning och dist-uppgradering av paket.

  • apt-get(8) för att anropa Debians pakethanteringssystem frĂ„n skript. Det Ă€r ocksĂ„ ett reservalternativ nĂ€r apt inte Ă€r tillgĂ€ngligt (ofta med Ă€ldre Debian-system).

  • aptitude(8) för ett interaktivt textgrĂ€nssnitt för att hantera de installerade paketen och söka efter tillgĂ€ngliga paket.


[Varning] Varning

Installera inte paket frÄn en slumpmÀssig blandning av sviter. Det bryter förmodligen paketkonsistensen som krÀver djup kunskap om systemhantering, t.ex. kompilatorns ABI, biblioteksversion, tolkfunktioner etc.

Debian-systemadministratören som Àr nybörjare bör hÄlla sig till den stable stabila utgÄvan av Debian och endast anvÀnda sÀkerhetsuppdateringar. Tills du förstÄr Debiansystemet mycket vÀl, bör du följa följande försiktighetsÄtgÀrder.

  • Inkludera inte testing eller unstable i kĂ€llistan.

  • Blanda inte standard Debian med andra icke-Debian-arkiv som Ubuntu i kĂ€llistan.

  • Skapa inte "/etc/apt/preferences".

  • Ändra inte standardbeteendet för pakethanteringsverktyg via konfigurationsfiler utan att kĂ€nna till de fullstĂ€ndiga konsekvenserna.

  • Installera inte slumpmĂ€ssiga paket med "dpkg -i random_package".

  • Installera aldrig slumpmĂ€ssiga paket med "dpkg --force-all -i random_package".

  • Radera eller Ă€ndra inte filer i "/var/lib/dpkg/".

  • Skriv inte över systemfiler genom att installera program som kompilerats direkt frĂ„n kĂ€llan.

    • Installera dem i "/usr/local" eller "/opt", om det behövs.

De icke-kompatibla effekter som orsakas av brott mot ovanstÄende försiktighetsÄtgÀrder för Debians pakethanteringssystem kan göra ditt system obrukbart.

Den seriösa Debian-systemadministratören som driver verksamhetskritiska servrar bör vidta extra försiktighetsÄtgÀrder.

  • Installera inte nĂ„gra paket, inklusive sĂ€kerhetsuppdateringar frĂ„n Debian, utan att noggrant testa dem med din specifika konfiguration under sĂ€kra förhĂ„llanden.

    • I slutĂ€ndan Ă€r det du som systemadministratör som Ă€r ansvarig för ditt system.

    • Debiansystemets lĂ„nga stabilitetshistoria Ă€r ingen garanti i sig.

[Observera] Observera

För din produktionsserver rekommenderas den stable sviten med sÀkerhetsuppdateringar. Detsamma gÀller för stationÀra datorer som du kan lÀgga begrÀnsad tid pÄ att administrera.

Trots mina varningar ovan vet jag att mÄnga lÀsare av detta dokument kanske vill köra de nyare testing eller unstable sviterna.

Upplysning med följande rÀddar en person frÄn den eviga karmiska kampen i uppgraderingshelvetet och lÄter honom nÄ Debian-nirvana.

Denna lista Àr avsedd för den sjÀlvadministrerade Desktop-miljön.

  • AnvĂ€nd testing eftersom den praktiskt taget Ă€r den rullande utgĂ„van som automatiskt hanteras av Debianarkivets QA-infrastruktur, sĂ„som Debians kontinuerliga integration, praxis för uppladdning av endast kĂ€llkod och spĂ„rning av biblioteksövergĂ„ngar. Paketen i testing uppdateras tillrĂ€ckligt ofta för att erbjuda alla de senaste funktionerna.

  • Ange kodnamnet som motsvarar testing ( "forky;" under utgivningscykeln trixie as stable ) i kĂ€llistan.

  • Uppdatera kodnamnet i kĂ€llistan manuellt till det nya kodnamnet först efter att du sjĂ€lv har utvĂ€rderat situationen i ungefĂ€r en mĂ„nad efter att den stora sviten har slĂ€ppts. Debians sĂ€ndlista för anvĂ€ndare och utvecklare Ă€r ocksĂ„ bra informationskĂ€llor för detta.

Det Ă€r inte rekommenderat att anvĂ€nda den unstable sviten. Den unstable sviten Ă€r bra för att felsöka paket som utvecklare men tenderar att utsĂ€tta dig för onödiga risker vid normal anvĂ€ndning pĂ„ skrivbordet. Även om Debiansystemets unstable -svit för det mesta ser mycket stabil ut, har det förekommit en del paketproblem och nĂ„gra av dem var inte sĂ„ triviala att lösa.

HÀr Àr nÄgra grundlÀggande försiktighetsÄtgÀrder för att sÀkerstÀlla snabb och enkel ÄterhÀmtning frÄn buggar i Debian-paket.

  • Make the rescue system available by following Avsnitt 3.2, ”Rescue system”.

  • Gör systemet dubbelstartbart genom att installera den stable delen av Debian-systemet pĂ„ en annan partition

  • ÖvervĂ€g att installera apt-listbugs för att kontrollera informationen i Debian Bug Tracking System (BTS) före uppgraderingen

  • LĂ€r dig infrastrukturen för paketsystemet tillrĂ€ckligt för att kunna lösa problemet

[Observera] Observera

Om du inte kan göra nÄgon av dessa försiktighetsÄtgÀrder Àr du förmodligen inte redo för testing och de unstable sviterna.

[Tips] Tips

Debianarkivets officiella policy definieras i Debians policyhandbok, kapitel 2 - Debianarkivet.

LÄt oss titta in i Debian-arkivet frÄn en systemanvÀndares perspektiv.

En systemanvÀndare fÄr tillgÄng till Debian-arkivet med hjÀlp av APT-systemet.

APT-systemet specificerar sin datakÀlla som kÀllistan och den beskrivs i sources.list(5).

For the trixie system with the typical HTTP access, the source list is provided in the modern deb822-style in "/etc/apt/sources.list.d/debian.sources" as the following:

Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: trixie
Components: main non-free-firmware contrib non-free

Types: deb deb-src
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main non-free-firmware contrib non-free
[Tips] Tips

If the source list is provided in the older deprecated one-line-style in "/etc/apt/sources.list" or "/etc/apt/sources.list.d/*.list" files, update them with:

 $ sudo apt modernize-sources

Key points of the source list in deb822-style are followings.

  • Dess definitionsfiler finns i filerna "/etc/apt/sources.list.d/*.sources".

  • Varje block av rader som Ă„tskiljs av en blankrad definierar datakĂ€llan för APT-systemet.

  • I strofen "Types:" definieras listan över typer, t.ex. "deb" och "deb-src".

  • Stanza "URIs:" definierar listan med rot-URI:er för Debian-arkivet.

  • I strofen "Suites:" definieras listan över distributionsnamn med hjĂ€lp av antingen svitnamnet eller kodnamnet.

  • Stanza "Components:" definierar listan över giltiga namn pĂ„ arkivomrĂ„den i Debian-arkivet.

Definitionen för "deb-src" kan sÀkert utelÀmnas om det bara Àr för aptitude som inte har tillgÄng till kÀllrelaterade metadata. Det pÄskyndar uppdateringarna av arkivets metadata.

URL:en kan vara "https://", "http://", "ftp://", "file://", ....

Rader som börjar med "#" Àr kommentarer och ignoreras.

HÀr brukar jag anvÀnda kodnamnet "trixie" eller "forky" istÀllet för svitnamnet "stable" eller "testing" för att undvika överraskningar nÀr nÀsta stable slÀpps.

[Tips] Tips

Om "sid" anvÀnds i exemplet ovan istÀllet för "trixie", krÀvs inte raden "deb: http://security.debian.org/ ..." eller dess deb822-ekvivalenta innehÄll för sÀkerhetsuppdateringar i kÀllistan. Detta beror pÄ att det inte finns nÄgot arkiv med sÀkerhetsuppdateringar för "sid"(unstable).

HÀr Àr listan över URL-adresser till Debians arkivplatser och svitnamn eller kodnamn som anvÀnds i konfigurationsfilen efter trixie -utgÄvan.


[Observera] Observera

Endast ren stable version med sĂ€kerhetsuppdateringar ger den bĂ€sta stabiliteten. Att köra mestadels stable utgĂ„va blandat med nĂ„gra paket frĂ„n testing eller unstable utgĂ„va Ă€r mer riskfyllt Ă€n att köra en ren unstable utgĂ„va dĂ€r biblioteksversioner inte stĂ€mmer etc. Om du verkligen behöver den senaste versionen av vissa program under stable utgĂ„va, anvĂ€nd paket frĂ„n tjĂ€nsterna stable-updates och backports (se Avsnitt 2.7.4, ”Uppdateringar och baksidor”). Dessa tjĂ€nster mĂ„ste anvĂ€ndas med extra försiktighet.

[Observera] Observera

Du bör i princip bara ange en av sviterna stable, testing eller unstable i "deb"-raden. Om du listar en kombination av stable, testing och unstable sviter pĂ„ "deb"-raden blir APT-programmen lĂ„ngsammare och endast det senaste arkivet Ă€r effektivt. Multipel listning Ă€r meningsfullt för dessa nĂ€r filen "/etc/apt/preferences" anvĂ€nds med tydliga mĂ„l (se Avsnitt 2.7.7, ”Justera kandidatversionen med apt-pinning”).

[Tips] Tips

För Debian-systemet med den stable sviten Àr det en bra idé att inkludera innehÄllet med "http://security.debian.org/" i kÀllistan för att aktivera sÀkerhetsuppdateringar som i exemplet ovan.

[Notera] Notera

SÀkerhetsbuggarna för det stable arkivet ÄtgÀrdas av Debians sÀkerhetsteam. Denna aktivitet har varit ganska rigorös och pÄlitlig. De för testing-arkivet kan ÄtgÀrdas av Debians sÀkerhetsteam för testing. Av flera skÀl Àr denna aktivitet inte lika rigorös som den för stable och du kan behöva vÀnta pÄ att fixade unstable paket flyttas till testing-arkivet. De för det unstable arkivet fixas av den individuella underhÄllaren. Aktivt underhÄllna unstable paket Àr vanligtvis i ganska gott skick genom att de utnyttjar de senaste sÀkerhetsfixarna uppströms. Se Debians FAQ om sÀkerhet för hur Debian hanterar sÀkerhetsbuggar.


HĂ€r Ă€r antalet paket i ovanstĂ„ende för arkitekturen amd64. OmrĂ„det main tillhandahĂ„ller Debian-systemet (se Avsnitt 2.1.6, ”Debian Ă€r 100% fri programvara”).

Debians arkivorganisation kan studeras bÀst genom att rikta webblÀsaren mot varje arkiv-URL med dists eller pool som tillÀgg.

Distributionen benÀmns pÄ tvÄ sÀtt, sviten eller kodnamnet. Ordet distribution anvÀnds alternativt som synonym till sviten i mÄnga dokumentationer. FörhÄllandet mellan sviten och kodnamnet kan sammanfattas enligt följande.


Kodnamnens historia beskrivs i Debians FAQ: 6.2.1 Vilka andra kodnamn har anvÀnts tidigare?

I den striktare Debian-arkivterminologin anvĂ€nds ordet "section" specifikt för kategorisering av paket efter tillĂ€mpningsomrĂ„de. (Även om ordet "huvudavsnitt" ibland kan anvĂ€ndas för att beskriva Debian-arkivets omrĂ„de med namnet "main")

Varje gÄng en ny uppladdning görs av en Debian-utvecklare (DD) till det unstable arkivet (via inkommande bearbetning), mÄste DD sÀkerstÀlla att de uppladdade paketen Àr kompatibla med den senaste uppsÀttningen paket i det senaste unstable arkivet.

Om DD bryter denna kompatibilitet avsiktligt för en viktig biblioteksuppgradering etc., finns det vanligtvis ett meddelande pÄ sÀndlistan debian-devel etc.

Innan en uppsÀttning paket flyttas av Debians arkivunderhÄllsskript frÄn det unstable arkivet till testarkivet, kontrollerar arkivunderhÄllsskriptet inte bara paketens mognadsgrad (ca 2-10 dagar gamla) och status för RC-buggrapporterna, utan försöker ocksÄ se till att de Àr kompatibla med den senaste uppsÀttningen paket i testarkivet. Denna process gör testarkivet mycket aktuellt och anvÀndbart.

Genom den gradvisa arkivfrysningsprocessen som leds av releaseteamet mognar testing sÄ att det blir helt konsekvent och buggfritt med vissa manuella ingrepp. DÀrefter skapas den nya stable utgÄvan genom att kodnamnet för det gamla arkivet testing tilldelas det nya stable arkivet och det nya kodnamnet skapas för det nya arkivet testing. Det ursprungliga innehÄllet i det nya arkivet testing Àr exakt detsamma som i det nyutgivna stable arkivet.

BÄde de unstable och de testande arkiven kan drabbas av tillfÀlliga störningar pÄ grund av flera faktorer.

  • Uppladdning av trasiga paket till arkivet (mest för unstable)

  • Fördröjning av att acceptera nya paket i arkivet (mest för unstable)

  • Problem med timing för arkivsynkronisering (bĂ„de för testing och unstable)

  • Manuella ingrepp i arkivet, t.ex. borttagning av paket (mer för testing) etc.

SÄ om du nÄgonsin bestÀmmer dig för att anvÀnda dessa arkiv bör du kunna fixa eller arbeta runt den hÀr typen av problem.

[Observera] Observera

Under nÄgra mÄnader efter en ny stable version bör de flesta datoranvÀndare anvÀnda det stable arkivet med dess sÀkerhetsuppdateringar, Àven om de vanligtvis anvÀnder unstable arkiv eller testing. Under den hÀr övergÄngsperioden Àr bÄde unstable arkiv och testing inte bra för de flesta. Ditt system Àr svÄrt att hÄlla i gott skick med det unstable arkivet eftersom det drabbas av stora uppgraderingar av kÀrnpaket. Testing-arkivet Àr inte heller anvÀndbart eftersom det innehÄller i stort sett samma innehÄll som det stable arkivet utan dess sÀkerhetsstöd(Debian testing-security-announce 2008-12). Efter en mÄnad eller sÄ kan unstable arkiv eller testing bli anvÀndbara om du Àr försiktig.

[Tips] Tips

Vid spÄrning av testarkivet kan ett problem som orsakas av ett borttaget paket vanligtvis lösas genom att installera motsvarande paket frÄn det unstable arkivet som laddas upp för buggfixning.

Se Debians policyhandbok för arkivdefinitioner.

Debian Àr en 100% free programvara pÄ grund av följande:

  • Debian installerar endast fri programvara som standard för att respektera anvĂ€ndarnas friheter.

  • Debian tillhandahĂ„ller endast fri programvara i main.

  • Debian rekommenderar att man endast kör fri programvara frĂ„n main.

  • Inga paket i main depend eller rekommenderar paket i non-free eller non-free-firmware eller contrib.

Vissa mÀnniskor undrar om följande 2 fakta motsÀger varandra eller inte.

Dessa motsÀger inte varandra, pÄ grund av följande.

  • Debian-systemet Ă€r 100% free och dess paket finns pĂ„ Debian-servrar i main.

  • Paket utanför Debiansystemet finns pĂ„ Debians servrar i omrĂ„dena non-free, non-free-firmware och contrib.

Dessa förklaras exakt i de 4:e och 5:e villkoren i Debians sociala kontrakt:

  • VĂ„ra prioriteringar Ă€r vĂ„ra anvĂ€ndare och fri programvara

    • Vi kommer att vĂ€gledas av vĂ„ra anvĂ€ndares och den fria programvarugemenskapens behov. Vi kommer att sĂ€tta deras intressen först i vĂ„ra prioriteringar. Vi kommer att stödja vĂ„ra anvĂ€ndares behov av drift i mĂ„nga olika typer av datormiljöer. Vi kommer inte att motsĂ€tta oss icke-fria verk som Ă€r avsedda att anvĂ€ndas pĂ„ Debiansystem, eller försöka ta ut en avgift av personer som skapar eller anvĂ€nder sĂ„dana verk. Vi kommer att tillĂ„ta andra att skapa distributioner som innehĂ„ller bĂ„de Debiansystemet och andra verk, utan nĂ„gon avgift frĂ„n oss. För att frĂ€mja dessa mĂ„l kommer vi att tillhandahĂ„lla ett integrerat system med material av hög kvalitet utan nĂ„gra juridiska restriktioner som skulle förhindra sĂ„dan anvĂ€ndning av systemet.

  • Verk som inte uppfyller vĂ„ra standarder för fri programvara

    • Vi Ă€r medvetna om att vissa av vĂ„ra anvĂ€ndare krĂ€ver anvĂ€ndning av verk som inte överensstĂ€mmer med Debians riktlinjer för fri programvara. Vi har skapat omrĂ„dena "non-free", "non-free-firmware" och "contrib" i vĂ„rt arkiv för dessa verk. Paketen i dessa omrĂ„den Ă€r inte en del av Debiansystemet, Ă€ven om de har konfigurerats för att anvĂ€ndas med Debian. Vi uppmuntrar cd-tillverkare att lĂ€sa licenserna för paketen i dessa omrĂ„den och avgöra om de kan distribuera paketen pĂ„ sina cd-skivor. Även om icke-fria verk inte Ă€r en del av Debian, stöder vi deras anvĂ€ndning och tillhandahĂ„ller infrastruktur för icke-fria paket (sĂ„som vĂ„rt buggspĂ„rningssystem och vĂ„ra e-postlistor). Debians officiella media kan innehĂ„lla inbyggd programvara som annars inte Ă€r en del av Debiansystemet för att möjliggöra anvĂ€ndning av Debian med maskinvara som krĂ€ver sĂ„dan inbyggd programvara.

[Notera] Notera

Den faktiska texten i den 5:e termen i det nuvarande Debian Social Contract 1.2 skiljer sig nÄgot frÄn ovanstÄende text. Denna redaktionella avvikelse Àr avsiktlig för att göra detta anvÀndardokument konsekvent utan att Àndra det verkliga innehÄllet i det sociala kontraktet.

AnvÀndare bör vara medvetna om riskerna med att anvÀnda paket i omrÄdena non-free, non-free-firmware och contrib:

  • brist pĂ„ frihet för sĂ„dana programvarupaket

  • brist pĂ„ stöd frĂ„n Debian för sĂ„dana programpaket (Debian kan inte stödja programvara pĂ„ rĂ€tt sĂ€tt utan att ha tillgĂ„ng till kĂ€llkoden)

  • kontaminering av ditt 100% free Debian-system

Debians riktlinjer för fri programvara Àr standarderna för fri programvara för Debian. Debian tolkar "programvara" i vidaste bemÀrkelse, inklusive dokument, inbyggd programvara, logotyp och illustrationer i paketet. Detta gör Debians standarder för fri programvara mycket strikta.

Typiska paket för non-free, non-free-firmware och contrib inkluderar fritt distribuerbara paket av följande typer:

Observera att antalet paket i non-free-, non-free-firmware- och contrib Àr mindre Àn 2% jÀmfört med antalet i main. Att ge tillgÄng till omrÄdena non-free, non-free-firmware och contrib döljer inte kÀllan till paketen. Interaktiv helskÀrmsanvÀndning av aptitude(8) ger dig full insyn och kontroll över vilka paket som installeras frÄn vilket omrÄde för att hÄlla ditt system sÄ fritt som du önskar.

Debiansystemet erbjuder en konsekvent uppsÀttning binÀra paket genom sin mekanism för deklaration av binÀra beroendeversioner i kontrollfilsfÀlten. HÀr Àr en lite förenklad definition för dem.

  • "Depends"

    • Detta förklarar ett absolut beroende och alla paket som anges i detta fĂ€lt mĂ„ste installeras samtidigt eller i förvĂ€g.

  • "Pre-Depends"

    • Detta Ă€r som Depends, förutom att det krĂ€ver en fullstĂ€ndig installation av de listade paketen i förvĂ€g.

  • "Recommends"

    • Detta deklarerar ett starkt, men inte absolut, beroende. De flesta anvĂ€ndare vill inte ha paketet om inte alla paket som anges i det hĂ€r fĂ€ltet Ă€r installerade.

  • "Suggests"

    • Detta deklarerar ett svagt beroende. MĂ„nga anvĂ€ndare av detta paket kan dra nytta av att installera paket som listas i detta fĂ€lt men kan ha rimliga funktioner utan dem.

  • "Enhances"

    • Detta förklarar ett svagt beroende som Suggests men fungerar i motsatt riktning.

  • "Breaks"

    • Detta deklarerar en paketinkompatibilitet, vanligtvis med nĂ„gon versionsspecifikation. Lösningen Ă€r i allmĂ€nhet att uppgradera alla paket som listas i detta fĂ€lt.

  • "Conflicts"

    • Detta förklarar en absolut inkompatibilitet. Alla paket som anges i det hĂ€r fĂ€ltet mĂ„ste tas bort för att installera det hĂ€r paketet.

  • "Replaces"

    • Detta deklareras nĂ€r filer som installeras av detta paket ersĂ€tter filer i de listade paketen.

  • "Provides"

    • Detta deklareras nĂ€r detta paket innehĂ„ller alla filer och funktioner i de listade paketen.

[Notera] Notera

Observera att det Àr den sundaste konfigurationen att definiera "Provides", "Conflicts" och "Replaces" samtidigt för ett virtuellt paket. Detta sÀkerstÀller att endast ett verkligt paket som tillhandahÄller detta virtuella paket kan installeras vid varje tillfÀlle.

Den officiella definitionen, inklusive kÀllkodsberoende, finns i Policy Manual: Kapitel 7 - Deklaration av relationer mellan paket.

HÀr följer en sammanfattning av det förenklade hÀndelseflödet för APT:s pakethantering.

HÀr har jag avsiktligt hoppat över tekniska detaljer för helhetsbildens skull.

Oavsett vilken svit av Debian-system du vĂ€ljer att anvĂ€nda, kanske du Ă€ndĂ„ vill köra versioner av program som inte finns tillgĂ€ngliga i den sviten. Även om du hittar binĂ€ra paket av sĂ„dana program i andra Debian-sviter eller i andra icke-Debian-resurser, kan deras krav stĂ„ i konflikt med ditt nuvarande Debian-system.

Även om du kan justera pakethanteringssystemet med apt-pinning-teknik etc. som beskrivs i Avsnitt 2.7.7, ”Justera kandidatversionen med apt-pinning” för att installera sĂ„dana osynkroniserade binĂ€ra paket, har sĂ„dana justeringsmetoder endast begrĂ€nsade anvĂ€ndningsomrĂ„den eftersom de kan förstöra dessa program och ditt system.

Innan du brutalt installerar sÄdana osynkroniserade paket bör du söka efter alla tillgÀngliga alternativa sÀkrare tekniska lösningar som Àr kompatibla med ditt nuvarande Debian-system.

Förvaringsbaserade pakethanteringsÄtgÀrder i Debiansystemet kan utföras av mÄnga APT-baserade pakethanteringsverktyg som finns tillgÀngliga i Debiansystemet. HÀr förklarar vi 3 grundlÀggande pakethanteringsverktyg: apt, apt-get / apt-cache och aptitude.

Du mÄste ha root-behörighet för att kunna utföra pakethanteringsÄtgÀrder som innebÀr paketinstallation eller uppdatering av paketmetadata.

Även om aptitude Ă€r ett mycket trevligt interaktivt verktyg som författaren huvudsakligen anvĂ€nder, bör du kĂ€nna till nĂ„gra försiktiga fakta:

Kommandona apt-get och apt-cache Àr de mest grundlÀggande APT-baserade pakethanteringsverktygen.

  • apt-get och apt-cache erbjuder endast anvĂ€ndargrĂ€nssnittet för kommandoraden.

  • apt-get Ă€r mest lĂ€mpligt för större systemuppgraderingar mellan releaser etc.

  • apt-get erbjuder en robust lösning för paketberoenden.

  • apt-get Ă€r mindre krĂ€vande nĂ€r det gĂ€ller hĂ„rdvaruresurser. Det förbrukar mindre minne och körs snabbare.

  • apt-cache erbjuder en standardregexbaserad sökning pĂ„ paketets namn och beskrivning.

  • apt-get och apt-cache kan hantera flera versioner av paket med hjĂ€lp av /etc/apt/preferences men det Ă€r ganska besvĂ€rligt.

Kommandot apt Àr ett kommandoradsgrÀnssnitt pÄ hög nivÄ för pakethantering. Det Àr i grunden ett omslag för apt-get, apt-cache och liknande kommandon, ursprungligen avsett som ett grÀnssnitt för slutanvÀndare och aktiverar vissa alternativ som Àr bÀttre lÀmpade för interaktiv anvÀndning som standard.

  • apt tillhandahĂ„ller en vĂ€nlig förloppsindikator nĂ€r du installerar paket med apt install.

  • apt kommer att ta bort cachade .deb-paket som standard efter lyckad installation av hĂ€mtade paket.

[Tips] Tips

AnvÀndare rekommenderas att anvÀnda det nya kommandot apt(8) för interaktiv anvÀndning och att anvÀnda kommandona apt-get(8) och apt-cache(8) i skalskriptet.

Kommandot aptitude Àr det mest mÄngsidiga APT-baserade verktyget för pakethantering.

  • aptitude erbjuder anvĂ€ndargrĂ€nssnittet för interaktiv text i fullskĂ€rm.

  • aptitude erbjuder Ă€ven ett anvĂ€ndargrĂ€nssnitt för kommandoraden.

  • aptitude Ă€r mest lĂ€mpad för den dagliga interaktiva pakethanteringen, t.ex. kontroll av installerade paket och sökning efter tillgĂ€ngliga paket.

  • aptitude Ă€r mer krĂ€vande nĂ€r det gĂ€ller hĂ„rdvaruresurser. Den förbrukar mer minne och körs lĂ„ngsammare.

  • aptitude erbjuder en förbĂ€ttrad regexbaserad sökning pĂ„ alla paketets metadata.

  • aptitude kan hantera flera versioner av paket utan att anvĂ€nda /etc/apt/preferences och det Ă€r ganska intuitivt.

HÀr följer grundlÀggande ÄtgÀrder för pakethantering via kommandoraden med apt(8), aptitude(8) och apt-get(8) /apt-cache(8).

Tabell 2.6. GrundlÀggande pakethantering med kommandoraden med apt(8), aptitude(8) och apt-get(8) /apt-cache(8)

apt-syntax aptitude-syntax syntax för apt-get/apt-cache beskrivning
apt update aptitude update apt-get update uppdatera metadata för paketarkiv
apt install foo aptitude install foo apt-get install foo installera kandidatversionen av "foo"-paketet med dess beroenden
apt upgrade aptitude safe-upgrade apt-get upgrade installera kandidatversionen av installerade paket utan att ta bort nÄgra andra paket
apt full-upgrade aptitude full-upgrade apt-get dist-upgrade installera kandidatversionen av installerade paket samtidigt som andra paket tas bort vid behov
apt remove foo aptitude remove foo apt-get remove foo ta bort paketet "foo" och lÀmna kvar dess konfigurationsfiler
apt autoremove N/A apt-get autoremove ta bort automatiskt installerade paket som inte lÀngre behövs
apt purge foo aptitude purge foo apt-get purge foo rensa paketet "foo" med dess konfigurationsfiler
apt clean aptitude clean apt-get clean tömma det lokala arkivet pÄ hÀmtade paketfiler helt och hÄllet
apt autoclean aptitude autoclean apt-get autoclean rensa ut det lokala arkivet med hÀmtade paketfiler för förÄldrade paket
apt show foo aptitude show foo apt-cache show foo visa detaljerad information om "foo" paketet
apt search regex aptitude search regex apt-cache search regex sök paket som matchar regex
N/A aptit varför regex N/A förklara anledningen till att paket för regexmatchning bör installeras
N/A aptitude why-not regex N/A förklara orsaken till att paket för regexmatchning inte kan installeras
apt list --manual-installed aptitude search '~i!~M' apt-mark showmanual lista manuellt installerade paket

apt / apt-get och aptitude kan blandas utan större problem.

"aptitude why regex" kan lista mer information genom "aptitude -v why regex". Liknande information kan erhÄllas med "apt rdepends package" eller "apt-cache rdepends package".

NÀr kommandot aptitude startas i kommandoradslÀget och stöter pÄ problem, t.ex. paketkonflikter, kan du vÀxla till det interaktiva helskÀrmslÀget genom att trycka pÄ "e"-tangenten senare vid prompten.

[Notera] Notera

Även om kommandot aptitude har mĂ„nga funktioner, t.ex. en förbĂ€ttrad paketlösare, har denna komplexitet orsakat (eller kan fortfarande orsaka) vissa regressioner, t.ex. fel #411123, fel #514930 och fel #570377. Om du Ă€r osĂ€ker bör du anvĂ€nda kommandona apt, apt-get och apt-cache i stĂ€llet för kommandot aptitude.

Du kan ange kommandoalternativ direkt efter "aptitude".


Se aptitude(8) och "aptitude user's manual" pÄ "/usr/share/doc/aptitude/README" för mer information.

Viktiga tangenttryckningar för att blÀddra igenom status för paket och för att ange "planerad ÄtgÀrd" för dem i detta helskÀrmslÀge Àr följande.


Filnamnsspecifikationen pÄ kommandoraden och menyprompten efter att du har tryckt pÄ "l" och "//" anvÀnder Aptitude regex enligt beskrivningen nedan. Aptitude regex kan uttryckligen matcha ett paketnamn med hjÀlp av en strÀng som inleds med "~n" och följs av paketnamnet.

[Tips] Tips

Du mÄste trycka pÄ "U" för att fÄ alla installerade paket uppgraderade till kandidatversionen i det visuella grÀnssnittet. Annars uppgraderas endast de valda paketen och vissa paket med versionsberoende till dem till kandidatversionen.

I det interaktiva helskÀrmslÀget för aptitude(8) visas paketen i paketlistan som i nÀsta exempel.

idA   libsmbclient                             -2220kB 3.0.25a-1  3.0.25a-2

HÀr betyder denna linje frÄn vÀnster som följande.

  • Flaggan "nuvarande tillstĂ„nd" (den första bokstaven)

  • Flaggan för "planerad Ă„tgĂ€rd" (den andra bokstaven)

  • Den "automatiska" flaggan (den tredje bokstaven)

  • Paketets namn

  • FörĂ€ndringen i anvĂ€ndningen av diskutrymme till följd av "planerad Ă„tgĂ€rd"

  • Den aktuella versionen av paketet

  • Kandidatversionen av paketet

[Tips] Tips

Den fullstÀndiga listan över flaggor finns lÀngst ned pÄ hjÀlpskÀrmen och visas genom att trycka pÄ "?".

Kandidatversionen vĂ€ljs enligt de aktuella lokala preferenserna (se apt_preferences(5) och Avsnitt 2.7.7, ”Justera kandidatversionen med apt-pinning”).

Flera olika typer av paketvyer finns tillgÀngliga under menyn "Vyer".


Standardfunktionen "Package View" kategoriserar paket ungefÀr som dselect med nÄgra extra funktioner.


[Tips] Tips

Tasks-vyn kan anvÀndas för att vÀlja ut paket för din uppgift.

Aptitude-regexformeln Ă€r mutt-liknande utökad ERE (se Avsnitt 1.6.2, ”Vanliga uttryck”) och betydelserna av de aptitude-specifika speciella matchningsregeltillĂ€ggen Ă€r följande.

Tabell 2.11. Lista över regexformeln för lÀmplighet

beskrivning av den utökade matchningsregeln regex-formel
matcha pÄ förpackningsnamn ~nregex_name
matcha pÄ beskrivning ~dregex_description
matcha pÄ uppgiftsnamn ~tregex_task
match pÄ debtag ~Gregex_debtag
matcha pÄ underhÄllare ~mregex_maintainer
match pÄ paketavsnitt ~sregex_section
matcha pÄ paketversion ~Vregex_version
matcharkiv ~A{trixie,forky,sid}
matcha ursprung ~O{debian,
}
matcha prioritet ~p{extra,important,optional,required,standard}
matcha viktiga paket ~E
matcha virtuella paket ~v
matcha nya paket ~N
matchning med pÄgÄende ÄtgÀrd ~a{install,upgrade,downgrade,remove,purge,hold,keep}
matcha installerade paket ~i
matcha installerade paket med A-mÀrkning(automatiskt installerade paket) ~M
matcha installerade paket utan A-mÀrkning(administratörsvalda paket) ~i!~M
matcha installerade och uppgraderingsbara paket ~U
match avlÀgsnade men inte rensade paket ~c
matchade borttagna, rensade eller kan tas bort paket ~g
matcha paket som deklarerar ett brutet beroende ~b
matcha paket som deklarerar brutna beroenden av typen ~Btype
matcha mönsterpaket som deklarerar beroende av typen ~D[type:]mönster
matcha mönsterpaket som deklarerar brutet beroende av typen ~DB[type:]mönster
matcha paket till vilka det mönstermatchande paketet deklarerar beroendetyp ~R[type:]pattern
matcha paket till vilka det mönstermatchande paketet deklarerar bruten beroendetyp ~RB[type:]pattern
matcha paket som vissa andra installerade paket Àr beroende av ~R~i
matcha paket som inga andra installerade paket Àr beroende av !~R~i
matcha paket som vissa andra installerade paket Àr beroende av eller rekommenderar ~R~i|~Rrecommends:~i
matcha mönsterpaket med filtrerad version ~S filter pattern
matcha alla paket (true) ~T
matcha inga paket (false) ~F

  • Regex-delen Ă€r samma ERE som anvĂ€nds i typiska Unix-liknande textverktyg som anvĂ€nder "^", ".*", "$" etc. som i egrep(1), awk(1) och perl(1).

  • Beroendetypen Ă€r en av (depends, predepends, recommends, suggests, conflicts, replaces, provides) som anger paketets inbördes förhĂ„llande.

  • Standardberoendetypen Ă€r "depends".

[Tips] Tips

NÀr regex_pattern Àr en nollstrÀng placeras "~T" omedelbart efter kommandot.

HÀr Àr nÄgra genvÀgar.

  • "~Pterm" == "~Dprovides:term"

  • "~Cterm" == "~Dkonflikter:term"

  • "
~W term" == "(
|term)"

AnvĂ€ndare som Ă€r bekanta med mutt lĂ€r sig snabbt, eftersom mutt var inspirationen till uttryckssyntaxen. Se "SÖKNING, BEGRÄNSNING OCH UTTRYCK" i "AnvĂ€ndarhandboken" "/usr/share/doc/aptitude/README".

[Notera] Notera

Med Lenny-versionen av aptitude(8) kan den nya lÄnga syntaxen som "?broken" anvÀndas för regex-matchning i stÀllet för den gamla korta motsvarigheten "~b". Nu betraktas mellanslagstecken " " som ett av regexens avslutande tecken utöver tilde-tecken "~". Se "AnvÀndarhandboken" för den nya syntaxen i lÄngform.

HÀr Àr nÄgra exempel pÄ aptitude(8)-operationer.

SÄ hÀr stÀdar jag upp status för automatisk/manuell installation av paket (efter att ha anvÀnt installationsprogram för paket som inte Àr aptitude etc.).

  1. Starta aptitude i interaktivt lÀge som root.

  2. Skriv "u", "U", "f" och "g" för att uppdatera och uppgradera paketlistan och paketen.

  3. Skriv "l" för att ange paketets visningsgrÀns som "~i(~R~i|~Rrecommends:~i)" och skriv "M" över "Installed Packages" som automatiskt installerat.

  4. Skriv "l" för att ange paketets visningsgrÀns som "~prequired|~pimportant|~pstandard|~E" och skriv "m" över "Installed Packages" som manuellt installerat.

  5. Skriv "l" för att ange grÀnsen för paketvisning som "~i!~M" och ta bort oanvÀnda paket genom att skriva "-" över vart och ett av dem efter att ha exponerat dem genom att skriva "[" över "Installerade paket".

  6. Skriv "l", för att ange paketets visningsgrÀns som "~i"; skriv sedan "m" över "Tasks", för att markera det paketet som manuellt installerat.

  7. Avsluta aptitude.

  8. Starta "apt-get -s autoremove|less" som root för att kontrollera vad som inte anvÀnds.

  9. Starta om aptitude i interaktivt lÀge och markera nödvÀndiga paket som "m".

  10. Starta om "apt-get -s autoremove|less" som root för att kontrollera att REMOVED endast innehÄller förvÀntade paket.

  11. Starta "apt-get autoremove|less" som root för att automatiskt ta bort oanvÀnda paket.

"m"-ÄtgÀrden över "Tasks" Àr valfri för att förhindra massuttag av paket i framtiden.

[Notera] Notera

NĂ€r du flyttar till en ny version bör du övervĂ€ga att utföra en ren installation av det nya systemet, Ă€ven om Debian kan uppgraderas enligt beskrivningen nedan. Detta ger dig en chans att ta bort skrĂ€p som samlats in och exponerar dig för den bĂ€sta kombinationen av de senaste paketen. Naturligtvis bör du göra en fullstĂ€ndig sĂ€kerhetskopiering av systemet till en sĂ€ker plats (se Avsnitt 10.2, ”Backup och Ă„terstĂ€llning”) innan du gör detta. Jag rekommenderar att du gör en dual boot-konfiguration med olika partitioner för att fĂ„ den smidigaste övergĂ„ngen.

Du kan göra en systemomfattande uppgradering till en nyare version genom att Àndra innehÄllet i kÀllistan som pekar pÄ en ny version och köra kommandot "apt update; apt dist-upgrade".

För att uppgradera frĂ„n stable till testing eller unstable under utgivningscykeln trixie-as-stable ersĂ€tter du "trixie" i kĂ€llistexemplet pĂ„ Avsnitt 2.1.5, ”Grunderna i Debian-arkivet” med "forky" eller "sid".

I verkligheten kan du stöta pÄ vissa komplikationer pÄ grund av vissa problem med paketövergÄngen, frÀmst pÄ grund av paketberoenden. Ju större skillnaden mellan uppgraderingarna Àr, desto större Àr sannolikheten att du fÄr större problem. För övergÄngen frÄn den gamla stable till den nya stable efter lanseringen kan du lÀsa dess nya Release Notes och följa den exakta proceduren som beskrivs i den för att minimera problem.

NÀr du bestÀmmer dig för att flytta frÄn stable till testing innan den formella releasen finns det inga Release Notes som kan hjÀlpa dig. Skillnaden mellan stable och testing kan ha blivit ganska stor efter den föregÄende stable releasen och gör uppgraderingssituationen komplicerad.

Du bör vidta försiktighetsÄtgÀrder för den fullstÀndiga uppgraderingen samtidigt som du samlar in den senaste informationen frÄn sÀndlistan och anvÀnder sunt förnuft.

  1. LĂ€s tidigare "Release Notes".

  2. SÀkerhetskopiera hela systemet (sÀrskilt data- och konfigurationsinformation).

  3. Ha startbart media till hands för trasig bootloader.

  4. Informera anvÀndarna om systemet i god tid.

  5. Registrera uppgraderingsaktivitet med skript(1).

  6. AnvÀnd "unmarkauto" pÄ nödvÀndiga paket, t.ex. "aptitude unmarkauto vim", för att förhindra borttagning.

  7. Minimera antalet installerade paket för att minska risken för paketkonflikter, t.ex. genom att ta bort paket för skrivbordsuppgifter.

  8. Ta bort filen "/etc/apt/preferences" (inaktivera apt-pinning).

  9. Försök att uppgradera stegvis: oldstable → stable → testing → unstable.

  10. Uppdatera kÀllistan sÄ att den endast pekar pÄ det nya arkivet och kör "aptitude update".

  11. Installera eventuellt nya kÀrnpaket först, t.ex. "aptitude install perl".

  12. Kör kommandot "apt-get -s dist-upgrade" för att bedöma effekten.

  13. Kör kommandot "apt-get dist-upgrade" till sist.

[Observera] Observera

Det Àr inte klokt att hoppa över en större Debian-utgÄva nÀr man uppgraderar mellan stable utgÄvor.

[Observera] Observera

I tidigare "Release Notes" har GCC, Linux Kernel, initrd-tools, Glibc, Perl, APT tool chain etc. krÀvt sÀrskild uppmÀrksamhet för systemomfattande uppgradering.

[Observera] Observera

"Release Notes" may not cover all possible cases. If you change low level configurations, your next upgrade may fail badly as "... segfault after upgrade ...".

För dagliga uppgradering i unstable, se Avsnitt 2.4.3, ”Skydd för paketproblem”.

HÀr Àr en lista över andra pakethanteringsoperationer för vilka aptitude Àr för hög nivÄ eller saknar nödvÀndiga funktioner.

Tabell 2.13. Lista över avancerade ÄtgÀrder för pakethantering

kommando ÄtgÀrd
COLUMNS=120 dpkg -l package_name_pattern lista status för ett installerat paket för felrapporten
dpkg -L paketnamn lista innehÄllet i ett installerat paket
dpkg -L paketnamn | egrep '/usr/share/man/man.*/.+' lista manpages för ett installerat paket
dpkg -S fil_namn_mönster lista installerade paket som har matchande filnamn
apt-file search filnamnsmönster lista paket i arkivet som har matchande filnamn
apt-file list package_name_pattern lista innehÄllet i matchande paket i arkivet
dpkg-reconfigure paketnamn konfigurera om det exakta paketet
dpkg-reconfigure -plow paketnamn konfigurera om det exakta paketet med den mest detaljerade frÄgan
configure-debian omkonfigurera paket frÄn helskÀrmsmenyn
dpkg --audit granskningssystem för delvis installerade paket
dpkg --configure -a konfigurera alla delvis installerade paket
apt-cache policy binary_package_name visa tillgÀnglig versions-, prioritets- och arkivinformation för ett binÀrt paket
apt-cache madison paketnamn visa tillgÀnglig version, arkivinformation för ett paket
apt-cache showsrc binÀr_paketnamn visa information om kÀllpaketet för ett binÀrt paket
apt-get build-dep paket_namn installera nödvÀndiga paket för att bygga paket
aptitude build-dep paket_namn installera nödvÀndiga paket för att bygga paket
apt-get source paketnamn ladda ner en kÀlla (frÄn standardarkivet)
dget URL för dsc-fil ladda ner ett kÀllpaket (frÄn annat arkiv)
dpkg-source -x package_name_version-debian.revision.dsc bygg ett kÀlltrÀd frÄn en uppsÀttning kÀllkodspaket ("*.orig.tar.gz" och "*.debian.tar.gz"/"*.diff.gz")
debuild binary bygga paket frÄn ett lokalt kÀlltrÀd
make-kpkg kernel_image bygga ett kernelpaket frÄn ett kernelkÀlltrÀd
make-kpkg --initrd kernel_image bygga ett kernelpaket frÄn ett kernelkÀlltrÀd med initramfs aktiverat
dpkg -i package_name_version-debian.revision_arch.deb installera ett lokalt paket till systemet
apt install /path/to/package_filename.deb installera ett lokalt paket i systemet och under tiden försöka lösa beroendet automatiskt
debi package_name_version-debian.revision_arch.dsc installera lokala paket till systemet
dpkg --get-selections '*' >selection.txt spara dpkg nivÄ paketval statusinformation
dpkg --set-selections <selection.txt set dpkg level information om status för val av paket
echo paketnamn hold | dpkg --set-selections stÀlla in paketvalsstatus pÄ dpkg-nivÄ för ett paket att hÄlla (motsvarande "aptitude hold package_name")

[Notera] Notera

För ett paket med multi-arch-funktionen kan du behöva ange arkitekturnamnet för vissa kommandon. AnvÀnd till exempel "dpkg -L libglib2.0-0:amd64" för att lista innehÄllet i paketet libglib2.0-0 för arkitekturen amd64.

[Observera] Observera

Paketverktyg pĂ„ lĂ€gre nivĂ„ som "dpkg -i ..." och "debi 
.." bör anvĂ€ndas med försiktighet av systemadministratören. De tar inte automatiskt hand om nödvĂ€ndiga paketberoenden. Dpkg:s kommandoradsalternativ "--force-all" och liknande (se dpkg(1)) Ă€r endast avsedda att anvĂ€ndas av experter. Att anvĂ€nda dem utan att fullt ut förstĂ„ deras effekter kan förstöra hela ditt system.

VÀnligen notera följande.

Installationen av debsums möjliggör verifiering av installerade paketfiler mot MD5sum-vĂ€rden i filen "/var/lib/dpkg/info/*.md5sums" med debsums(1). Se Avsnitt 10.3.5, ”MD5-summan” för information om hur MD5sum fungerar.

[Notera] Notera

Eftersom MD5sum-databasen kan manipuleras av en inkrÀktare Àr debsums(1) av begrÀnsad nytta som sÀkerhetsverktyg. Det Àr bara bra för att kontrollera lokala Àndringar av administratören eller skador pÄ grund av mediefel.

Även om det numera Ă€r lĂ€tt att söka i paketets metadata genom att besöka Debians webbplats https://packages.debian.org/, ska vi titta pĂ„ mer traditionella sĂ€tt.

Kommandona grep-dctrl(1), grep-status(1) och grep-available(1) kan anvÀndas för att söka i alla filer som har det allmÀnna formatet för en Debian-paketkontrollfil.

"dpkg -S file_name_pattern" kan anvÀndas för att söka efter paketnamn som innehÄller filer med matchande namn som installerats av dpkg. Men detta förbiser filer som skapats av underhÄllsskript.

Om du behöver göra en mer detaljerad sökning i dpkg:s metadata mÄste du köra kommandot "grep -e regex_pattern *" i katalogen "/var/lib/dpkg/info/". Detta gör att du kan söka pÄ ord som nÀmns i paketskript och installationsfrÄgetexter.

Om du vill söka efter paketberoenden rekursivt bör du anvÀnda apt-rdepends(8).

LÄt oss lÀra oss hur Debians pakethanteringssystem fungerar internt. Detta bör hjÀlpa dig att skapa din egen lösning pÄ vissa paketproblem.

[Tips] Tips

Filen "Release" pÄ högsta nivÄn anvÀnds för att signera arkivet under det sÀkra APT-systemet.

Varje svit i Debian-arkivet har en "Release"-fil pÄ högsta nivÄn, t.ex. "http://deb.debian.org/debian/dists/unstable/Release", enligt följande.

Origin: Debian
Label: Debian
Suite: unstable
Codename: sid
Date: Sat, 14 May 2011 08:20:50 UTC
Valid-Until: Sat, 21 May 2011 08:20:50 UTC
Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc
Components: main contrib non-free
Description: Debian x.y Unstable - Not Released
MD5Sum:
 bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz
 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz
 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz
...
[Notera] Notera

HĂ€r kan du lĂ€sa min motivering till att anvĂ€nda "suite" och "codename" i Avsnitt 2.1.5, ”Grunderna i Debian-arkivet”. "Distribution" anvĂ€nds nĂ€r man hĂ€nvisar till bĂ„de "suite" och "codename". Alla arkivnamn för "area" som erbjuds av arkivet listas under "Components".

Integriteten hos filen "Release" pÄ högsta nivÄn verifieras av en kryptografisk infrastruktur som kallas secure apt och som beskrivs i apt-secure(8).

  • Den kryptografiska signaturfilen "Release.gpg" skapas frĂ„n den autentiska toppnivĂ„filen "Release" och den hemliga Debian-arkivnyckeln.

  • De offentliga Debian-arkivnycklarna installeras lokalt med det senaste paketet debian-archive-keyring.

  • Det sĂ€kra APT-systemet verifierar automatiskt integriteten hos den nedladdade filen "Release" pĂ„ högsta nivĂ„n kryptografiskt med hjĂ€lp av filen "Release.gpg" och de lokalt installerade offentliga Debian-arkivnycklarna.

  • Integriteten hos alla "Packages"- och "Sources"-filer verifieras med hjĂ€lp av MD5sum-vĂ€rden i "Release"-filen pĂ„ högsta nivĂ„n. Integriteten för alla paketfiler verifieras genom att anvĂ€nda MD5sum-vĂ€rden i filerna "Packages" och "Sources". Se debsums(1) och Avsnitt 2.4.2, ”Verifiering av installerade paketfiler”.

  • Eftersom verifieringen av kryptografiska signaturer Ă€r en mycket mer processorkrĂ€vande process Ă€n berĂ€kningen av MD5sum-vĂ€rdet, ger anvĂ€ndningen av MD5sum-vĂ€rdet för varje paket samtidigt som kryptografisk signatur anvĂ€nds för "Release"-filen pĂ„ högsta nivĂ„ god sĂ€kerhet med hög prestanda (se Avsnitt 10.3, ”Infrastruktur för datasĂ€kerhet”).

Om posten i kÀllistan anger alternativet "signed-by" verifieras integriteten hos den nedladdade "Release"-filen pÄ högsta nivÄn med hjÀlp av den angivna offentliga nyckeln. Detta Àr anvÀndbart nÀr kÀllistan innehÄller icke-Debian-arkiv.

[Tips] Tips

AnvÀndningen av kommandot apt-key(8) för APT-nyckelhantering Àr förÄldrad.

Du kan ocksÄ manuellt verifiera integriteten hos filen "Release" med filen "Release.gpg" och den offentliga Debian-arkivnyckeln som finns pÄ ftp-master.debian.org med hjÀlp av gpg.

NĂ€r APT-verktyg, sĂ„som aptitude, apt-get, synaptic, apt-file, auto-apt, ... anvĂ€nds, mĂ„ste vi uppdatera de lokala kopiorna av metadata som innehĂ„ller Debian-arkivinformationen. Dessa lokala kopior har följande filnamn som motsvarar de angivna distributions-, omrĂ„des- och arkitekturnamnen i kĂ€llistan (se Avsnitt 2.1.5, ”Grunderna i Debian-arkivet”).

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release"

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release.gpg"

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_area_binary-architecture_Packages"

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_area_source_Sources"

  • "/var/cache/apt/apt-file/deb.debian.org_debian_dists_distribution_Contents-arkitektur.gz" (för apt-file)

De första 4 typerna av filer delas av alla relevanta APT-kommandon och uppdateras frÄn kommandoraden med "apt-get update" eller "aptitude update". Metadata för "Packages" uppdateras om "deb" anges i kÀllistan. Metadata för "Sources" uppdateras om "deb-src" anges i kÀllistan.

Metadata för "Packages" och "Sources" innehÄller "Filename:"-stanza som pekar pÄ filplatsen för binÀr- och kÀllkodspaketen. För nÀrvarande finns dessa paket under katalogtrÀdet "pool/" för att underlÀtta övergÄngen mellan olika utgÄvor.

Lokala kopior av metadata för "Packages" kan sökas interaktivt med hjÀlp av aptitude. Det specialiserade sökkommandot grep-dctrl(1) kan söka i lokala kopior av metadata för "Packages" och "Sources".

Den lokala kopian av metadata för "Contents-architecture" kan uppdateras med "apt-file update" och dess plats skiljer sig frÄn de andra 4. Se apt-file(1). ( Auto-Apt anvÀnder som standard en annan plats för den lokala kopian av "Contents-architecture.gz")

Debians paketfiler har sÀrskilda namnstrukturer.


[Tips] Tips

HÀr beskrivs endast de grundlÀggande formaten för kÀllkodspaket. Se mer pÄ dpkg-source(1).


[Notera] Notera

Du kan kontrollera paketets versionsordning med dpkg(1), t.ex. "dpkg --compare-versions 7.0 gt 7.~pre1 ; echo $?" .

[Notera] Notera

Debian-installer (d-i) anvÀnder udeb som filÀndelse för sitt binÀra paket i stÀllet för vanliga deb. Ett udeb-paket Àr ett nedbantat deb-paket som tar bort en del ovÀsentligt innehÄll, t.ex. dokumentation, för att spara utrymme och samtidigt lÀtta pÄ kraven i paketpolicyn. BÄde deb- och udeb-paketen delar samma paketstruktur. "u" stÄr för micro.

dpkg(1) Àr verktyget pÄ lÀgsta nivÄ för Debians pakethantering. Det Àr mycket kraftfullt och mÄste anvÀndas med försiktighet.

Under installationen av paketet med namnet "paketets_namn", bearbetar dpkg det i följande ordning.

  1. Packa upp deb-filen (motsvarande "ar -x")

  2. Kör"package_name.preinst" med debconf(1)

  3. Installera paketets innehÄll i systemet ("tar -x"-motsvarighet)

  4. Kör"package_name.postinst" med debconf(1)

Debconf-systemet tillhandahÄller standardiserad anvÀndarinteraktion med I18N- och L10N-stöd (Kapitel 8, I18N och L10N).

Tabell 2.17. De anmÀrkningsvÀrda filer som skapats av dpkg

fil beskrivning av innehÄll
/var/lib/dpkg/info/package_name.conffiles lista över konfigurationsfiler. (kan Àndras av anvÀndaren)
/var/lib/dpkg/info/package_name.list lista över filer och kataloger som installerats av paketet
/var/lib/dpkg/info/package_name.md5sums lista över MD5-hashvÀrden för filer som installerats av paketet
/var/lib/dpkg/info/package_name.preinst paketskript som ska köras innan paketet installeras
/var/lib/dpkg/info/package_name.postinst paketskript som ska köras efter installationen av paketet
/var/lib/dpkg/info/package_name.prerm paketskript som ska köras innan paketet tas bort
/var/lib/dpkg/info/package_name.postrm paketskript som ska köras efter att paketet har tagits bort
/var/lib/dpkg/info/package_name.config paket skript för debconf system
/var/lib/dpkg/alternatives/package_name den alternativa information som anvÀnds av kommandot update-alternatives
/var/lib/dpkg/available information om tillgÀnglighet för alla paket
/var/lib/dpkg/diversions den avledningsinformation som anvÀnds av dpkg(1) och som stÀlls in av dpkg-divert(8)
/var/lib/dpkg/statoverride information om stat-överstyrning som anvÀnds av dpkg(1) och stÀlls in av dpkg-statoverride(8)
/var/lib/dpkg/status statusinformation för alla paket
/var/lib/dpkg/status-old den första generationens sÀkerhetskopia av filen "var/lib/dpkg/status"
/var/backups/dpkg.status* andra generationens sÀkerhetskopia och Àldre versioner av filen "var/lib/dpkg/status"

Filen "status" anvÀnds ocksÄ av verktyg som dpkg(1), "dselect update" och "apt-get -u dselect-upgrade".

Det specialiserade sökkommandot grep-dctrl(1) kan söka i de lokala kopiorna av metadata för "status" och "available".

[Tips] Tips

I debian-installer-miljön anvÀnds kommandot udpkg för att öppna udeb-paket. Kommandot udpkg Àr en nedbantad version av kommandot dpkg.

NÀr testing eller unstable system körs förvÀntas administratören ÄterhÀmta sig frÄn en trasig pakethanteringssituation.

[Observera] Observera

Vissa metoder som beskrivs hÀr Àr högriskÄtgÀrder. Du har blivit varnad!

Cachningsfel i paketdata orsakar spÀnnande fel, t.ex. "GPG-fel: ... ogiltigt: BADSIG ..." med APT.

Du bör ta bort alla cachade data med "sudo rm -rf /var/lib/apt/* " och försöka igen. (Om apt-cacher-ng anvÀnds bör du Àven köra "sudo rm -rf /var/cache/apt-cacher-ng/* ")

Since dpkg is very low level package tool, it can function without network connection.

Let's assume foo package was broken and needs to be fixed.

Du kan fortfarande hitta cachade kopior av Àldre buggfria versioner av foo-paketet i paketets cachekatalog: "/var/cache/apt/archives/". (Om inte, kan du hÀmta den frÄn arkivet pÄ https://snapshot.debian.org/ eller kopiera den frÄn paketcachen pÄ en fungerande maskin)

Om du kan starta upp systemet kan du installera det med följande kommando.

# dpkg -i /path/to/foo_old_version_arch.deb

Om ett försök att installera ett paket pÄ det hÀr sÀttet misslyckas pÄ grund av vissa beroendeövertrÀdelser och du verkligen mÄste göra detta som en sista utvÀg, kan du ÄsidosÀtta beroendet med hjÀlp av dpkg:s "--ignore-depends", "--force-depends" och andra alternativ. Om du gör detta mÄste du anstrÀnga dig ordentligt för att ÄterstÀlla korrekt beroende senare. Se dpkg(8) för mer information.

[Notera] Notera

Om ditt system Ă€r allvarligt trasigt bör du göra en fullstĂ€ndig sĂ€kerhetskopia av systemet pĂ„ en sĂ€ker plats (se Avsnitt 10.2, ”Backup och Ă„terstĂ€llning”) och utföra en ren installation. Detta Ă€r mindre tidskrĂ€vande och ger bĂ€ttre resultat i slutĂ€ndan.

[Tips] Tips

Om systemhaveriet Ă€r mindre kan man alternativt nedgradera hela systemet som i Avsnitt 2.7.11, ”Akut nedgradering” genom att anvĂ€nda APT-systemet pĂ„ högre nivĂ„.

Pakethanteringssystem pĂ„ arkivnivĂ„, t.ex. aptitude(8) eller apt-get(1), försöker inte ens installera paket med överlappande filer med hjĂ€lp av paketberoenden (se Avsnitt 2.1.7, ”Beroenden av paket”).

Fel frĂ„n paketunderhĂ„llaren eller distribution av inkonsekvent blandade arkivkĂ€llor (se Avsnitt 2.7.6, ”Paket frĂ„n blandade arkivkĂ€llor utan apt-pinning”) av systemadministratören kan skapa en situation med felaktigt definierade paketberoenden. NĂ€r du installerar ett paket med överlappande filer med aptitude(8) eller apt-get(1) i en sĂ„dan situation, ser dpkg(1) som packar upp paketet till att returnera fel till det anropande programmet utan att skriva över befintliga filer.

[Observera] Observera

AnvÀndningen av tredjepartspaket medför betydande systemrisker via underhÄllsskript som körs med root-rÀttigheter och kan göra vad som helst med ditt system. Kommandot dpkg(1) skyddar endast mot överskrivning vid uppackning.

Du kan komma runt en sÄdan trasig installation genom att ta bort det gamla felaktiga paketet, gamla paketetförst.

$ sudo dpkg -P old-package

För enkelhetens skull presenteras exemplen pÄ kÀllistan i det hÀr avsnittet som "/etc/apt/sources.list" i enradig stil efter utgÄvan trixie.

Paketet apt levereras med ett eget cron-skript "/etc/cron.daily/apt" för att stödja automatisk nedladdning av paket. Detta skript kan förbÀttras för att utföra automatisk uppgradering av paket genom att installera paketet unattended-upgrades. Dessa kan anpassas med parametrar i "/etc/apt/apt.conf.d/02backup" och "/etc/apt/apt.conf.d/50unattended-upgrades" som beskrivs i "/usr/share/doc/unattended-upgrades/README".

Paketet unattended-upgrades Àr huvudsakligen avsett för sÀkerhetsuppgraderingar av stable system. Om risken för att ett befintligt stable system bryts ned av den automatiska uppgraderingen Àr mindre Àn risken för att systemet bryts ned av en inkrÀktare som anvÀnder ett sÀkerhetshÄl som har tÀppts till av sÀkerhetsuppdateringen, bör du övervÀga att anvÀnda denna automatiska uppgradering med konfigurationsparametrar enligt följande.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";

Om du kör ett testing eller unstable system vill du inte anvĂ€nda den automatiska uppgraderingen eftersom systemet dĂ„ sĂ€kert gĂ„r sönder nĂ„gon dag. Även i sĂ„dana testing eller unstable fall kan du Ă€ndĂ„ vilja hĂ€mta paket i förvĂ€g för att spara tid för den interaktiva uppgraderingen med konfigurationsparametrar som följande.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "0";

Det finns stable-updates ( "trixie-updates" under utgivningscykeln trixie-as-stable ) och backports.debian.org-arkiv som tillhandahÄller uppgraderingspaket för stable.

För att kunna anvÀnda dessa arkiv mÄste du lista alla nödvÀndiga arkiv i filen "/etc/apt/sources.list" enligt följande.

deb http://deb.debian.org/debian/ trixie main non-free-firmware contrib non-free
deb http://security.debian.org/debian-security trixie-security main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ trixie-updates main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ trixie-backports main non-free-firmware contrib non-free

Det finns inget behov av att ange Pin-Priority-vĂ€rdet explicit i filen "/etc/apt/preferences". NĂ€r nyare paket blir tillgĂ€ngliga ger standardkonfigurationen de flesta rimliga uppgraderingar (se Avsnitt 2.5.3, ”"Release"-filer pĂ„ arkivnivĂ„â€).

  • Alla installerade Ă€ldre paket uppgraderas till nyare frĂ„n trixie-updates.

  • Endast manuellt installerade Ă€ldre paket frĂ„n trixie-backports uppgraderas till nyare paket frĂ„n trixie-backports.

NÀr du vill installera ett paket med namnet "paket-namn" med dess beroende frÄn trixie-backports arkiv manuellt, anvÀnder du följande kommando medan du byter mÄlversion med alternativet "-t".

$ sudo apt-get install -t trixie-backports package-name
[Varning] Varning

Installera inte för mĂ„nga paket frĂ„n backports.debian.org-arkiven. Det kan orsaka komplikationer med paketberoenden. Se Avsnitt 2.1.11, ”Hur man hanterar motstridiga krav” för alternativa lösningar.

[Observera] Observera

Installation av paket frÄn blandade arkivkÀllor stöds inte av den officiella Debian-distributionen, med undantag för officiellt stödda sÀrskilda kombinationer av arkiv, t.ex. stable med sÀkerhetsuppdateringar och stable-updates.

HÀr Àr ett exempel pÄ ÄtgÀrder för att inkludera specifika paket med nyare uppströmsversioner som finns i unstable nÀr du spÄrar testing för ett enstaka tillfÀlle.

  1. Ändra filen "/etc/apt/sources.list" tillfĂ€lligt till en enda "unstable"-post.

  2. Kör "aptitude update".

  3. Kör "aptitude install paket-namn".

  4. ÅterstĂ€ll den ursprungliga filen "/etc/apt/sources.list" för testing.

  5. Kör "aptitude update".

Du skapar inte filen "/etc/apt/preferences" och behöver inte heller oroa dig för apt-pinning med detta manuella tillvÀgagÄngssÀtt. Men detta Àr mycket besvÀrligt.

[Observera] Observera

NÀr du anvÀnder blandade arkivkÀllor mÄste du sjÀlv se till att paketen Àr kompatibla, eftersom Debian inte garanterar det. Om paket inte Àr kompatibla kan det leda till att systemet inte fungerar. Du mÄste kunna bedöma dessa tekniska krav. AnvÀndningen av blandade kÀllor av slumpmÀssiga arkiv Àr helt valfri och det Àr inget jag uppmuntrar dig att anvÀnda.

AllmÀnna regler för installation av paket frÄn olika arkiv Àr följande.

[Notera] Notera

För att göra ett paket sÀkrare att installera kan vissa kommersiella, icke-fria binÀra programpaket innehÄlla helt statiskt lÀnkade bibliotek. Du bör ÀndÄ kontrollera ABI-kompatibilitetsproblem etc. för dem.

[Notera] Notera

Förutom för att undvika trasiga paket pĂ„ kort sikt, Ă€r det i allmĂ€nhet en dĂ„lig idĂ© att installera binĂ€ra paket frĂ„n icke-Debian-arkiv. Du bör söka efter alla tillgĂ€ngliga alternativa sĂ€krare tekniska lösningar som Ă€r kompatibla med ditt nuvarande Debian-system (se Avsnitt 2.1.11, ”Hur man hanterar motstridiga krav”).

[Varning] Varning

Om en nybörjare anvÀnder apt-pinning-tekniken kan det leda till stora problem. Du mÄste undvika att anvÀnda den hÀr tekniken utom nÀr du absolut behöver den.

Utan filen "/etc/apt/preferences" vÀljer APT-systemet den senast tillgÀngliga versionen som kandidatversion med hjÀlp av versionsstrÀngen. Detta Àr det normala tillstÄndet och den mest rekommenderade anvÀndningen av APT-systemet. Alla officiellt stödda kombinationer av arkiv krÀver inte filen "/etc/apt/preferences" eftersom vissa arkiv som inte bör anvÀndas som automatisk kÀlla för uppgraderingar markeras som NotAutomatic och hanteras pÄ rÀtt sÀtt.

[Tips] Tips

JÀmförelseregeln för versionsstrÀngar kan verifieras med t.ex. "dpkg --compare-versions ver1.1 gt ver1.1~1; echo $?" (se dpkg(1)).

NĂ€r du regelbundet installerar paket frĂ„n blandade arkivkĂ€llor (se Avsnitt 2.7.6, ”Paket frĂ„n blandade arkivkĂ€llor utan apt-pinning”) kan du automatisera dessa komplicerade operationer genom att skapa filen "/etc/apt/preferences" med rĂ€tt poster och justera paketvalsregeln för kandidatversionen enligt beskrivningen i apt_preferences(5). Detta kallas apt-pinning.

NÀr du anvÀnder apt-pinning mÄste du sjÀlv se till att paketen Àr kompatibla eftersom Debian inte garanterar det. Apt-pinning Àr en helt frivillig ÄtgÀrd och jag uppmuntrar inte till att anvÀnda den.

Release-filer pĂ„ arkivnivĂ„ (se Avsnitt 2.5.3, ”"Release"-filer pĂ„ arkivnivĂ„â€) anvĂ€nds för regeln i apt_preferences(5). SĂ„ledes fungerar apt-pinning endast med "suite"-namn för normala Debian-arkiv och Debian-arkiv för sĂ€kerhet. (Detta skiljer sig frĂ„n Ubuntu-arkiv.) Du kan t.ex. göra "Pin: release a=unstable" men inte "Pin: release a=sid" i filen "/etc/apt/preferences".

NÀr du anvÀnder icke-Debian-arkiv som en del av apt-pinning bör du kontrollera vad de Àr avsedda för och Àven kontrollera deras trovÀrdighet. Ubuntu och Debian Àr till exempel inte avsedda att blandas.

[Notera] Notera

Även om du inte skapar filen "/etc/apt/preferences" kan du utföra ganska komplexa systemoperationer (se Avsnitt 2.6.3, ”RĂ€ddning med kommandot dpkg” och Avsnitt 2.7.6, ”Paket frĂ„n blandade arkivkĂ€llor utan apt-pinning”) utan apt-pinning.

HÀr följer en förenklad förklaring av apt-pinning-tekniken.

APT-systemet vĂ€ljer det uppgraderingspaket med högst Pin-prioritet frĂ„n tillgĂ€ngliga paketkĂ€llor som definieras i filen "/etc/apt/sources.list" som kandidatversionspaket. Om paketets Pin-Priority Ă€r större Ă€n 1000, tas denna versionsbegrĂ€nsning för uppgradering bort för att möjliggöra nedgradering (se Avsnitt 2.7.11, ”Akut nedgradering”).

Pin-Priority-vÀrdet för varje paket definieras av "Pin-Priority"-poster i filen "/etc/apt/preferences" eller anvÀnder dess standardvÀrde.


MÄlarkivet för utgÄvan kan anges med kommandoradsalternativet,t.ex. "apt-get install -t testing some-package"

Arkivet NotAutomatic and ButAutomaticUpgrades skapas genom att arkivservern har en Release-fil pĂ„ arkivnivĂ„ (se Avsnitt 2.5.3, ”"Release"-filer pĂ„ arkivnivĂ„â€) som innehĂ„ller bĂ„de "NotAutomatic: yes" och "ButAutomaticUpgrades: yes". NotAutomatic-arkivet skapas genom att arkivservern har en Release-fil pĂ„ arkivnivĂ„ som endast innehĂ„ller "NotAutomatic:yes".

Situationen med apt-pinning av paket frÄn flera arkivkÀllor visas av "apt-cache policy package".

  • En rad som börjar med "Package pin:" listar paketversionen av pin om associationen bara med paket Ă€r definierad, t.ex. "Package pin: 0.190".

  • Ingen rad med "PaketnĂ„l:" finns om ingen association bara med paketet Ă€r definierad.

  • Pin-Priority-vĂ€rdet som bara Ă€r associerat med paketet anges till höger om alla versionsstrĂ€ngar, t.ex. "0.181 700".

  • "0" anges pĂ„ höger sida av alla versionsstrĂ€ngar om ingen koppling till paketet har definierats, t.ex. "0.181 0".

  • Arkivens Pin-Priority-vĂ€rden (definierade som "Package: *" i filen "/etc/apt/preferences") listas till vĂ€nster om alla arkivsökvĂ€gar, t.ex. "100 http://deb.debian.org/debian/ trixie-backports/main Packages".

[Varning] Varning

Om en nybörjare anvÀnder apt-pinning-tekniken kan det leda till stora problem. Du mÄste undvika att anvÀnda den hÀr tekniken utom nÀr du absolut behöver den.

HÀr Àr ett exempel pÄ apt-pinning-teknik för att inkludera specifika nyare uppströmsversionspaket som finns i unstable regelbundet uppgraderade nÀr man följer testing. Du listar alla nödvÀndiga arkiv i filen "/etc/apt/sources.list" enligt följande.

deb http://deb.debian.org/debian/ testing main contrib non-free
deb http://deb.debian.org/debian/ unstable main contrib non-free
deb http://security.debian.org/debian-security testing-security main contrib

StÀll in filen "/etc/apt/preferences" enligt följande.

Package: *
Pin: release a=unstable
Pin-Priority: 100

NÀr du vill installera ett paket med namnet "paket-namn" med dess beroenden frÄn unstable-arkivet under denna konfiguration, ger du följande kommando som byter mÄlversion med alternativet "-t" (Pin-prioritet för unstable blir 990).

$ sudo apt-get install -t unstable package-name

Med den hÀr konfigurationen uppgraderas paket som installerades frÄn testarkivet med det aktuella testarkivet och paket som installerades frÄn det unstable arkivet med det aktuella unstable arkivet genom att köra "apt-get upgrade" och "apt-getdist-upgrade" (eller "aptitude safe-upgrade" och "aptitude full-upgrade").

[Observera] Observera

Var försiktig sÄ att du inte tar bort "testing"-posten frÄn filen "/etc/apt/sources.list". Utan "testing"-posten i den uppgraderar APT-systemet paket med nyare unstable arkiv.

[Tips] Tips

Jag brukar redigera filen "/etc/apt/sources.list" för att kommentera bort arkivposten "unstable" direkt efter ovanstÄende operation. Detta undviker en lÄngsam uppdateringsprocess pÄ grund av för mÄnga poster i filen "/etc/apt/sources.list", Àven om det förhindrar uppgradering av paket som installerades frÄn ett unstable-arkiv med hjÀlp av det aktuella unstable-arkivet.

[Tips] Tips

Om "Pin-Priority: 1" anvÀnds i stÀllet för "Pin-Priority: 100" i filen "/etc/apt/preferences", uppgraderas inte redan installerade paket med Pin-Priority-vÀrdet 100 av unstable archive Àven om posten "testing" i filen "/etc/apt/sources.list" tas bort.

Om du vill spÄra vissa paket i unstable automatiskt utan inledande installation av "-t unstable", mÄste du skapa filen "/etc/apt/preferences" och uttryckligen lista alla dessa paket högst upp i den enligt följande.

Package: package-1
Pin: release a=unstable
Pin-Priority: 700

Package: package-2
Pin: release a=unstable
Pin-Priority: 700

Dessa anger Pin-Priority-vÀrdet för varje specifikt paket. För att till exempel spÄra den senaste unstable versionen av denna "Debian Reference" pÄ engelska, bör du ha följande poster i filen "/etc/apt/preferences".

Package: debian-reference-en
Pin: release a=unstable
Pin-Priority: 700

Package: debian-reference-common
Pin: release a=unstable
Pin-Priority: 700
[Tips] Tips

Denna apt-pinning-teknik Àr giltig Àven nÀr du spÄrar stable arkiv. Dokumentationspaket har alltid varit sÀkra att installera frÄn unstable arkiv enligt min erfarenhet hittills.

[Varning] Varning

Om en nybörjare anvÀnder apt-pinning-tekniken kan det leda till stora problem. Du mÄste undvika att anvÀnda den hÀr tekniken utom nÀr du absolut behöver den.

[Observera] Observera

Nedgradering stöds inte officiellt av Debian, vilket Àr meningen. Det bör endast göras som en del av en nödÄterstÀllningsprocess. Trots detta Àr det kÀnt att det fungerar bra vid mÄnga incidenter. För kritiska system bör du sÀkerhetskopiera alla viktiga data pÄ systemet efter ÄterstÀllningen och installera om det nya systemet frÄn grunden.

Du kan ha turen att kunna nedgradera frĂ„n ett nyare arkiv till ett Ă€ldre arkiv för att Ă„terstĂ€lla en trasig systemuppgradering genom att manipulera kandidatversionen (se Avsnitt 2.7.7, ”Justera kandidatversionen med apt-pinning”). Detta Ă€r ett lata alternativ till trĂ„kiga Ă„tgĂ€rder med mĂ„nga "dpkg -i broken-package_old-version.deb"-kommandon (se Avsnitt 2.6.3, ”RĂ€ddning med kommandot dpkg”).

Sök rader i filen "/etc/apt/sources.list" som spÄrar unstable som följande.

deb http://deb.debian.org/debian/ sid main contrib non-free

ErsÀtt det med följande för att spÄra testing.

deb http://deb.debian.org/debian/ forky main contrib non-free

StÀll in filen "/etc/apt/preferences" enligt följande.

Package: *
Pin: release a=testing
Pin-Priority: 1010

Kör "apt-get update; apt-get dist-upgrade" för att tvinga fram nedgradering av paket i hela systemet.

Ta bort den hÀr speciella filen "/etc/apt/preferences" efter denna akuta nedgradering.

[Tips] Tips

Det Àr en bra idé att ta bort (inte rensa!) sÄ mÄnga paket som möjligt för att minimera beroendeproblem. Du kan behöva ta bort och installera vissa paket manuellt för att fÄ systemet nedgraderat. LinuxkÀrnan, bootloader, udev, PAM, APT och nÀtverksrelaterade paket och deras konfigurationsfiler krÀver sÀrskild uppmÀrksamhet.