Εγχειρίδια για τη γραμμή εντολών

Man » ucf Manual online - λεπτομερής διαδικτυακή τεκμηρίωση για τη σελίδα man του ucf

🌍
ucf - Ενημέρωση αρχείου διαμόρφωσης: διατήρηση των αλλαγών του χρήστη στα αρχεία διαμόρφωσης

ΣΥΝΤΑΞΗ

ucf [επιλογές] <Νέο αρχείο> <Προορισμός>

ucf [επιλογές] --purge <Προορισμός>

ΠΕΡΙΓΡΑΦΗ

Αυτό το βοηθητικό πρόγραμμα παρέχει ένα μέσο για να ζητείται από τον χρήστη εάν θα αποδεχτεί τις νέες εκδόσεις των αρχείων διαμόρφωσης που παρέχονται από τον διαχειριστή πακέτων, με διάφορες ευρετικές μεθόδους που έχουν σχεδιαστεί για να ελαχιστοποιείται ο χρόνος αλληλεπίδρασης. Χρησιμοποιεί το debconf για να αλληλεπιδράσει με τον χρήστη, σύμφωνα με την πολιτική του Debian. Στη ΣΥΝΤΑΞΗ παραπάνω, το Νέο αρχείο είναι το αρχείο διαμόρφωσης όπως παρέχεται από το πακέτο (είτε περιέχεται στο πακέτο, είτε δημιουργείται από τα σενάρια του διαχειριστή κατά τη διάρκεια της εκτέλεσης) και ο Προορισμός είναι η θέση (συνήθως κάτω από το /etc) όπου βρίσκεται το πραγματικό αρχείο διαμόρφωσης και ενδέχεται να έχει τροποποιηθεί από τον τελικό χρήστη. Δεδομένου ότι τα αρχεία που επεξεργάζονται θα είναι πραγματικά αρχεία και όχι συμβολικοί σύνδεσμοι, το ucf ακολουθεί και επιλύει τους συμβολικούς συνδέσμους πριν από τη δράση. Στο μέτρο του δυνατού, το ucf προσπαθεί να διατηρήσει την ιδιοκτησία και τα δικαιώματα του Νέου αρχείου καθώς αντιγράφεται στην νέα θέση.

Αυτό το σενάριο προσπαθεί να παρέχει χειρισμό παρόμοιο με το conffile για αρχεία που είναι εγκατεστημένα κάτω από το /etc και δεν περιέχονται σε ένα πακέτο Debian, αλλά αντιμετωπίζονται από τα σενάρια postinst. Η πολιτική του Debian δηλώνει ότι τα αρχεία κάτω από το /etc, τα οποία είναι αρχεία διαμόρφωσης, πρέπει να διατηρούν τις αλλαγές του χρήστη και αυτό ισχύει για τα αρχεία που χειρίζονται τα σενάρια διαχειριστή. Χρησιμοποιώντας το ucf, μπορείτε να συμπεριλάβετε μια ομάδα προεπιλεγμένων αρχείων διαμόρφωσης κάπου στο /usr (το /usr/share/<pkg> είναι μια καλή θέση) και να διατηρήσετε αρχεία στο /etc, διατηρώντας τις αλλαγές του χρήστη και γενικά προσφέροντας τις ίδιες δυνατότητες κατά την αναβάθμιση, όπως αυτές που παρέχει το dpkg κανονικά για τα "conffile".

Επιπλέον, αυτό το σενάριο παρέχει δυνατότητες για τη μετάβαση ενός αρχείου που δεν είχε προηγουμένως προστασία παρόμοια με το conffile, ώστε να ενταχθεί σε αυτό το σχήμα, και προσπαθεί να ελαχιστοποιήσει τις ερωτήσεις που τίθενται κατά την εγκατάσταση. Πράγματι, η δυνατότητα μετάβασης είναι καλύτερη από αυτή που προσφέρει το dpkg κατά τη μετάβαση ενός αρχείου από κατάσταση μη conffile σε κατάσταση conffile. Η δεύτερη μορφή στη ΣΥΝΤΑΞΗ παραπάνω προορίζεται για την κατάργηση πληροφοριών σχετικά με το αρχείο διαμόρφωσης όταν το πακέτο καταργείται και είναι απαραίτητη για την παροχή ομαλών επανεγκαταστάσεων.

Κατά τη διάρκεια των λειτουργιών, όταν εργάζεστε με αρχεία διαμόρφωσης, το ucf δημιουργεί προαιρετικά αντίγραφα των εκδόσεων του αρχείου διαμόρφωσης. Για παράδειγμα, ένα αρχείο με το επίθημα ucf-old περιέχει την παλιά έκδοση ενός αρχείου διαμόρφωσης που αντικαθίσταται από το ucf. Επίσης, μπορεί να δημιουργηθούν αντίγραφα του αρχείου διαμόρφωσης με τα επιθήματα ucf-new και ucf-dist και τα σενάρια διαχειριστή θα πρέπει να εξετάσουν την κατάργηση αντιγράφων του αρχείου διαμόρφωσης με αυτές τις επεκτάσεις κατά την κατάργηση.


ΕΠΙΛΟΓΕΣ

-h, --help

Εμφανίζει ένα σύντομο μήνυμα χρήσης

-n, --no-action

Εκτέλεση σε κατάσταση δοκιμής. Εκτυπώνει τις ενέργειες που θα πραγματοποιηθούν εάν το σενάριο εκτελεστεί, αλλά δεν πραγματοποιεί καμία ενέργεια.

-d[n], --debug=[n]

Ορίζει το επίπεδο αποσφαλμάτωσης στο επίπεδο n (εάν δεν καθοριστεί, η προεπιλογή είναι 1). Σημειώστε ότι δεν πρέπει να υπάρχει κενός χώρος πριν από την προαιρετική ψηφιακή τιμή n. Αυτό ενεργοποιεί εκτεταμένες πληροφορίες αποσφαλμάτωσης.

-p, --purge

Αφαιρεί όλα τα ίχνη του αρχείου από το αρχείο καταγραφής καταστάσεων. Αυτό απαιτείται για να επιτρέπεται η επαναεγκατάσταση ενός πακέτου μετά την εκκαθάρισή του. διαφορετικά, το πραγματικό αρχείο διαμόρφωσης αφαιρείται, αλλά παραμένει στο αρχείο καταγραφής καταστάσεων. και κατά την επαναεγκατάσταση δεν πραγματοποιείται καμία ενέργεια, επειδή το md5sum του νέου αρχείου ταιριάζει με αυτό στο αρχείο καταγραφής καταστάσεων. Εν ολίγοις, θυμηθείτε να χρησιμοποιείτε αυτήν την επιλογή στο postrm για κάθε αρχείο διαμόρφωσης που διαχειρίζεται το ucf όταν το πακέτο εκκαθαρίζεται (υποθέτοντας ότι το ίδιο το ucf υπάρχει). Σημείωση: Το ucf δεν αγγίζει πραγματικά το αρχείο στον δίσκο σε αυτήν τη λειτουργία, επομένως οποιεσδήποτε διαγραφές αρχείων εξακολουθούν να είναι ευθύνη του πακέτου που το καλεί.

-v, --verbose

Κάνει το σενάριο πολύ λεπτομερές σχετικά με την ορισμένη εσωτερική μεταβλητή.

-P foo, --package foo

Μην ακολουθείτε τις ανακατευθύνσεις dpkg-divert από το πακέτο foo κατά την ενημέρωση των αρχείων διαμόρφωσης.

-s foo, --src-dir foo

Ορίζει τον κατάλογο πηγής (οι ιστορικές τιμές md5sum αναμένεται να βρίσκονται σε αρχεία και υποκαταλόγους αυτού του καταλόγου) στο foo. Από προεπιλογή, ο κατάλογος όπου βρίσκεται το νέο αρχείο θεωρείται ο κατάλογος πηγής. Η ρύθμιση αυτής της επιλογής αντικαθιστά τις ρυθμίσεις στην μεταβλητή περιβάλλοντος UCF_SOURCE_DIR και στην μεταβλητή αρχείου διαμόρφωσης conf_source_dir.

--sum-file foo

Επιβάλλει την ανάγνωση των ιστορικών τιμών md5sum από αυτό το αρχείο, αντί να τις αποθηκεύει στον κατάλογο πηγής. Η ρύθμιση αυτής της επιλογής αντικαθιστά τις ρυθμίσεις στην μεταβλητή περιβάλλοντος UCF_OLD_MDSUM_FILE και στην μεταβλητή αρχείου διαμόρφωσης conf_old_mdsum_file.

--three-way

Αυτό ενεργοποιεί την επιλογή, κατά την εγκατάσταση, για να προσφερθεί στον χρήστη η ευκαιρία να δει μια συγχώνευση των αλλαγών μεταξύ της παλιάς έκδοσης του προγραμματιστή και της νέας έκδοσης του προγραμματιστή στο τοπικό αντίγραφο του αρχείου διαμόρφωσης. Εάν ο χρήστης συμπαθήσει αυτό που βλέπει, μπορεί να ζητήσει να συγχωνευτούν αυτές οι αλλαγές. Αυτό επιτρέπει τη λήψη νέων αλλαγών από την πηγή, ακόμη και διατηρώντας τις τοπικές τροποποιήσεις στο αρχείο διαμόρφωσης. Αυτό επιτυγχάνεται με την προσωρινή αποθήκευση του αρχείου διαμόρφωσης σε μια περιοχή προσωρινής αποθήκευσης κατά την εγγραφή και τη χρήση του diff3 κατά την εγκατάσταση (το όνομα του αρχείου που έχει προσωρινά αποθηκευτεί είναι μια αλλοιωμένη έκδοση της πλήρους διαδρομής του αρχείου διαμόρφωσης για να αποφευχθούν συγκρούσεις ονομάτων).

--debconf-ok

Υποδεικνύει ότι είναι αποδεκτό για το ucf να χρησιμοποιήσει μια ήδη ενεργή παρουσία debconf για την προτροπή (πάντα ήταν αποδεκτό να χρησιμοποιείται το ucf όταν το debconf δεν εκτελείται – θα επικαλέσει το debconf όπως απαιτείται).


--debconf-template foo
Ενεργοποιήστε το ucf ώστε να χρησιμοποιεί το καθορισμένο πρότυπο debconf πολλαπλής επιλογής αντί για το κανονικό πρότυπο debconf που παρέχεται από το ucf. Ο καλούν είναι υπεύθυνος για τη διασφάλιση ότι το καθορισμένο πρότυπο υπάρχει και διαθέτει μια λίστα επιλογών που ταιριάζει με αυτές του προεπιλεγμένου προτύπου ucf, και θα πρέπει να ορίσει το Choices-C: ${CHOICES} για να διασφαλίσει ότι οι επιστρεφόμενες τιμές ταιριάζουν με αυτές του προεπιλεγμένου προτύπου. Σημειώστε ότι οι επιλογές πρέπει να είναι διαφορετικές ανάλογα με το αν έχει επίσης οριστεί η επιλογή --three-way.

--state-dir /path/to/dir
Ορίστε τον κατάλογο κατάστασης στο /path/to/dir αντί για τον προεπιλεγμένο /var/lib/ucf. Χρησιμοποιείται κυρίως για δοκιμές.

-Z
Ορίστε το πλαίσιο ασφαλείας SELinux του αρχείου προορισμού στην προεπιλεγμένη τιμή.

ΧΡΗΣΗ

Η πιο κοινή περίπτωση χρήσης είναι αρκετά απλή: μια απλή πρόσκληση στη γραμμή εντολών στο postinst κατά την εγκατάσταση και μια άλλη απλή πρόσκληση στο postrm για να ενημερώσετε το ucf ώστε να ξεχάσει το αρχείο διαμόρφωσης κατά την κατάργηση (χρησιμοποιώντας την επιλογή --purge) είναι όλα όσα χρειάζονται (υποθέτοντας ότι το ucf εξακολουθεί να βρίσκεται στο σύστημα).

Συνιστάται επίσης να καταχωρίσετε οποιοδήποτε αρχείο που διαχειρίζεται το ucf στο μητρώο ucf. Αυτό συνδέει το αρχείο διαμόρφωσης με το πακέτο στο οποίο ανήκει. Αυτό γίνεται με μια απλή κλήση στο ucfr. Οι χρήστες μπορούν στη συνέχεια να υποβάλουν ερωτήματα σχετικά με τη συσχέτιση μεταξύ ενός αρχείου διαμόρφωσης και του πακέτου χρησιμοποιώντας το εργαλείο ucfq. Ανατρέξτε στις κατάλληλες σελίδες εγχειριδίου για λεπτομέρειες.

Τα πακέτα που χρησιμοποιούν το debhelper μπορούν να απλοποιήσουν τη δημιουργία των απαραίτητων τμημάτων του σεναρίου συντήρησης χρησιμοποιώντας το βοηθητικό πρόγραμμα dh_ucf.

Εάν ένα αρχείο που διατηρείται από σενάρια συντήρησης μεταβαίνει από μια μη προστατευμένη κατάσταση στην προστασία που παρέχεται από το σενάριο, ο συντηρητής μπορεί να διευκολύνει τη μετάβαση μειώνοντας τις ερωτήσεις που ενδέχεται να τεθούν κατά τη διάρκεια της εγκατάστασης. Συγκεκριμένα, δεν θα πρέπει να υποβάλλονται ερωτήσεις εάν το αρχείο που εξετάζεται είναι μια μη τροποποιημένη έκδοση που είχε αποσταλεί σε μια προηγούμενη έκδοση αυτού του πακέτου. Ο συντηρητής μπορεί να βοηθήσει ενημερώνοντας το σενάριο σχετικά με τα ιστορικά αθροίσματα md5 που περιείχαν οι δημοσιευμένες εκδόσεις αυτού του αρχείου.

Ο τρόπος για να γίνει αυτό είναι είτε να δημιουργηθεί ένα αρχείο με όνομα <Νέο αρχείο>.md5sum, με ένα άθροισμα md5 ανά γραμμή, (τα ονόματα αρχείων που χρησιμοποιείτε δεν έχουν σημασία, εκτός από την καταχώρηση με όνομα default), είτε να δημιουργηθεί ένας κατάλογος, με όνομα <Νέο αρχείο>.md5sum.d, ο οποίος θα πρέπει να περιέχει οποιονδήποτε αριθμό αρχείων, το καθένα από τα οποία θα περιέχει μια μόνο γραμμή, δηλαδή, το άθροισμα md5 μιας προηγούμενης έκδοσης του <Νέο αρχείο>. Τα ονόματα αυτών των αρχείων δεν είναι σημαντικά, με μία εξαίρεση: το αρχείο με όνομα default αντιμετωπίζεται ειδικά. Για παράδειγμα, ο συγγραφέας χρησιμοποιεί προσωπικά είτε εκδόσεις πακέτων είτε κωδικά ονόματα κυκλοφορίας, όπως 7.6.3 ή potato. Εάν κανένα από τα ιστορικά αθροίσματα md5 δεν ταιριάζει, είμαστε σχεδόν βέβαιοι ότι είτε η ιστορική εγγραφή των αθροισμάτων md5 δεν είναι πλήρης είτε ο χρήστης έχει αλλάξει το αρχείο διαμόρφωσης.

Το προεπιλεγμένο ιστορικό άθροισμα md5

Η εξαίρεση στον κανόνα σχετικά με τα ονόματα που αναφέρεται προηγουμένως είναι ότι εάν κανένα από τα αθροίσματα md5 δεν ταιριάζει και εάν το αρχείο <Νέο αρχείο>.md5sum.d/default υπάρχει, ή εάν υπάρχει μια γραμμή που αντιστοιχεί σε ένα αρχείο default στο <Νέο αρχείο>.md5sum, θα χρησιμοποιηθεί ως το προεπιλεγμένο άθροισμα md5 της προηγούμενης έκδοσης του πακέτου που υποτίθεται ότι είναι εγκατεστημένο σε αυτήν τη μηχανή. Όπως μπορείτε να δείτε, εκτός και αν υπάρχουν περιορισμένος αριθμός εκδόσεων πακέτων που έχουν κυκλοφορήσει στο παρελθόν (όπως μόνο μία), ο συντηρητής κάνει επίσης μια τεκμηριωμένη εικασία, αλλά η επιλογή παρέχεται στον συντηρητή.


Εάν το αρχείο <Νέο αρχείο>.md5sum ή ο κατάλογος <Νέο αρχείο>.md5sum.d δεν υπάρχουν, ή εάν κανένα από τα hash δεν ταιριάζει, δοκιμάζουμε αν το εγκατεστημένο αρχείο <Προορισμός> είναι ίδιο με το <Νέο αρχείο>. Εάν όχι, ζητάμε από τον χρήστη εάν θέλει να αντικαταστήσουμε το αρχείο.

Προσφέρεται επίσης μια επιπλέον δυνατότητα: προαιρετικά, το ucf μπορεί να αποθηκεύσει μια παλιά έκδοση του αρχείου διαμόρφωσης που παρέχεται από τους συντηρητές και, κατά την αναβάθμιση, να υπολογίσει τις αλλαγές που έγιναν στην έκδοση του αρχείου διαμόρφωσης που παρέχεται από τους συντηρητές και να εφαρμόσει αυτήν την ενημέρωση στην τοπική έκδοση του αρχείου (κατόπιν αιτήματος του χρήστη, φυσικά). Υπάρχει επίσης μια δυνατότητα προεπισκόπησης όπου ο χρήστης μπορεί να επιθεωρήσει τα αποτελέσματα μιας τέτοιας συγχώνευσης, πριν ζητήσει να πραγματοποιηθεί η ενέργεια.

ΜΕΤΑΒΛΗΤΕΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ

Η μεταβλητή UCF_FORCE_CONFFNEW, εάν έχει οριστεί, αναγκάζει το νέο αρχείο να αντικαθιστά πάντα το εγκατεστημένο αρχείο προορισμού, ενώ η μεταβλητή UCF_FORCE_CONFFOLD, εάν έχει οριστεί, διατηρεί σιωπηλά το εγκατεστημένο αρχείο. Η μεταβλητή UCF_FORCE_CONFFMISS ισχύει μόνο όταν το εγκατεστημένο αρχείο προορισμού δεν υπάρχει (πιθανώς λόγω διαγραφής από τον χρήστη) και αναγκάζει το ucf να αναδημιουργήσει το αρχείο που λείπει (η προεπιλεγμένη συμπεριφορά είναι να τηρεί τις επιθυμίες του χρήστη και να μην αναδημιουργεί το τοπικά διαγραμμένο αρχείο). Επιπλέον, όταν το ucf δημιουργεί ένα δευτερεύον shell, συμπληρώνει τις μεταβλητές UCF_CONFFILE_NEW και UCF_CONFFILE_OLD, οι οποίες είναι χρήσιμες για την επιθεώρηση των αλλαγών.

Υποστηρίζονται επίσης οι σημαίες confmiss, confnew, confold, confdef και confask της μεταβλητής DPKG_FORCE. Δείτε το dpkg(1) για περισσότερες πληροφορίες.

ΑΡΧΕΙΑ

Αυτό το σενάριο δημιουργεί το αρχείο new_file.md5sum και μπορεί να αντιγράψει το αρχείο (πιθανώς που περιλαμβάνεται στο πακέτο) <Νέο αρχείο> στον προορισμό του, <Προορισμός>.

/var/lib/ucf/hashfile και /var/lib/ucf/hashfile.X, όπου το X είναι ένας μικρός ακέραιος αριθμός, όπου αποθηκεύονται οι προηγούμενες εκδόσεις του αρχείου hash.

/etc/ucf.conf

ΠΑΡΑΔΕΙΓΜΑΤΑ

Εάν το πακέτο foo θέλει να χρησιμοποιήσει το ucf για να διαχειριστεί την αλληλεπίδραση του χρήστη για το αρχείο διαμόρφωσης foo.conf, μια έκδοση του οποίου παρέχεται στο πακέτο ως /usr/share/foo/configuration, μια απλή εκτέλεση του ucf στο αρχείο post inst είναι όλα όσα χρειάζονται:

ucf /usr/share/foo/configuration /etc/foo.conf

Κατά την κατάργηση, θα πρέπει να πείτε στο ucf να ξεχάσει το αρχείο (δείτε λεπτομερή παραδείγματα στο /usr/share/doc/ucf/examples):

ucf --purge /etc/foo.conf

Παρακαλούμε σημειώστε ότι η κατάργηση μπορεί επίσης να χρησιμοποιηθεί για να κάνει το ucf να ξεχάσει την προηγούμενη κατάσταση των αρχείων, και όταν το πακέτο εγκατασταθεί ή ενημερωθεί ξανά, το ucf θα ζητήσει από τον χρήστη να αντικαταστήσει το τρέχον αρχείο διαμόρφωσης. Κάντε το αν θέλετε να αλλάξετε την απόφασή σας να μην ενημερώσετε σε μια έκδοση του αρχείου διαμόρφωσης που παρέχεται από τους συντηρητές.

SEE ALSO

ucf.conf(5), ucfr(1), ucfq(1), dpkg(1), dh_ucf(1), diff3(1).

The Debian Emacs policy, shipped with the package emacsen-common.

AUTHOR

This manual page was written by Manoj Srivastava <_>, for the Debian GNU/Linux system.")