Aceasta este comanda dpkg-maintscript-helper care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
dpkg-maintscript-helper - funcționează în jurul limitărilor dpkg cunoscute în scripturile de întreținere
REZUMAT
dpkg-maintscript-helper comandă [parametru...] -- maint-script-parameter...
COMANDE AND PARAMETRI
sprijină comandă
rm_conffile conffile [versiunea anterioară [pachet]]
mv_conffile vechi-confile nou-confile [versiunea anterioară [pachet]]
symlink_to_dir caii de acces veche-țintă [versiunea anterioară [pachet]]
dir_to_symlink caii de acces noua-tinta [versiunea anterioară [pachet]]
DESCRIERE
Acest program este conceput pentru a fi rulat în cadrul scripturilor de întreținere pentru a realiza unele sarcini care
dpkg nu se poate (încă) gestiona nativ nici din cauza deciziilor de proiectare, fie din cauza curentului
limitări.
Multe dintre aceste sarcini necesită acțiuni coordonate din mai multe scripturi de întreținere (preinst,
postinst, prerm, postrm). Pentru a evita greșelile, același apel trebuie pur și simplu introdus în toate
scripturile și programul își vor adapta automat comportamentul în funcție de mediu
variabil DPKG_MAINTSCRIPT_NAME și pe argumentele scripturilor de întreținere pe care trebuie să le faci
înainte după o cratimă dublă.
COMUNĂ PARAMETRI
versiunea anterioară
Definește cea mai recentă versiune a pachetului a cărei actualizare ar trebui să declanșeze
Operațiune. Este important să calculezi versiunea anterioară corect astfel încât
operațiunile sunt efectuate corect chiar dacă utilizatorul a reconstruit pachetul cu a
versiune locală. Dacă versiunea anterioară este gol sau omis, apoi operația este încercată
fiecare upgrade (notă: este mai sigur să oferiți versiunea și să încercați operația
doar o data).
Dacă conffile nu a fost livrat pentru mai multe versiuni, și acum sunteți
modificarea scripturilor de întreținere pentru a curăța fișierul învechit, versiunea anterioară
ar trebui să se bazeze pe versiunea pachetului pe care îl pregătiți acum, nu pe
prima versiune a pachetului care nu avea conffile. Acest lucru se aplică tuturor celorlalte
actiuni in acelasi mod.
De exemplu, pentru un conffile eliminat în versiune 2.0-1 a unui pachet, versiunea anterioară
ar trebui să fie setat la 2.0-1~. Acest lucru va face ca conffile să fie eliminat chiar dacă
utilizatorul a reconstruit versiunea anterioară 1.0-1 as 1.0-1local1. Sau un pachet care schimbă a
cale de la un link simbolic (livrat în versiune 1.0-1) într-un director (livrat în versiune
2.0-1), dar efectuând doar comutarea reală în scripturile de întreținere din versiune
3.0-1, ar trebui să se stabilească versiunea anterioară la 3.0-1~.
pachet
Numele pachetului. Când pachetul este „Multi-Arch: același”, acest parametru trebuie
includeți calificativul arhitecturii, altfel ar trebui nu de obicei includ
calificativ de arhitectură (deoarece ar interzice nivelurile încrucișate sau trecerea de la a fi
arhitectura specifica arhitecturii toate sau vice versa). Dacă parametrul este
gol sau omis, the DPKG_MAINTSCRIPT_PACKAGE și DPKG_MAINTSCRIPT_ARCH
variabilele de mediu (după cum sunt stabilite de dpkg) va fi folosit pentru a genera un arh-calificat
numele pachetului.
-- Toți parametrii scripturilor de întreținere trebuie să fie redirecționați către program
după --.
CONFILE LEGATE DE SARCINI
Când actualizați un pachet, dpkg nu va elimina automat un conffile (o configurație
dosar pentru care dpkg ar trebui să păstreze modificările utilizatorului) dacă nu este prezent în cel mai nou
versiune. Există două motive principale pentru aceasta; prima este că conffile ar fi putut
a fost scăpat accidental și următoarea versiune ar putea-o restaura, utilizatorii nu și-ar dori
schimbari aruncate. Al doilea este de a permite pachetelor să facă tranziția fișierelor de la a
dpkg-maintained conffile la un fișier întreținut de scripturile de întreținere ale pachetului, de obicei
cu un instrument precum debconf sau ucf.
Aceasta înseamnă că, dacă un pachet este destinat să redenumească sau să elimine un conffile, trebuie
face acest lucru în mod explicit și dpkg-maintscript-helper poate fi folosit pentru a implementa ștergerea grațioasă
și mutarea conffiles în cadrul scripturilor de întreținere.
Eliminarea a conffile
Dacă un conffile este eliminat complet, acesta ar trebui să fie eliminat de pe disc, cu excepția cazului în care utilizatorul a făcut-o
l-a modificat. Dacă există modificări locale, acestea ar trebui păstrate. Dacă pachetul
upgrade-urile se anulează, conffile nou învechit nu ar trebui să dispară.
Toate acestea sunt implementate prin introducerea următorului fragment de shell în fișierul preinst, postinst
și postrm scripturi de întreținere:
dpkg-maintscript-helper rm_conffile \
conffile versiunea anterioară pachet -- „$@”
conffile este numele fișierului conffile de eliminat.
Implementare curentă: în preinst, verifică dacă conffile a fost modificat și redenumește
fie să conffile.dpkg-eliminare (dacă nu a fost modificat) sau la conffile.dpkg-backup (dacă
modificat). În postinst, ultimul fișier este redenumit în conffile.dpkg-bak și păstrat pentru
referință deoarece conține modificări ale utilizatorului, dar primele vor fi eliminate. Dacă pachetul
upgrade-ul se anulează, postrm reinstalează configurația originală. În timpul epurării, postrm voi
de asemenea, ștergeți .dpkg-bak fișier păstrat până acum.
Redenumire a conffile
Dacă un conffile este mutat dintr-o locație în alta, trebuie să vă asigurați că vă mutați
orice modificări pe care utilizatorul le-a făcut. Aceasta poate părea o simplă schimbare a preinst scenariu la
mai întâi, totuși, acest lucru va duce la solicitarea utilizatorului de dpkg a aproba conffile
editează chiar dacă nu sunt responsabili de ele.
Redenumirea grațioasă poate fi implementată prin introducerea următorului fragment de shell în fișierul
preinst, postinst și postrm scripturi de întreținere:
dpkg-maintscript-helper mv_conffile \
vechi-confile nou-confile versiunea anterioară pachet -- „$@”
vechi-confile și nou-confile sunt numele vechi și nou al conffile de redenumit.
Implementarea curentă: the preinst verifică dacă conffile a fost modificat, dacă da este
lăsat pe loc, altfel este redenumit în vechi-confile.dpkg-eliminare. La configurare,
postinst Îndepărtează vechi-confile.dpkg-eliminare și redenumește vechi-confile la nou-confile if vechi-
conffile este încă disponibil. La abort-upgrade/abort-install, programul postrm redenumește vechi-
conffile.dpkg-eliminare înapoi la vechi-confile dacă este necesar.
SYMLINK AND CATALOG COMUTATOARE
Când actualizați un pachet, dpkg nu va comuta automat o legătură simbolică la un director sau
viceversa. Retrogradările nu sunt acceptate și calea va fi lăsată așa cum este.
De comutare a link simbolic la director
Dacă o legătură simbolică este schimbată la un director real, trebuie să vă asigurați înainte de a despacheta
linkul simbolic este eliminat. Aceasta poate părea o simplă schimbare a preinst scenariu la început,
cu toate acestea, acest lucru va avea ca rezultat unele probleme în cazul personalizării locale a administratorului
link simbolic sau la downgrade-ul pachetului.
Redenumirea grațioasă poate fi implementată prin introducerea următorului fragment de shell în fișierul
preinst, postinst și postrm scripturi de întreținere:
dpkg-maintscript-helper symlink_to_dir \
caii de acces veche-țintă versiunea anterioară pachet -- „$@”
caii de acces este numele absolut al vechiului link simbolic (calea va fi un director la sfârșit
a instalaţiei) şi veche-țintă este numele țintă al fostului link simbolic la caii de acces.
Poate fi absolut sau relativ la directorul care conține caii de acces.
Implementarea curentă: the preinst verifică dacă legătura simbolică există și indică veche-țintă,
dacă nu, atunci este lăsat pe loc, altfel este redenumit în caii de acces.dpkg-backup. Pe
configurație, postinst Îndepărtează caii de acces.dpkg-backup if caii de acces.dpkg-backup este încă
o legătură simbolică. La abort-upgrade/abort-install, programul postrm redenumește caii de acces.dpkg-backup înapoi la
caii de acces dacă este necesar.
De comutare a director la link simbolic
Dacă un director real este schimbat la un link simbolic, trebuie să vă asigurați înainte de a despacheta
directorul este eliminat. Aceasta poate părea o simplă schimbare a preinst scenariu la început,
cu toate acestea, asta va avea ca rezultat unele probleme în cazul în care directorul conține conffile,
căi deținute de alte pachete, căi create local sau la downgrade-ul
pachet.
Comutarea grațioasă poate fi implementată prin introducerea următorului fragment de shell în fișierul
preinst, postinst și postrm scripturi de întreținere:
dpkg-maintscript-helper dir_to_symlink \
caii de acces noua-tinta versiunea anterioară pachet -- „$@”
caii de acces este numele absolut al vechiului director (calea va fi un link simbolic la sfârșit
a instalaţiei) şi noua-tinta este ținta noului link simbolic la caii de acces. Poate
fie absolută, fie relativă la directorul care conține caii de acces.
Implementarea curentă: the preinst verifică dacă directorul există, nu conține
conffiles, căi deținute de alte pachete sau căi create local, dacă nu atunci
este lăsat pe loc, altfel este redenumit în caii de acces.dpkg-backup, și o punere în scenă goală
director numit caii de acces este creat, marcat cu un fișier, astfel încât dpkg să îl poată urmări. Pe
configurație, postinst termină comutatorul dacă caii de acces.dpkg-backup este încă un
director și caii de acces este directorul de staging; se îndepărtează marcajul directorului de pregătire
fișier, mută fișierele nou create în directorul de transfer la destinația symlink
noua-tinta/, înlocuiește directorul de procesare acum gol caii de acces cu un link simbolic către nou-
ţintă, și elimină caii de acces.dpkg-backup. La abort-upgrade/abort-install, programul postrm
redenumește caii de acces.dpkg-backup înapoi la caii de acces dacă este necesar.
INTEGRARE IN PACHETE
Când utilizați un ajutor de ambalare, vă rugăm să verificați dacă are nativ dpkg-maintscript-helper
integrare, care ți-ar putea face viața mai ușoară. Vezi de exemplu dh_installdeb(1).
Dat fiind dpkg-maintscript-helper este utilizat în preinst, folosind-o necondiționat
necesită o predependență pentru a se asigura că versiunea necesară a dpkg a fost despachetat
inainte de. Versiunea necesară depinde de comanda utilizată, pt rm_conffile și mv_conffile
este 1.15.7.2, pentru symlink_to_dir și dir_to_symlink este 1.17.14:
Pre-Depinde: dpkg (>= 1.17.14)
Dar în multe cazuri operațiunea efectuată de program nu este critică pentru pachet și
în loc să folosim o pre-dependență, putem apela programul numai dacă știm că
comanda necesară este acceptată de cea instalată în prezent dpkg:
dacă dpkg-maintscript-helper acceptă comandă; apoi
dpkg-maintscript-helper comandă ...
fi
Comanda sprijină va returna 0 la succes, 1 în caz contrar. The sprijină comanda va
verificați dacă variabilele de mediu stabilite de dpkg și cerute de script sunt prezente,
și o va considera un eșec în cazul în care mediul nu este suficient.
Utilizați dpkg-maintscript-helper online folosind serviciile onworks.net