Provided by: dpkg_1.19.0.5ubuntu2.4_amd64 bug

NAAM

       dpkg-maintscript-helper - omzeilt in de scripts van de onderhouder gekende beperkingen van
       dpkg

OVERZICHT

       dpkg-maintscript-helper commando [parameter...] -- onderhouderscriptparameter...

COMMANDO'S EN PARAMETERS

       supports commando

       rm_conffile configuratiebestand [vorige-versie [pakket]]

       mv_conffile oud-configuratiebestand nieuw-configuratiebestand [vorige-versie [pakket]]

       symlink_to_dir padnaam oud-doel [vorige-versie [pakket]]

       dir_to_symlink padnaam nieuw-doel [vorige-versie [pakket]]

BESCHRIJVING

       Dit programma is ontwikkeld om uitgevoerd te worden binnenin onderhouderscripts om sommige
       taken  te  verrichten die dpkg (nog) niet alleen kan uitvoeren, ofwel omwille van gemaakte
       keuzes inzake design ofwel ten gevolge van actuele beperkingen.

       Veel van deze taken vereisen gecoördineerde  actie  van  verschillende  onderhouderscripts
       (preinst, postinst, prerm, postrm). Om fouten te vermijden moet gewoon dezelfde aanroep in
       alle scripts geplaatst worden en het programma zal zijn gedrag automatisch aan  passen  op
       basis   van   de   omgevingsvariabele   DPKG_MAINTSCRIPT_NAME  en  de  argumenten  van  de
       onderhouderscripts die na een dubbel koppelteken opgegeven moeten worden.

GEMEENSCHAPPELIJKE PARAMETERS

       vorige-versie
              Definieert de laatste versie van het pakket waarvan  de  opwaardering  de  operatie
              moet  uitlokken.  Het is belangrijk om vorige-versie correct te berekenen, zodat de
              operaties correct uitgevoerd worden zelfs in het geval de gebruiker het pakket  met
              een  lokaal versienummer herbouwde. Indien vorige-versie leeg of weggelaten is, dan
              wordt geprobeerd om bij elke opwaardering de operatie uit te voeren  (merk  op  dat
              het  veiliger is om de versie op te geven zodat slechts eenmaal geprobeerd wordt om
              de operatie uit te voeren).

              Indien sinds verschillende versies geen configuratiebestand meer  meegeleverd  werd
              en u nu de scripts van de pakketonderhouder aan het wijzigen bent om het verouderde
              bestand op te ruimen, moet vorige-versie ingesteld worden  op  de  versie  van  het
              pakket  dat u nu aan het voorbereiden bent, niet op de eerste versie van het pakket
              zonder het configuratiebestand. Dit  geldt  op  dezelfde  wijze  voor  alle  andere
              acties.

              Voor een configuratiebestand dat in de versie 2.0-1 van een pakket verwijderd werd,
              moet vorige-versie ingesteld worden  op  2.0-1~.  Dit  heeft  tot  effect  dat  het
              configuratiebestand verwijderd wordt, zelfs als de gebruiker de vorige versie 1.0-1
              herbouwde als 1.0-1lokaal1. En in het geval waarin in een pakket een pad eerst  een
              symbolische  koppeling  was  (bij  versie  1.0-1) en later een map werd (bij versie
              2.0-1), maar u pas in versie 3.0-1  de  eigenlijke  omschakeling  doorvoert  in  de
              scripts van de pakketonderhouder, moet vorige-versie ingesteld worden op 3.0-1~.

       pakket The  package  name  owning the pathname(s).  When the package is “Multi-Arch: same”
              this parameter must include the architecture qualifier,  otherwise  it  should  not
              usually  include  the architecture qualifier (as it would disallow cross-grades, or
              switching from being architecture specific to architecture all or vice versa).   If
              the   parameter   is   empty   or   omitted,   the   DPKG_MAINTSCRIPT_PACKAGE   and
              DPKG_MAINTSCRIPT_ARCH environment variables  (as  set  by  dpkg  when  running  the
              maintainer scripts) will be used to generate an arch-qualified package name.

       --     Alle  parameters  van de scripts van de pakketonderhouder moeten doorgegeven worden
              aan het programma na --.

TAKEN IN VERBAND MET CONFIGURATIEBESTANDEN

       Bij  het  opwaarderen  van  een  pakket   zal   dpkg   niet   automatisch   een   conffile
       (configuratiebestand)  (conffile  =  een configuratiebestand waarin dpkg door de gebruiker
       gemaakte aanpassingen moet behouden) verwijderen indien  dat  niet  in  de  nieuwe  versie
       voorkomt. Daarvoor zijn twee belangrijke redenen. De eerste is dat het configuratiebestand
       per ongeluk weggevallen kan zijn en dat de volgende versie dit zou  kunnen  herstellen  en
       dat  gebruikers  hun  aanpassingen  niet  graag verloren zouden zien gaan. De tweede is om
       pakketten de mogelijkheid te bieden  om  over  te  gaan  van  een  door  dpkg  onderhouden
       configuratiebestand  naar  een  bestand  dat  onderhouden  wordt  door  de  scripts van de
       pakketonderhouder, meestal met behulp van gereedschap zoals debconf of ucf.

       Dit  houdt  in  dat   indien   een   pakket   de   bedoeling   heeft   om   een   conffile
       (configuratiebestand)  te  hernoemen of te verwijderen, het dit expliciet moet doen en dat
       dpkg-maintscript-helper kan gebruikt worden in scripts van  de  pakketonderhouder  om  het
       verwijderen en verplaatsen van conffiles op een elegante manier uit te voeren.

   Een configuratiebestand verwijderen
       Indien  een  configuratiebestand volledig verwijderd wordt, moet het van schijf verwijderd
       worden, tenzij de gebruiker het aangepast heeft. Indien er lokale aanpassingen aangebracht
       werden,  moeten  die behouden blijven. Indien het opwaarderen van het pakket afbreekt, mag
       het pas in onbruik geraakte configuratiebestand niet verdwijnen.

       Dit alles wordt toegepast door het volgende  shell-fragment  te  plaatsen  in  de  scripts
       preinst, postinst en postrm van de pakketonderhouder:

           dpkg-maintscript-helper rm_conffile \
               configuratiebestand vorige-versie pakket -- "$@"

       configuratiebestand is de bestandsnaam van het te verwijderen configuratiebestand.

       Huidige  toepassing:  in  het  script  preinst  controleert het of het configuratiebestand
       gewijzigd werd en hernoemt het ofwel naar configuratiebestand.dpkg-remove  (als  het  niet
       gewijzigd was) of naar configuratiebestand.dpkg-backup (als het wel gewijzigd was). In het
       script postinst wordt dit laatste bestand hernoemd  naar  configuratiebestand.dpkg-bak  en
       het  wordt  ter  referentie  behouden  vermits het door de gebruiker gemaakte aanpassingen
       bevat. In  het  eerste  geval  (niet  gewijzigd  configuratiebestand)  wordt  het  bestand
       verwijderd.  Indien  de  opwaardering  van  het pakket afbreekt, herinstalleert het script
       postrm het originele  configuratiebestand.  Tijdens  het  uitvoeren  van  een  wisopdracht
       (purge) zal het script postrm ook het tot dan bewaarde bestand .dpkg-bak verwijderen.

   Een configuratiebestand hernoemen
       Indien een configuratiebestand verplaatst wordt van de ene locatie naar een andere, moet u
       er voor zorgen dat eventuele wijzigingen die de gebruiker maakte mee gaan. Op  het  eerste
       gezicht  kan  dit  lijken  op  een  eenvoudige  aanpassing aan het script preinst. Dat zal
       evenwel als resultaat hebben dat de gebruiker door dpkg gevraagd wordt om de  aanpassingen
       aan  het  configuratiebestand  goed  te  keuren, al heeft hij er in dit geval niets mee te
       maken.

       Een vlotte manier van hernoemen kan gerealiseerd worden door het  volgende  shell-fragment
       te plaatsen in de scripts preinst, postinst en postrm van de pakketonderhouder:

           dpkg-maintscript-helper mv_conffile \
               oud-configuratiebestand nieuw-configuratiebestand vorige-versie pakket -- "$@"

       oud-configuratiebestand  en  nieuw-configuratiebestand  zijn de oude en de nieuwe naam van
       het configuratiebestand dat hernoemd moet worden.

       Huidige toepassing: het script preinst controleert of  het  configuratiebestand  gewijzigd
       werd.  Indien  dat  het  geval is wordt het gelaten waar het is, anders wordt het hernoemd
       naar oud-configuratiebestand.dpkg-remove.  Bij  het  configureren  verwijdert  het  script
       postinst  oud-configuratiebestand.dpkg-remove  en  hernoemt  oud-configuratiebestand  naar
       nieuw-configuratiebestand  als  oud-configuratiebestand  nog  steeds  voorhanden  is.  Bij
       abort-upgrade/abort-install (afbreken van de opwaardering/installatie) hernoemt het script
       postrm zo nodig oud-configuratiebestand.dpkg-remove terug naar oud-configuratiebestand.

OMSCHAKELEN TUSSEN SYMBOLISCHE KOPPELING EN MAP

       Bij het opwaarderen van een pakket zal dpkg niet  automatisch  een  symbolische  koppeling
       omzetten  naar een map of vice versa. Degradaties worden niet ondersteund en het pad wordt
       onveranderd gelaten.

   Een symbolische koppeling omzetten naar een map
       Indien een symbolische koppeling veranderd wordt naar een echte map, moet u er voor zorgen
       dat  de  symbolische  koppeling verwijderd wordt voor het uitpakken. Op het eerste gezicht
       kan dit een eenvoudige wijziging in het script preinst  lijken.  Nochtans  kan  dit  enige
       problemen  opleveren  in  het  geval  de  systeembeheerder de symbolische koppeling lokaal
       aanpaste of bij een degradatie van het pakket.

       Een vlotte manier van hernoemen kan gerealiseerd worden door het  volgende  shell-fragment
       te plaatsen in de scripts preinst, postinst en postrm van de pakketonderhouder:

           dpkg-maintscript-helper symlink_to_dir \
               padnaam oud-doel vorige-versie pakket -- "$@"

       padnaam  is  de  absolute  naam  van  de  oude  symbolische koppeling (op het einde van de
       installatie zal het pad een map zijn) en oud-doel is de naam van het doel van de  vroegere
       symbolische  koppeling in padnaam. Die kan ofwel absoluut zijn ofwel relatief ten opzichte
       van de map die padnaam bevat.

       Huidige toepassing: het script preinst gaat na of  de  symbolische  koppeling  bestaat  en
       verwijst naar oud-doel. Is dit niet het geval dan wordt ze gerust gelaten. Anders wordt ze
       hernoemd naar padnaam.dpkg-backup. Tijdens het configureren verwijdert het script postinst
       padnaam.dpkg-backup  indien  padnaam.dpkg-backup  nog steeds een symbolische koppeling is.
       Bij een abort-upgrade/abort-install (afbreken van  de  opwaardering/installatie)  hernoemt
       het script postrm padnaam.dpkg-backup zo nodig terug naar padnaam.

   Een map omzetten naar een symbolische koppelling
       Indien  een  echte  map omgezet wordt naar een symbolische koppeling, moet u ervoor zorgen
       dat de map verwijderd wordt voor  het  uitpakken.  Dit  kan  op  het  eerste  gezicht  een
       eenvoudige  aanpassing  aan  het  script  preinst lijken. Nochtans kan dit enige problemen
       opleveren in het geval  de  map  conffiles  (configuratiebestanden)  bevat,  padnamen  die
       eigendom  zijn  van  andere  pakketten of lokaal aangemaakte padnamen, of in het geval het
       pakket gedegradeerd wordt.

       Een elegante omschakeling kan gerealiseerd worden door het volgende shell-fragment  op  te
       nemen in de scripts preinst, postinst en postrm van de pakketonderhouder:

           dpkg-maintscript-helper dir_to_symlink \
               padnaam nieuw-doel vorige-versie pakket -- "$@"

       padnaam  is  de absolute naam van de oude map (het pad zal op het einde van de installatie
       een symbolische koppeling zijn) en nieuw-doel  is  het  doel  van  de  nieuwe  symbolische
       koppeling  in padnaam. Dit kan ofwel absoluut of relatief zijn ten opzichte van de map die
       padnaam bevat.

       Huidige toepassing: het script preinst controleert of de map  bestaat  en  geen  conffiles
       (configuratiebestanden),  padnamen  die  eigendom  zijn  van  andere  pakketten  of lokaal
       aangemaakte padnamen bevat. Is dat niet het geval, dan wordt  ze  gerust  gelaten.  Anders
       wordt  ze  hernoemd  naar  padnaam.dpkg-backup  en  wordt  een lege voorlopige map padnaam
       aangemaakt die met een bestand gemarkeerd wordt, zodat dpkg ze kan opvolgen.  Tijdens  het
       configureren  beëindigt  het  script  postinst  de overgang indien padnaam.dpkg-backup nog
       steeds een map is en padnaam  de  voorlopige  map.  Het  verwijdert  het  bestand  dat  de
       voorlopige  map  markeert  en verplaatst de zopas in de map aangemaakte bestanden naar het
       doel van de symbolische koppeling nieuw-doel/, vervangt de nu lege voorlopige map  padnaam
       door een symbolische koppeling naar nieuw-doel en verwijdert padnaam.dpkg-backup. In geval
       van abort-upgrade/abort-install (afbreken van de  opwaardering/installatie)  hernoemt  het
       script postrm zo nodig padnaam.dpkg-backup terug naar padnaam.

DE INTEGRATIE IN PAKKETTEN

       Gelieve  bij  het  gebruiken  van  een hulpmiddel voor het verpakken na te gaan of er geen
       systeemeigen integratie in dpkg-maintscript-helper van  bestaat,  wat  het  leven  voor  u
       makkelijker zou maken. Zie bijvoorbeeld dh_installdeb(1).

       Gegeven  het  feit dat dpkg-maintscript-helper gebruikt wordt in het script preinst, houdt
       een onvoorwaardelijk gebruik ervan een voorafgaande vereiste in om  te  kunnen  garanderen
       dat de benodigde versie van dpkg voordien uitgepakt werd. De benodigde versie hangt af van
       het  gebruikte  commando.  Voor  rm_conffile  en  mv_conffile  is   dat   1.15.7.2.   Voor
       symlink_to_dir en dir_to_symlink is dat 1.17.14:

           Pre-Depends: dpkg (>= 1.17.14)

       Maar in veel gevallen is de operatie die door het programma uitgevoerd wordt, niet kritiek
       van aard voor het pakket en in plaats van een voorafgaande vereiste te  gebruiken,  kunnen
       we  ook  het  programma pas aanroepen als we weten dat het benodigde programma ondersteund
       wordt door de huidige geïnstalleerde versie van dpkg:

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

       Het commando supports geeft in geval van succes een 0 terug en anders een 1. Het  commando
       supports  gaat  na  of  de  omgevingsvariabelen  die ingesteld worden door dpkg en die het
       script nodig heeft, voorhanden zijn. Indien de omgeving niet  voldoet,  zal  dit  als  een
       mislukking beschouwd worden.

ZIE OOK

       dh_installdeb(1).