.\" dpkg manual page - dpkg-maintscript-helper(1) .\" .\" Copyright © 2010-2012 Rapha\(:el Hertzog .\" Copyright © 2011-2015 Guillem Jover .\" .\" This is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . . .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH dpkg\-maintscript\-helper 1 2018-06-26 1.18.25 Dpkg\-sviten .nh .SH NAMN dpkg\-maintscript\-helper \- g\(oar runt k\(:anda dpkg\-begr\(:ansningar i paketskript . .SH SYNOPS \fBdpkg\-maintscript\-helper\fP \fIkommando\fP [\fIflagga\fP...] \fB\-\-\fP \fImaint\-script\-flagga\fP... . .SH "KOMMANDON OCH PARAMETRAR" .P \fBsupports\fP \fIkommando\fP .P \fBrm_conffile\fP \fIkonffil\fP [\fItidigare\-version\fP [\fIpaket\fP]] .P \fBmv_conffile\fP \fIgammalkonffil\fP \fInykonffil\fP [\fItidigare\-version\fP [\fIpaket\fP]] .P \fBsymlink_to_dir\fP \fIs\(:okv\(:ag\fP \fIgammalt\-m\(oal\fP [\fItidigare\-version\fP [\fIpaket\fP]] .P \fBdir_to_symlink\fP \fIs\(:okv\(:ag\fP \fInytt\-m\(oal\fP [\fItidigare\-version\fP [\fIpaket\fP]] . .SH BESKRIVNING .P Programmet skrevs f\(:or att k\(:oras i paketskript f\(:or att utf\(:ora en del \(oatg\(:arder som \fBdpkg\fP (\(:annu) inte sj\(:alv kan hantera, antingen p\(oa grund av designval eller p\(oa grund av nuvarande begr\(:ansningar. .P M\(oanga av dessa \(oatg\(:arder kr\(:aver samordnade \(oatg\(:arder fr\(oan flera paketskript (\fBpreint\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). F\(:or att undvika misstag r\(:acker det att l\(:agga in ett och samma anrop i alla skript, varp\(oa programmet anpassar sitt beteende beroende p\(oa milj\(:ovariabeln \fBDPKG_MAINTSCRIPT_NAME\fP och p\(oa paketskriptets parametrar, vilka du m\(oaste vidares\(:anda efter dubbla bindestreck. . .SH "DELADE PARAMETRAR" .TP \fItidigare\-version\fP Anger den senaste version av paketet vars uppgradering skall orsaka h\(:andelsen. Det \(:ar viktigt att ber\(:akna \fItidigare\-version\fP korrekt s\(oa att operationerna utf\(:ors korrekt \(:aven om anv\(:andaren byggt om paketet med en lokal version. Om \fItidigare\-version\fP \(:ar tom eller utel\(:amnas f\(:ors\(:oks operationen vid varje uppgradering (notera: det \(:ar s\(:akrare att ange versionen och endast f\(:ors\(:oka utf\(:ora operationen en g\(oang). Om konffilen inte har s\(:ants med i flera versioner och du nu uppdaterar utvecklarskripten till att st\(:ada bort den gamla filen b\(:or \fItidigare\-version\fP baseras p\(oa den version av paketet du nu f\(:orbereder, inte den f\(:orsta version av paketet som saknade konffilen. Detta g\(:aller p\(oa samma s\(:att f\(:or alla andra \(oatg\(:arder. Som ett exempel, f\(:or en konffil som togs bort i version \fB2.0\-1\fP av ett paket b\(:or \fItidigareversion\fP s\(:attas till \fB2.0\-1~\fP. Detta f\(oar konffilen att tas bort \(:aven om anv\(:andaren bygger om den tidigare versionen \fB1.0\-1\fP som \fB1.0\-1local1\fP. Eller ett paket som bytt en s\(:okv\(:ag fr\(oan att vara en symbolisk l\(:ank (skeppad i version \fB1.0\-1\fP) till en katalog (skeppad i version \fB2.0\-1\fP), men bara utf\(:ort sj\(:alva \(:andringen i utvecklarskripten i version \fB3.0\-1\fP, b\(:or s\(:atta \fItidigareversion\fP till \fB3.0\-1~\fP. .TP \fIpaket\fP The package name. When the package is \(lqMulti\-Arch: same\(rq this parameter must include the architecture qualifier, otherwise it should \fBnot\fP usually include the architecture qualifier (as it would disallow cross\-grades, or switching from being architecture specific to architecture \fBall\fP or vice versa). If the parameter is empty or omitted, the \fBDPKG_MAINTSCRIPT_PACKAGE\fP and \fBDPKG_MAINTSCRIPT_ARCH\fP environment variables (as set by \fBdpkg\fP) will be used to generate an arch\-qualified package name. .TP \fB\-\-\fP Alla parametrar till utvecklarskripten m\(oaste vidares\(:andas till programmen efter \fB\-\-\fP. .SH "KONFFIL\-RELATERADE \(oATG\(:ARDER" .P N\(:ar ett paket uppgraderas kommer \fBdpkg\fP inte att automatiskt ta bort en konffil (en konfigurationsfil f\(:or vilken \fBdpkg\fP skall beh\(oalla anv\(:andarens \(:andringar) om den inte finns i den nya versionen. Det finns tv\(oa grundl\(:aggande sk\(:al till detta; den f\(:orsta \(:ar att konffilen kan ha tappats av misstag och n\(:asta version kan komma att \(oaterst\(:alla den, varp\(oa anv\(:andaren inte vill tappa sina \(:andringar. Den andra \(:ar att f\(:or att g\(:ora det m\(:ojligt f\(:or paket att g\(oa \(:over fr\(oan en dpkg\-hanterad konffil till en fil som hanteras av paketets skript, vanligtvis genom ett verktyg som debconf eller ucf. .P Det inneb\(:ar att, om paketet menar att byta namn eller ta bort en konfigurationsfil, s\(oa m\(oaste det g\(:ora s\(oa explicit, och d\(oa kan \fBdpkg\-maintscript\-helper\fP anv\(:andas f\(:or att implementera en elegant borttagning och flyttning av konffiler i paketscripten. . .SS "Ta bort en konffil" .P Om en konffil helt tas bort b\(:or den tas bort fr\(oan disk, s\(oavida inte anv\(:andaren har modifierat den. Om det finns lokala \(:andringar b\(:or de bibeh\(oallas. Om paketuppgraderingen avbryts b\(:or inte konffilen som just blev f\(:or\(oaldras f\(:orsvinna. .P Allt detta implementeras genom att l\(:agga in f\(:oljande skalkod i paketskripten \fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP: .P dpkg\-maintscript\-helper rm_conffile \e \fIkonffil\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@" .P \fIkonffil\fP \(:ar namnet p\(oa konffilen som skall tas bort. .P Aktuell implementation: i \fBpreinst\fP kontrolleras om konffilen \(:andrades och i s\(oa fall byts namnet p\(oa den till antingen \fIkonffil\fP\fB.dpkg\-remove\fP (om inte modifierad) eller till \fIkonffil\fP\fB.dpkg\-backup\fP (om modifierad). I \fBpostinst\fP byts namnet p\(oa den sistn\(:amnda filen till \fIkonffil\fP\fB.dpkg\-bak\fP och beh\(oalls som referens om den inneh\(oaller \(:andringar av anv\(:andaren, medan den tidigare kommer att tas bort. Om paketuppgraderingen avbryts kommer \fBpostrm\fP att ominstallera den ursprungliga konffilen. Vid borttagning kommer \fBpostrm\fP \(:aven att ta bort \fB.dpkg\-bak\fP\-filen som beh\(oallits fram till dess. . .SS "Byta namn p\(oa en konffil" .P Om en konffil flyttas fr\(oan en plats till en annan m\(oaste du se till att du flyttar med eventuella \(:andringar gjorda av anv\(:andaren. Detta kan f\(:orst verka vara en enkel \(:andring av \fBpreinst\fP\-skriptet, men det kommer leda till att anv\(:andaren ombeds att godk\(:anna \(:andringar i konffilen f\(:or \fBdpkg\fP, \(:aven om denne inte \(:ar ansvarig f\(:or dem. .P En elegant namn\(:andring kan implementeras genom att l\(:agga in f\(:oljande skalkod i paketskripten \fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP: .P dpkg\-maintscript\-helper mv_conffile \e \fIgammalkonffil\fP \fInykonffil\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@" .P \fIgammalkonffil\fP och \fInykonffil\fP \(:ar de gamla och nya namnen p\(oa konffilen vars namn skall bytas. .P Aktuell implementation: I \fBpreinst\fP kontrolleras om konffilen har \(:andrats, om ja l\(:amnas den kvar p\(oa plats, annars byts namnet p\(oa den till \fIgammalkonffil\fP\fB.dpkg\-remove\fP. Vid konfigurering tar \fBpostinst\fP bort \fIgammalkonffil\fP\fB.dpkg\-remove\fP och byter namn p\(oa \fIgammalkonffil\fP till \fInykonffil\fP om \fIgammalkonffil\fP fortfarande finns. Vid avbruten uppgradering eller installation byter \fBpostrm\fP tillbaka namnet fr\(oan \fIgammalkonffil\fP\fB.dpkg\-remove\fP till \fIgammalkonffil\fP om s\(oa beh\(:ovs. . .SH "V\(:AXLING MELLAN SYML\(:ANKAR OCH KATALOGER" . Vid uppgradering av ett paket kommer \fBdpkg\fP inte att automatiskt byta ut en symbolisk l\(:ank mot en katalog, eller omv\(:ant. Nedgraderingar st\(:ods inte och s\(:okv\(:agen kommer l\(:amnas som den var. . .SS "Byta en symbolisk l\(:ank mot en katalog" . Om en symbolisk l\(:ank byts mot en riktig katalog m\(oaste du se till att den symboliska l\(:anken tas bort innan uppackningen. Detta kan f\(:orst verka vara en enkel \(:andring av \fBpreinst\fP\-skriptet, men det kommer leda till vissa problem om den lokale administrat\(:oren har justerat den symboliska l\(:anken, eller om paketet skall nedgraderas. .P En elegant namn\(:andring kan implementeras genom att l\(:agga in f\(:oljande skalkod i paketskripten \fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP: .P dpkg\-maintscript\-helper symlink_to_dir \e \fIs\(:okv\(:ag\fP \fIgammalt\-m\(oal\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@" .P \fIs\(:okv\(:ag\fP \(:ar den absoluta s\(:okv\(:agen f\(:or den gamla symboliska l\(:anken (s\(:okv\(:agen kommer vara en katalog n\(:ar installationen \(:ar f\(:ardig) och \fIgammalt\-m\(oal\fP \(:ar m\(oalet p\(oa den tidigare symboliska l\(:anken i \fIs\(:okv\(:ag\fP. Den kan antingen vara absolut eller relativ till katalogen som inneh\(oaller \fIs\(:okv\(:ag\fP. .P Aktuell implementation: I \fBpreinst\fP kontrolleras om den symboliska l\(:anken finns och pekar p\(oa \fIgammalt\-m\(oal\fP, om inte l\(:amnas den kvar, i annat fall byts namnet ut mot \fIs\(:okv\(:ag\fP\fB.dpkg\-backup\fP. Vid konfigurering tar \fBpostinst\fP bort \fIs\(:okv\(:ag\fP\fB.dpkg\-bakcup\fP om \fIs\(:okv\(:ag\fP\fB.dpkg\-backup\fP fortfarande \(:ar en symbolisk l\(:ank. Vid avbruten uppgradering eller installation byter \fBpostrm\fP tillbaka namnet fr\(oan \fIs\(:okv\(:ag\fP\fB.dpkg\-bakcup\fP till \fIs\(:okv\(:ag\fP om s\(oa beh\(:ovs. . .SS "Byta en symbolisk l\(:ank mot en katalog" . Om en riktig katalog byts mot en symbolisk l\(:ank m\(oaste du se till att katalogen tas bort innan uppackningen. Detta kan f\(:orst verka vara en enkel \(:andring av \fBpreinst\fP\-skriptet, men det kommer leda till vissa problem om katalogen inneh\(oaller konffiler, s\(:okv\(:agar som \(:ags av andra paket, lokalt skapade s\(:okv\(:agar, eller om paketet skall nedgraderas. .P Ett elegant byte kan implementeras genom att l\(:agga in f\(:oljande skalkod i paketskripten \fBpreinst\fP, \fBpostinst\fP och \fBpostrm\fP: .P dpkg\-maintscript\-helper dir_to_symlink \e \fIs\(:okv\(:ag\fP \fInytt\-m\(oal\fP \fItidigare\-version\fP \fIpaket\fP \-\- "$@" .P \fIs\(:okv\(:ag\fP \(:ar det absoluta namnet p\(oa den gamla katalogen (s\(:okv\(:agen kommer vara en symbolisk l\(:ank n\(:ar installationen \(:ar f\(:ardig) och \fInytt\-m\(oal\fP \(:ar m\(oalet p\(oa den nya symboliska l\(:anken i \fIs\(:okv\(:ag\fP. Den kan antingen vara absolut eller relativ till katalogen som inneh\(oaller \fIs\(:okv\(:ag\fP. .P Aktuell implementation: I \fBpreinst\fP kontrolleras om katalogen finns, inte inneh\(oaller konffiler, s\(:okv\(:agar som \(:ags av andra paket, eller lokalt skapade s\(:okv\(:agar, om inte s\(oa kommer den l\(:amnas kvar, annars byts namnet ut mot \fIs\(:okv\(:ag\fP\fB.dpkg\-backup\fP och en tom samlingsplatskatalog skapas i \fIs\(:okv\(:ag\fP, markerad med en fil s\(oa att dpkg kan h\(oalla ordning p\(oa den. Vid konfigurering slutf\(:or \fBpostinst\fP v\(:axlingen om \fIs\(:okv\(:ag\fP\fB.dpkg\-backup\fP fortfarande \(:ar en katalog och \fIs\(:okv\(:ag\fP \(:ar samlingsplatskatalogen; den tar bort m\(:arkningsfilen, flyttar nyligen skapade filer inuti samlingskatalogen till m\(oalet f\(:or den symboliska l\(:anken \fInytt\-m\(oal\fP/, ers\(:atter den nu tomma samlingskatalogen \fIs\(:okv\(:ag\fP med en symbolisk l\(:ank till \fInytt\-m\(oal\fP och tar bort \fIs\(:okv\(:ag\fP\fB.dpkg\-backup\fP. Vid avbruten uppgradering eller installation byter \fBpostrm\fP tillbaka namnet fr\(oan \fIs\(:okv\(:ag\fP\fB.dpkg\-backup\fP till \fIs\(:okv\(:ag\fP om s\(oa beh\(:ovs. . .SH "INTEGRERA I PAKET" .P N\(:ar ett paketeringshj\(:alpprogram anv\(:ands, kontrollera att det har direkt integrering med \fBdpkg\-maintscript\-helper\fP, n\(oagot som kan g\(:ora ditt liv enklare. Se till exempel \fBdh_installdeb\fP(1). .P Givet att \fBdpkg\-maintscript\-helper\fP anv\(:ands i \fBpreinst\fP s\(oa inneb\(:ar detta villkorsl\(:ost att ett f\(:orhandsberoende ("pre\-dependency") kr\(:avs f\(:or att f\(:ors\(:akra att den n\(:odv\(:andiga versionen av \fBdpkg\fP redan har packats upp. Den version som kr\(:avs beror p\(oa vilket kommando som anv\(:ands, f\(:or \fBrm_conffile\fP och \fBmv_conffile\fP \(:ar det 1.15.7.2, f\(:or \fBsymlink_to_dir\fP och \fBdir_to_symlnk\fP \(:ar det 1.17.14: .P \fBPre\-Depends:\fP dpkg (>= 1.17.14) .P Men i m\(oanga fall \(:ar operationen som utf\(:ors av programmet inte kritiskt f\(:or paketet, och ist\(:allet f\(:or att anv\(:anda ett f\(:orhandsberoende kan vi anropa programmet endast om vi vet att det n\(:odv\(:andiga kommandot st\(:ods av den nu installerade \fBdpkg\fP: .P if dpkg\-maintscript\-helper supports \fIkommando\fP; then dpkg\-maintscript\-helper \fIkommando\fP ... fi .P Kommandot \fBsupports\fP returnerar 0 vid framg\(oang, annars 1. Kommandot \fBsupports\fP kontrollerar om milj\(:ovariablerna som s\(:atts av dpkg och som kr\(:avs av skriptet \(:ar n\(:arvarande, och kommer anse det som ett fel om milj\(:ovariablerna inte \(:ar tillr\(:ackliga. .SH "SE \(:AVEN" .ad l \fBdh_installdeb\fP(1). .SH \(:OVERS\(:ATTNING Peter Krefting och Daniel Nylander.