.\" dpkg manual page - dpkg-maintscript-helper(1)
.\"
.\" Copyright ÂŠ 2010-2012 RaphaĂŤl Hertzog <hertzog@debian.org>
.\"
.\" 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 <http://www.gnu.org/licenses/>.
.
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH dpkg\-maintscript\-helper 1 2012\-05\-04 "Projekt Debian" "użytki dpkg"
.SH NAZWA
dpkg\-maintscript\-helper \- obchodzi znane ograniczenia dpkg w skryptach
opiekuna
.
.SH SKŁADNIA
\fBdpkg\-maintscript\-helper\fP \fIpolecenie\fP [\fIparametr\fP...] \fB\-\-\fP
\fIparametr\-skryptu\-opiekuna\fP...
.
.SH "POLECENIA I PARAMETRY"
.P
\fBrm_conffile\fP \fIplik\-konf\fP [\fIuprzednia\-wersja\fP [\fIpakiet\fP]]
.P
\fBmv_conffile\fP \fIstary\-plik\-konf\fP \fInowy\-plik\-konf\fP [\fIuprzednia\-wersja\fP
[\fIpakiet\fP]]
.
.SH OPIS
.P
Program jest przeznaczony do wykonywania wewnątrz skryptów opiekuna, aby
wykonać pewne zadania, których dpkg nie potrafi (jeszcze) obsłużyć w sposób
natywny albo ze względu na decyzje projektowe, albo z powodu obecnych
ograniczeń.
.P
Wiele z tych zadań wymaga skoordynowanych działań z kilku skryptów opiekuna
(\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). Aby uniknąć pomyłek, to samo
wywołanie musi być umieszczone we wszystkich skryptach, a program
automatycznie adaptuje swe zachowanie w oparciu o zmienną środowiskową
\fBDPKG_MAINTSCRIPT_NAME\fP i argumenty skryptów opiekuna jakie przekazano mu
po podwójnym myślniku.
.
.SH "ZADANIA ZWIĄZANE Z PLIKAMI CONFILE"
.P
Podczas aktualizacji pakietu, dpkg nie usuwa automatycznie plików conffile
(pliku konfiguracyjnego, dla którego dpkg powinien zachowywać zmiany
dokonane przez użytkownika. Wynika to z dwóch głównych powodów, po pierwsze
conffile mógł być usunięty przez przypadek, a gdy następna wersja przywróci
go, użytkownicy nie chcą usunięcia swoich zmian. Drugim jest umożliwienie
pakietom na przejście z plików conffile zarządzanych przez dpkg na pliki
zarządzane przez skrypty opiekuna pakietu, zwykle za pomocą narzędzia
takiego jak debconf lub ucf.
.P
Oznacza to, że gdy pakiet ma zamiar zmienić nazwę lub usunąć conffile, musi
wykonać to jawnie, a \fBdpkg\-maintscript\-helper\fP może zostać wykorzystany do
płynnego usunięcia i przeniesienia plików conffile w skryptach opiekuna.
.
.SS "USUWANIE PLIKU CONFFILE"
.P
Jeśli plik conffile jest całkowicie usuwany, powinien być usunięty z dysku,
chyba że użytkownik go zmodyfikował. Jeśli istnieją lokalne modyfikacje,
powinny pozostać zachowane. Jeśli aktualizacja pakietu zostanie przerwana,
nowo zdezaktualizowany plik conffile nie powinien zniknąć.
.P
Wszystko to jest zaimplementowane za pomocą następującego fragmentu skryptu
w skryptach opiekuna: \fBpreinst\fP, \fBpostinst\fP i \fBpostrm\fP:
.P
    dpkg\-maintscript\-helper rm_conffile \e
        \fIconffile\fP \fIuprzednia\-wersja\fP \fIpakiet\fP \-\- "$@"
.P
\fIconffile\fP jest nazwą pliku conffile do usunięcia.
.P
\fIuprzednia\-wersja\fP definiuje ostatnią wersją pakietu, której aktualizacja
powinna wyzwolić usunięcie. Ważne jest, aby obliczyć \fIuprzednią\-wersję\fP
poprawnie, dzięki czemu pliki conffile są poprawnie usunięte nawet, gdy
użytkownik przebuduje pakiet z lokalną wersją, np. dla pliku conffile
usuniętego w wersji \fB2.0\-1\fP pakietu, \fIuprzednia\-wersja\fP powinna być
ustawiona na \fB2.0\-1~\fP. Spowoduje to, że conffile zostanie usunięty nawet,
jeśli użytkownik przebuduje poprzednią wersję \fB1.0\-1\fP jako \fB1.0\-1local1\fP.
.P
Jeśli conffile nie jest już dostarczany dla kilku wersji i modyfikuje się
właśnie skrypty opiekuna w celu wyczyszczenia przestarzałego pliku,
\fIuprzednia\-wersja\fP powinna być oparta na wersji pakietu, która jest obecnie
przygotowywana, a nie na pierwszej wersji pakietu nieposiadającej conffile.
.P
\fIpakiet\fP jest nazwą pakietu. Jeśli jest pusta lub opuszczona, używana jest
zmienna środowiskowa DPKG_MAINTSCRIPT_PACKAGE (jak ustawiana przez dpkg).
.P
Wszystkie parametry skryptów opiekuna podane za "\-\-" są przekazywane do
programu.
.P
Obecna implementacja: w \fBpreinst\fP sprawdzane jest, czy conffile został
zmodyfikowany i zmienia się jego nazwę na \fIconffile\fP\fB.dpkg\-remove\fP (jeśli
nie został zmodyfikowany) lub na \fIconffile\fP\fB.dpkg\-backup\fP (jeśli
został). W \fBpostinst\fP, drugiemu plikowi zmienia się nazwę na
\fIconffile\fP\fB.dpkg\-bak\fP i zachowuje się go do porównania, jako że zawiera on
modyfikacje użytkownika, natomiast pierwszego \- usuwa się. Jeśli
aktualizacja pakietu zostanie przerwana, \fBpostrm\fP instaluje ponownie
oryginalny conffile. Podczas czyszczenia \fBpostrm\fP usuwa również zachowywany
dotąd plik \fB.dpkg\-bak\fP.
.
.SS "ZMIANA NAZWY PLIKU CONFFILE"
.P
Jeśli conffile jest przenoszony z jednego położenia do innego, konieczne
jest upewnienie się, że przenoszone są wszystkie zmiany dokonane przez
użytkownika. Może to początkowo wyglądać na prostą zmianę w skrypcie
\fBpreinst\fP, lecz spowoduje to zapytanie użytkownika przez dpkg, dotyczące
zaakceptowania edycji conffile, nawet jeśli użytkownik nie jest za nią
odpowiedzialny.
.P
Zgrabniejsza zmiana nazwy może być zaimplementowana za pomocą następującego
fragmentu skryptu w skryptach opiekuna: \fBpreinst\fP, \fBpostinst\fP i \fBpostrm\fP:
.P
    dpkg\-maintscript\-helper mv_conffile \e
        \fIstary\-conffile\fP \fInowy\-conffile\fP \fIuprzednia\-wersja\fP \fIpakiet\fP \-\- "$@"
.P
\fIStary\-conffile\fP i \fInowy\-conffile\fP to stara i nowa nazwa pliku conffile.
.P
\fIUprzednia\-wersja\fP definiuje ostatnią wersję pakietu, którego aktualizacja
powinna wyzwolić zmianę nazwy pliku conffile (patrz uwagi do \fBrm_conffile\fP
powyżej, nt. poprawnej wartości). Jeśli \fIuprzednia\-wersja\fP jest pusta lub
pominięta, próba tej operacji jest przeprowadzana przy każdym uaktualnieniu
(uwaga: bezpieczniej jest podać wersję i spróbować przeprowadzić tę operację
jedynie jednokrotnie).
.P
\fIpakiet\fP jest nazwą pakietu. Jeśli jest pusta lub opuszczona, używana jest
zmienna środowiskowa DPKG_MAINTSCRIPT_PACKAGE (jak ustawiana przez dpkg).
.P
Wszystkie parametry skryptów opiekuna podane za "\-\-" są przekazywane do
programu.
.P
Obecna implementacja: \fBpreinst\fP sprawdza, czy conffile został zmodyfikowany
\- jeśli tak, to pozostawia go, w przeciwnym wypadku nazwa jest zmieniana na
\fIstary\-conffile\fP\fB.dpkg\-remove\fP. Przy konfiguracji, \fBpostinst\fP usuwa
\fIstary\-conffile\fP\fB.dpkg\-remove\fP i zmienia \fIstary\-conffile\fP na
\fInowy\-conffile\fP, jeśli \fIstary\-conffile\fP jest wciąż obecny. Przy przerwanej
aktualizacji lub instalacji \fBpostrm\fP zmienia
\fIstary\-conffile\fP\fB.dpkg\-remove\fP z powrotem na \fIstary\-conffile\fP, jeśli to
konieczne.
.
.SH "INTEGRACJA W PAKIETACH"
.P
Zakładając, że \fBdpkg\-maintscript\-helper\fP jest używane w \fBpreinst\fP,
używanie go bezwarunkowo wymaga zależności wstępnej, upewniającej się, że
wymagana wersja dpkg została wcześniej rozpakowana. Wymagana wersja zależy
od użytego polecenia, do \fBrm_conffile\fP i \fBmv_conffile\fP jest to 1.15.7.2:
.P
    \fBPre\-Depends:\fP dpkg (>= 1.15.7.2)
.P
W wielu przypadkach operacja wykonywana przez program nie jest krytyczna dla
pakietu i wówczas zamiast używać zależności wstępnej można wywołać program
jedynie, jeśli wiemy że żądane polecenie jest obsługiwane przez aktualnie
zainstalowany dpkg:
.P
    if dpkg\-maintscript\-helper supports \fIcommand\fP; then
        dpkg\-maintscript\-helper \fIcommand\fP ...
    fi
.SH "TŁUMACZE"
Piotr Roszatycki <dexter@debian.org>, 1999
.br
Bartosz Feński <fenio@debian.org>, 2004-2005
.br
Robert Luberda <robert@debian.org>, 2006-2008
.br
Wiktor Wandachowicz <siryes@gmail.com>, 2008
.br
Michał Kułach <michal.kulach@gmail.com>, 2012
