Skip to main content

Οδηγός συσκευασίας Ubuntu - Συσκευασία με Debhelper

Ubuntel Linux 5.0 - The Greek Linux Distro - Review ( + GIVEAWAY ) (Ιούλιος 2025)

Ubuntel Linux 5.0 - The Greek Linux Distro - Review ( + GIVEAWAY ) (Ιούλιος 2025)

Πίνακας περιεχομένων:

Anonim

Συσκευασία με Debhelper

Σπουδαίος

Απαιτήσεις: Οι απαιτήσεις από το τμήμα που ονομάζεται "Συσκευασία από το μηδέν" συν debhelper και dh-make

Ως συσκευαστής, σπάνια θα δημιουργείτε πακέτα από το μηδέν, όπως έχουμε κάνει στην προηγούμενη ενότητα. Όπως μπορείτε να φανταστείτε, πολλά από τα καθήκοντα και τις πληροφορίες στο κανόνες αρχείο, για παράδειγμα, είναι κοινά για τα πακέτα. Για να κάνετε τη συσκευασία ευκολότερη και αποτελεσματικότερη, μπορείτε να τη χρησιμοποιήσετε debhelper για να βοηθήσει με αυτές τις εργασίες. Debhelper είναι ένα σύνολο σεναρίων Perl (με πρόθεμα με dh_) που αυτοματοποιούν τη διαδικασία δημιουργίας πακέτων. Με αυτά τα scripts, η δημιουργία ενός πακέτου του Debian γίνεται αρκετά απλή.

Σε αυτό το παράδειγμα, θα χτίσουμε ξανά το πακέτο GNU Hello, αλλά αυτή τη φορά θα συγκρίνουμε το έργο μας με το Ubuntu hello-debhelper πακέτο. Και πάλι, δημιουργήστε έναν κατάλογο στον οποίο θα εργάζεστε:

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http: //ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu

Στη συνέχεια, αποκτήστε το πακέτο πηγής Ubuntu:

apt-get πηγή hello-debhelper cd ..

Όπως και το προηγούμενο παράδειγμα, το πρώτο πράγμα που πρέπει να κάνουμε είναι να αποσυσκευάσουμε το αρχικό (upstream) tarball.

tar -xzvf hello-2.1.1.tar.gz

Αντί να αντιγράψετε την ανάντη μπάρα hello_2.1.1.orig.tar.gz όπως κάναμε και στο προηγούμενο παράδειγμα, θα αφήσουμε dh_make κάνουμε το έργο για μας. Το μόνο που πρέπει να κάνετε είναι να μετονομάσετε τον φάκελο προέλευσης έτσι ώστε να έχει τη μορφή - όπου το πακέτο είναι πεζά. Σε αυτή την περίπτωση, το tarball παράγει έναν σωστά κατονομαζόμενο κατάλογο πηγής ώστε να μπορέσουμε να το μετακινήσουμε σε αυτόν:

cd hello-2.1.1

Για να δημιουργήσουμε την αρχική "debianization" της πηγής που θα χρησιμοποιήσουμε dh_make.

dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz

Το dh_make θα σας ρωτήσει στη συνέχεια μια σειρά ερωτήσεων:

Τύπος πακέτου: ενιαία δυαδική, πολλαπλή δυαδική, βιβλιοθήκη, μονάδα πυρήνα ή cdbs; s / m / l / k / b μικρό Όνομα Συνεργάτη: Captain Packager Διεύθυνση ηλεκτρονικού ταχυδρομείου: [email protected] Ημερομηνία: Thu, 6 Apr 2006 10:07:19 -0700 Όνομα πακέτου: hello Έκδοση: 2.1.1 Άδεια χρήσης: blank Τύπος Συσκευασίας: Single Hit για να επιβεβαιώσετε: Εισαγω

Προσοχή

Εκτελέστε μόνο dh_make -e μια φορά. Αν το εκτελέσετε πάλι αφού το κάνετε την πρώτη φορά, δεν θα λειτουργήσει σωστά. Αν θέλετε να την αλλάξετε ή να κάνετε κάποιο λάθος, αφαιρέστε τον κατάλογο προέλευσης και ξεκινήστε ξανά την προηγούμενη tarball. Στη συνέχεια, μπορείτε να μεταφέρετε στον κατάλογο προέλευσης και να προσπαθήσετε ξανά.

Τρέξιμο dh_make -e κάνει δύο πράγματα:

  • Δημιουργεί το hello_2.1.1.orig.tar.gz αρχείου στον γονικό κατάλογο,
  • Δημιουργεί τα βασικά αρχεία που απαιτούνται στο debian / και πολλά αρχεία προτύπων (.ex) που μπορεί να χρειαστούν.

ο γεια σας το πρόγραμμα δεν είναι πολύ περίπλοκο και όπως έχουμε δει στην ενότητα "Συσκευασία από την αρχή", η συσκευασία δεν απαιτεί πολύ περισσότερα από τα βασικά αρχεία. Επομένως, ας αφαιρέσουμε το .πρώην αρχεία:

cd debian rm * .ex * .EX

Για γεια σας, δεν θα το κάνετε

* Αδεια

* Δείκτης οδηγού συσκευασίας του Ubuntu

χρειάζομαι README.Debian (Αρχείο README για συγκεκριμένα θέματα του Debian, όχι το README του προγράμματος), dirs (χρησιμοποιηθηκε απο dh_installdirs για να δημιουργήσετε τους απαραίτητους καταλόγους), docs (χρησιμοποιηθηκε απο dh_installdocs για να εγκαταστήσετε την τεκμηρίωση του προγράμματος), ή πληροφορίες (χρησιμοποιηθηκε απο dh_installinfo για να εγκαταστήσετε το αρχείο πληροφοριών) στα αρχεία debian Ευρετήριο. Για περισσότερες πληροφορίες σχετικά με αυτά τα αρχεία, ανατρέξτε στο τμήμα που ονομάζεται αρχεία παράδειγμα dh_make.

Σε αυτό το σημείο, θα πρέπει να έχετε μόνο changelog, compat, έλεγχος, πνευματική ιδιοκτησία, και κανόνες αρχεία στο debian Ευρετήριο. Από το τμήμα που ονομάζεται "Συσκευασία από το μηδέν", το μόνο αρχείο που είναι νέο είναι compat, το οποίο είναι ένα αρχείο που περιέχει το debhelper έκδοση (στην περίπτωση αυτή 4) που χρησιμοποιείται.

Θα χρειαστεί να προσαρμόσετε το changelogελαφρώς σε αυτή την περίπτωση για να φανεί ότι το πακέτο αυτό ονομάζεται hello-debhelper και όχι μόνο γεια σας:

hello-debhelper (2.1.1-1) dapper. επείγουσα ανάγκη = χαμηλή * Αρχική απελευθέρωση - Captain Packager Τρι, 6 Απρ 2006 10:07:19 -0700

Με τη χρήση debhelper, τα μόνα πράγματα που πρέπει να αλλάξουμε έλεγχος είναι το όνομα (αντικαθιστώντας γεια σας Για hello-debhelper) και την προσθήκη debhelper (> = 4.0.0) στο Build-Depends πεδίο για το πακέτο προέλευσης. Το πακέτο Ubuntu για hello-debhelper μοιάζει με:

Πηγή: hello-debhelper Ενότητα: devel Προτεραιότητα: επιπλέον Συντηρητής: Capitan Packager Πρότυπα-Έκδοση: 3.6.1 Build-Depends: debhelper (> = 4) Συσκευασία: hello-debhelper Αρχιτεκτονική: Any Depends: $ {shlibs: Depends} Συγκρούσεις: hello Παρέχει: hello Αντικαθιστά: καλό παράδειγμα Το πρόγραμμα Hello GNU δημιουργεί ένα οικείο φιλικό χαιρετισμό. Επιτρέπει στους μη προγραμματιστές να χρησιμοποιούν ένα κλασικό εργαλείο πληροφορικής, το οποίο διαφορετικά δεν θα ήταν διαθέσιμο σε αυτά. . Σοβαρά όμως: αυτό είναι ένα παράδειγμα για το πώς να κάνουμε ένα πακέτο Debian. Πρόκειται για την έκδοση Debian του προγράμματος Hello World του GNU Project (το οποίο είναι το ίδιο παράδειγμα για το GNU Project). . Αυτό είναι το ίδιο με το πακέτο hello, εκτός του ότι χρησιμοποιεί το debhelper για να κάνει το deb. Ανατρέξτε στο debhelper για το τι είναι.

Μπορούμε να αντιγράψουμε το πνευματική ιδιοκτησία το αρχείο και το postinst και prerm scripts από το Ubuntu hello-debhelper επειδή δεν έχουν αλλάξει από την ενότητα που ονομάζεται "Συσκευασία από την αρχή". Θα αντιγράψουμε επίσης το κανόνες αρχείο ώστε να μπορέσουμε να το επιθεωρήσουμε.

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright. cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules.

Το τελευταίο αρχείο που πρέπει να δούμε είναι κανόνες, όπου η ισχύς του debhelper μπορείτε να δείτε τα σενάρια. ο debhelper έκδοση του κανόνες είναι κάπως μικρότερο (54 γραμμές σε αντίθεση με 72 γραμμές στην έκδοση από το τμήμα που ονομάζεται "κανόνες").

ο debhelper η έκδοση μοιάζει με:

#! / usr / bin / make -f πακέτο = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS)) CFLAGS + = -O2 endif #export DH_VERBOSE = : dh_testdir dh_clean rm -f κατασκευή - $ (MAKE) -i distclean install: δημιουργία dh_clean dh_installdirs $ (MAKE) προθέμα = $ (CURDIR) / debian / $ (package) / usr mandir = $ (πακέτο) / usr / share / man infodir = $ (CURDIR) / debian / $ (πακέτο) / usr / share / info install build: ./configure --prefix = / usr $ (CC) "CFLAGS =" $ (CFLAGS) "

touch build binary-indep: install # Δεν υπάρχουν αρχεία ανεξάρτητα από την αρχιτεκτονική που θα φορτωθούν # δημιουργήθηκαν από αυτό το πακέτο. Αν υπήρχαν κάποια θα γινόταν εδώ. binary-arch: εγκαταστήστε dh_testdir -a dh_testroot -a dh_installdocs -a ΝΕΑ dh_installchangelogs -a ΑλλαγήLog dh_strip -a dh_compress -a dh_fixperms -α dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -μια δυαδική: binary-indep δυαδική- arch .PHONY: δυαδικό δυαδικό-τόξο δυαδικό-indep καθαρό checkroot

Παρατηρήστε ότι οι εργασίες όπως η δοκιμή αν βρίσκεστε στον σωστό κατάλογο (dh_testdir), βεβαιώνοντας ότι δημιουργείτε το πακέτο με προνόμια root (dh_testroot), εγκατάσταση τεκμηρίωσης (dh_installdocs και dh_installchangelogs) και καθαρισμός μετά την κατασκευή (dh_clean) χειρίζονται αυτόματα. Πολλά πακέτα πολύ πιο περίπλοκα από ό, τι γεια σας έχω κανόνες αρχεία όχι μεγαλύτερο, επειδή debhelper τα χειρόγραφα χειρίζονται τα περισσότερα από τα καθήκοντα. Για μια πλήρη λίστα debhelper σεναρίων, ανατρέξτε στην ενότητα με τίτλο "Λίστα debhelper scripts ", είναι επίσης καλά τεκμηριωμένα στις αντίστοιχες άνδρας σελίδες. Είναι μια χρήσιμη άσκηση για να διαβάσετε τη σελίδα του ανθρώπου (είναι καλά γραμμένη και όχι μακρά) για κάθε βοηθητικό σενάριο που χρησιμοποιήθηκε στα παραπάνω κανόνες αρχείο.