Για παράδειγμα σκεφτείτε ένα metapackage "meta-text-mode-development" το οποίο εγκαθιστά π.χ., τα build-essential, gdb, autoconf, automake, cmake, strace, ltrace, ctags, git, subversion, mercurial κλπ κλπ κλπ
Την επόμενη φορά που θα βρεθείτε σε ένα "vanilla" σύστημα και θα θέλετε να το κάνετε χρήσιμο, το μόνο που θα χρειάζεται είναι ένα
και τελειώσαμε :)sudo apt-get install meta-text-mode-development
Δυστυχώς αυτό όμως μπορεί να γίνει μόνο αν το metapackage αυτό είναι σε κάποιο apt repository στο οποίο έχουν πρόσβαση όλα σας τα μηχανήματα. Εδώ λοιπόν έρχεται η ubuntu να βοηθήσει με το launchpad, και τη δυνατότητα που παρέχει αυτό για "personal package archives" , δηλαδή ουσιαστικά 2GB δωρεάν web space προσβάσιμο από το apt καθώς και τον υπολογιστικό χρόνο για την μεταγλώττιση των πακέτων σας.
Η ιδέα είναι λοιπόν απλή. Κάθε φορά που θέλουμε ένα σύνολο πακέτων που μαζί παρέχουν μία ενιαία λειτουργία, φτιάχνουμε ένα metapackage, το βάζουμε στο ppa μας και μετά σε κάθε καινούργιο ubuntu μηχάνημα που θέλουμε να αξιοποιήσουμε το metapackage κάνουμε το αντίστοιχο του:
sudo add-apt-repository ppa:pktoss/ppa
sudo apt-get update
Και πλέον όλα μας τα metapackages είναι στη διάθεσή μας :)
Φτιάχνοντας τα δικά μας metapackages
Όλα καλά και ωραία, αλλά αν δεν υπάρχει κάποιος σχετικά εύκολος / γρήγορος τρόπος για να φτιάχνουμε metapackages τότε το όλο εγχείρημα δε μας προσφέρει και πολλά. Ευτυχώς για εμάς, η debian έχει και πάλι (σχεδόν) φροντίσει γι αυτό.
Και το όνομα του πακέτου-σωτήρα μας είναι: equivs. (sudo apt-get install equivs για εγκατάσταση)
Οι χρήσεις αυτού του μικροσκοπικού αλλά θαυματουργού πακέτου ξεπερνούν τα όρια αυτού του άρθρου, αλλά αυτό που μας ενδιαφέρει είναι ότι μας επιτρέπει να φτιάχνουμε metapackages εύκολα.
Το μόνο που χρειάζεται είναι η κατασκευή ενός αρχείου κειμένου όπως το παρακάτω:
Section: misc
Priority: optional
Suite: maverick
Standards-Version: 3.6.2
Package: pkt-meta-textmath
Version: 1.1
Maintainer: Pantelis Koukousoulas <pktoss@gmail.com>
Depends: maxima, yacas, gnuplot, bc
Architecture: all
Description: Text-mode math tools
Text-mode packages for mathematics.
Σώζουμε το παραπάνω ως pkt-meta-textmath και τρέχοντας
μας φτιάχνει το .deb πακέτο του metapackage. Αν και το πακέτο αυτό είναι ήδη χρήσιμο (π.χ., αν το εγκαταστήσουμε μέσω του gdebi θα εγκαταστήσει τα dependencies) δεν έχουμε πετύχει ακόμα αυτό που θέλουμε, δηλαδή να έχουμε το πακέτο σε μορφή debian source ώστε να μπορούμε να το κάνουμε upload στο ppa μας.equivs-build pkt-meta-textmath
Δυστυχώς για να το πετύχουμε αυτό, χρειάζεται μια "ψιλοεπεμβασούλα" (patch) στο equivs, το οποίο εκκρεμεί κάποιο καιρό τώρα. Εντωμεταξύ, ο ευκολότερος τρόπος είναι να κάνουμε fork το equivs (ναι, fork, γιατί όχι, welcome to open source / free software :P ).
Το αποτέλεσμα είναι το equivs-ppa που μπορείτε να το βρείτε στο ppa μου και μπορείτε να το εγκαταστήσετε με
sudo add-apt-repository ppa:pktoss/ppa
sudo apt-get update
sudo apt-get install equivs-ppa
ή (αν δε θέλετε να εγκαταστήσετε το ppa) με
Χρησιμοποιώντας το equivs-ppa, η δημιουργία ενός metapackage γίνεται κάπως έτσι:sudo add-apt-repository ppa:pktoss/ppa
sudo apt-get update
sudo apt-get install equivs-ppa
Εύκολη δημιουργία, εύκολη εγκατάσταση, πρόσβαση από παντού,cp template my-metapackage # το template έχει κάτι σαν το παραπάνω κείμενο
edit my-metapackage # βάζετε το σωστό όνομα, dependencies, περιγραφή
mkdir build
cd build
equivs-ppa-build -S ../my-metapackage
dput ppa:pktoss/ppa *.changes # το δικό σας username αντί για pktoss
rm -rf build
ευχαριστώ πολύ, Ubuntu :)
Παντελής
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου