Provided by: dpkg_1.16.1.2ubuntu7_i386 bug

NAMN

       dpkg-maintscript-helper   -   går   runt   kända  dpkg-begränsningar  i
       paketskript

SYNOPS

       dpkg-maintscript-helper kommando [flagga...] -- maint-script-flagga...

KOMMANDON OCH PARAMETRAR

       rm_conffile konffil [senasteversion [paket]]

       mv_conffile gammalkonffil nykonffil [senasteverison [paket]]

BESKRIVNING

       Programmet skrevs för att köras i paketskript för  att  utföra  en  del
       åtgärder  som  dpkg (ännu) inte själv kan hantera, antingen på grund av
       designval eller på grund av nuvarande begränsningar.

       Många  av  dessa  åtgärder  kräver  samordnade  åtgärder   från   flera
       paketskript  (preint, postinst, prerm, postrm). För att undvika misstag
       räcker det att lägga in ett  och  samma  anrop  i  alla  skript,  varpå
       programmet   anpassar   sitt   beteende   beroende   på  miljövariabeln
       DPKG_MAINTSCRIPT_NAME och på paketskriptets parametrar, vilka du  måste
       vidaresända efter dubbla bindestreck.

KONFFIL-RELATERADE ÅTGÄRDER

       När  ett  paket  uppgraders kommer dpkg inte att automatiskt ta bort en
       konffil (en konfigurationsfil för vilken dpkg skall behålla användarens
       ändringar)  om  den  inte  finns  i  den  nya  versionen. Det finns två
       grundläggande skäl till detta; den  första  är  att  konffilen  kan  ha
       tappats  av  misstag  och  nästa  version kan komma att återställa den,
       varpå användaren inte vill tappa sina ändringar. Den andra är  att  för
       att  göra  det  möjligt  för  paket  att  gå över från en dpkg-hanterad
       konffil till en fil som hanteras av paketets skript,  vanligtvis  genom
       ett verktyg som debconf eller ucf.

       Det  innebär  att,  om  paketet  menar  att  byta namn eller ta bort en
       konfigurationsfil,  så  måste  det  göra  så  explicit,  och   då   kan
       dpkg-maintscript-helper   användas  för  att  implementera  en  elegant
       borttagning och flyttning av konffiler i paketscripten.

   TA BORT EN KONFFIL
       Om en konffil helt tas bort bör den tas bort  från  disk,  såvida  inte
       användaren  har  modifierat  den.  Om det finns lokala ändringar bör de
       bibehållas. Om paketuppgraderingen avbryts bör inte konffilen som  just
       blev föråldras försvinna.

       Allt  detta  implementeras  genom  att  lägga  in  följande  skalkod  i
       paketskripten preinst, postinst och postrm:

           dpkg-maintscript-helper rm_conffile \
               konffil senasteversion paket -- "$@"

       konffil är filnamnet på den konffil som skall tas bort.  senasteversion
       är  den  senaste versionen av paketet som innehöll konffilen (eller den
       senaste versionen av paketet som inte tog  hand  om  att  ta  bort  den
       överblivna  konffilen  om  detta  inte  omedelbart implementerades). Om
       senasteversion är tomt eller inte angivits  försöks  operationen  varje
       gång  paketet  uppgraderas.  paket  är  paketnamnet,  det är frivilligt
       eftersom det faller tillbaka  på  $DPKG_MAINSTCRIPT_PACKAGE  (variabeln
       sätts  av  dpkg till namnet på det paket som behandlas). Alla paramerar
       till paketskriptet måste vidaresändas till programmet efter "--".

       Aktuell implementation: i preinst kontrolleras  om  konffilen  ändrades
       och  i så fall byts namnet på den till antingen konffil.dpkg-remove (om
       inte modifierad) eller  till  konffil.dpkg-backup  (om  modifierad).  I
       postinst  byts namnet på den sistnämnda filen till konffil.dpkg-bak och
       behålls som referens om den innehåller ändringar av  användaren,  medan
       den tidigare kommer att tas bort. Om paketuppgraderingen avbryts kommer
       postrm att ominstallera den  ursprungliga  konffilen.  Vid  borttagning
       kommer  postrm även att ta bort .dpkg-bak-filen som behållits fram till
       dess.

   BYTA NAMN  EN KONFFIL
       Om en konffil flyttas från en plats till en annan måste du se till  att
       du  flyttar  med  eventuella  ändringar gjorda av användaren. Detta kan
       först verka vara en enkel ändring av preinst-skriptet, men  det  kommer
       leda  till att användaren ombeds att godkänna ändringar i konffilen för
       dpkg, även om denne inte är ansvarig för dem.

       En elegant namnändring kan implementeras genom att  lägga  in  följande
       skalkod i paketskripten preinst, postinst och postrm:

           dpkg-maintscript-helper mv_conffile \
               gammalkonffil nykonffil senasteversion paket -- "$@"

       gammalkonffil  och  nykonffil  är det gamla och nya namnet på konffilen
       vars namn skall bytas.  senasteversion  är  den  senaste  versionen  av
       paketet  som  innehöll konffilen med dess gamla namn. Om senasteversion
       är tom eller inte har angivits kommer operationen  att  försökas  varje
       gång  paketet uppgraderas (observera: det är säkrare att ange versionen
       och därmed endast utföra operationen en gång).  paket  är  paketnamnet,
       det     är    frivilligt    eftersom    det    faller    tillbaka    på
       $DPKG_MAINSTCRIPT_PACKAGE (variabeln sätts av dpkg till namnet  på  det
       paket   som   behandlas).   Alla  paramerar  till  paketskriptet  måste
       vidaresändas till programmet efter "--".

       Aktuell  implementation:  I  preinst  kontrolleras  om  konffilen   har
       ändrats, om ja lämnas den kvar på plats, annars byts namnet på den till
       gammalkonffil.dpkg-remove.  Vid   konfigurering   tar   postinst   bort
       gammalkonffil.dpkg-remove   och   byter   namn  på  gammalkonffil  till
       nykonffil om gammalkonffil fortfarande finns. Vid avbruten uppgradering
       eller     installation    byter    postrm    tillbaka    namnet    från
       gammalkonffil.dpkg-remove till gammalkonffil om så behövs.

INTEGRERA I PAKET

       Givet att dpkg-maintscript-helper används i preinst  så  innebär  detta
       villkorslöst  att ett förhandsberoende ("pre-dependency") krävs för att
       försäkra att den nödvändiga versionen av dpkg redan  har  packats  upp.
       Den  version  som  krävs  beror  på  vilket  kommando  som används, för
       rm_conffile och mv_conffile är det 1.15.7.2:

           Pre-Depends: dpkg (>= 1.15.7.2)

       Men i många fall är operationen som utförs av programmet inte  kritiskt
       för  paketet,  och istället för att använda ett förhandsberoende kan vi
       anropa programmet endast om vi vet att det nödvändiga  kommandot  stöds
       av den nu installerade dpkg:

           if dpkg-maintscript-helper supports kommando; then
               dpkg-maintscript-helper kommando ...
           fi

FÖRFATTARE

       Upphovsrättsskyddat © 2010 Raphaël Hertzog
       Upphovsrättsskyddat © 2008 Joey Hess
       Upphovsrättsskyddat © 2007 Guillem Jover
       Upphovsrättsskyddat © 2005 Scott James Remnant

       Detta är fri programvara; se GNU General Public License version 2 eller
       senare för kopieringsvillkor. Det finns INGEN GARANTI.

ÖVERSÄTTNING

       Peter Krefting och Daniel Nylander.