Στάδιο 5: εκκίνηση της διαδικασίας

Εικόνα: markos
Submitted by markos on Δευ, 10/01/2005 - 01:47

Το επόμενο βήμα είναι να προχωρήσουμε σε κάποιο editing των αρχείων ώστε να είναι δυνατόν το πακετάρισμα.

Για λόγους ελλείψεως χρόνου, θα αποφύγω τη συνήθη διαδικασία του trial and error, και θα θεωρήσω ότι μετά από αρκετά λάθη, έχουμε φτάσει στα σωστά αρχεία και απλώς θα εξηγήσω τη δομή τους.

Θα εξηγήσω ένα-ένα τα πιο σημαντικά από τα αρχεία αυτά, αλλά μπορείτε να τα δείτε στο αρχείο debian.tgz. Τα περιεχόμενα αυτής της αρχειοθήκης tar πρέπει να μπούν στον κατάλογο debian/.

Μόλις γίνει αυτό, μπορείτε να ξεκινήσετε τη διαδικασία πακεταρίσματος με διάφορους τρόπους:

Για απλό testing, μπορείτε να δώσετε:

fakeroot debian/rules target

όπου target ένα εκ των build, install και binary. Το build απλώς προχωρά στην όποια μεταγλώττιση είναι αναγκαία για την παραγωγή των εγκαταστάσιμων τμημάτων του πακέτου. Στην περίπτωσή μας πρόκειται για πακέτο που απαιτεί μεταγλώττιση κώδικα C++, όπότε έχει νόημα το building. Αλλά αν π.χ. το πακέτο μας αποτελείται από shell, Perl ή άλλου είδους scripts ή δεδομένα ανεξάρτητα αρχιτεκτονικής (π.χ. fonts) τότε το build μπορεί να είναι ένα dummy target.

Το install πραγματοποιεί μια εικονική εγκατάσταση του πακέτου μέσα σε ένα φάκελο που δημιουργείται μέσα στον debian/. Συνήθως, ο φάκελος αυτός έχει το όνομα του πακέτου, στην περίπτωσή μας kalbum. Αυτός θα περιέχει ένα ακριβές αντίγραφο των περιεχομένων του πακέτου. Αν λείπει κάτι από αυτόν τον φάκελο, θα λείπει και από το πακέτο, οπότε βεβαιωθείτε ότι ο φάκελος αυτός είναι οκ.

Το target binary είναι το τελευταίο στάδιο και είναι αυτό που πρακτικά δημιουργεί το τελικό πακέτο (το αρχείο .deb δηλαδή. Εδώ εκτελούνται διάφορες εργασίες οι οποίες περιγράφονται στο αρχείο debian/rules (περισσότερα για το αρχείο και τη δομή του σε λίγο.

Δύο άλλοι τρόποι να δημιουργήσετε το πακέτο, αλλά αυτό μάλλον όταν πρόκειται να το φτιάξετε στην τελική του μορφή, είναι με τη χρήση των εργαλείων dpkg-buildpackage και debuild. Για τις ακριβείς παραμέτρους συνιστάται να κοιτάξετε στις σελίδες man του κάθε εργαλείου, αλλά μπορούμε να δώσουμε τυπικούς τρόπους χρήσης:


dpkg-buildpackage -B -rfakeroot -us -uc

φτιάχνει μόνο το binary πακέτο, χωρίς το source, χρησιμοποιώντας το εργαλείο fakeroot, και χωρίς να υπογράφει ψηφιακά τα τελικά πακέτα με gpg.


dpkg-buildpackage -rfakeroot

φτιάχνει και τα source και τα binary πακέτα, χρησιμοποιώντας το εργαλείο fakeroot, και υπογράφοντας ψηφιακά τα τελικά πακέτα (source και binary) με gpg. Για την ακρίβεια, υπογράφει το αρχείο περιγραφής του πακέτου πηγής, με κατάληξη .dsc και το αρχείο αλλαγών με κατάληξη .changes.


debuild -rfakeroot

ότι ακριβώς και η προηγούμενη εντολή αλλά επιπλέον τρέχει και το lintian για πιστοποίηση ότι το πακέτο ακολουθεί το Debian Policy. Περισσότερα για το lintian σε επόμενη ενότητα.

Επίσης το debuild ελέγχει τις εξαρτήσεις για τη δημιουργία του πακέτου (τα build dependencies) προτού ξεκινήσει τη διαδικασία.

Τέλος, αν χρησιμοποιήσετε το debuild θα έχετε το πολύ θετικό πλεονέκτημα ότι θα καταγράψει σε ένα αρχείο για μελλοντικό διάβασμα όλη τη διαδικασία κατασκευής.
Δείτε το αρχείο καταγραφής kalbum_0.8.0-1_i386.build για το συγκεκριμένο πακέτο.