Monday, July 18, 2011

rpm packaging diary part1

Είπα και γω να κανω κατι χρήσιμο για την κοινότητα του fedora και εψαχνα μια ευκαιρια. Ενδιαφερόμουν για rpm packaging. Πριν απο αυτο βεβαια ξεκινησα σιγα σιγα να διαβαζω το guide στο site του fedoraproject. Ότι πρέπει για να ξεκινήσει ισως κάποιος. Το αρχικό μου ερώτημα ήταν ποιό πακέτο να κάνω packaging. Στα πρώτα κεφάλαια του guide δίνει λιστες με υπάρχων πακέτα για τη διανομή. Εκεί θα πρέπει ουσιαστικά να ελέγξεις οταν φτιαξεις το δικό σου για να μην κανει supply ενα ήδη πακεταρισμο προγραμμα. Δεν είχα τιποτα λοιπόν στο μυαλό μου που να μπορούσα να κανω package.

Γενική συμβουλη είναι κάνε κατι με το οποίο ήδη χρησιμοποιείς και δεν βρίσκεις στα repos. Εμένα αυτό που μου άνοιξε την πόρτα για να κάνω την πρωτη μου απόπειρα ήταν ένα bug στο gtranslator (bug 716320). To bug λοιπον διορθονώταν λοιπόν ή τουλάχιστον ετσι δείχνει με την εγκατάσταση δυο επιπλέον πακέτων. Αυτό ηταν. Λέω γιατί να μην φτιάξω το πακέτο ξανά με τα συγκεκριμένα dependencies.

Ακολουθώντας τις οδηγίες απο το guide που αναφεραμε παραπανω κατέβασα το gtranslator-1.9.11-3.f14.src.rpm. Δεν σκοπεύω να μπω σε πολλες λεπτομέρειες αφού αρχικος σκοπός για αυτό το αρθρό ήταν να δώσει μια εμπνευση για αρχάριους που δεν ξέρουν που να βρουν πακέτα να δοκιμάσουν.
Γι' αυτο παρακάτω ειναι οι εντολες χωρις επεξηγηση που ακολούθησαν:

Σαν απλος user
rpm -ivh gtranslator-1.9.11-3.f14.src.rpm


Κατώπιν ανοιξα το αρχείο SPECS/gtranslator.spec για επεξεργασία

και

και build
rpm -v -bb SPECS/gtranslator.spec


Αυτο θα δημιουργήσει ενα binary RPM το οποίο μπορόυμε τωρα να εγκαταστήσουμε είτε με rpm -i ειτε με το yum localinstall.
Επίσης θα πρέπει να βρείτε κατω απο το φάκελο RPMS ενα i386 φακελο που θα περιέχει επίσης το καινούργιο rpm.

Σε περίπτωση σφαλμάτων το rpm δεν δημιουργείται και πάμε πάλι πίσω στο spec αρχειο. Μια πιθανότητα είναι να μην υπάρχουν εγκατεστημένα τα dependencies στο συστημα κατι που θα εμφανιστεί στο output της τελευταίας εντολης.

Καλή αρχή, newbies...