Μερικές φορές,κάποιοι θέλουν να χρησιμοποιήσουν μία συγκεκριμένη έκδοση ενός προγράμματος, διαθέσιμου μόνο σε πηγαίο κώδικα, χωρίς πακέτο Debian. Αλλά το σύστημα πακέτων μπορεί να αποτελεί πρόβλημα γι΄ αυτό.Υποθέστε ότι θέλετε να μεταγλωττίσετε μία νέα έκδοση του εξυπηρετητή ηλεκτρονικού ταχυδρομείου σας. Όλα βαίνουν καλώς, αλλά πολλά πακέτα στο Debian εξαρτώνται από ένα MTA (Mail Transport Agent). Αφού εγκαταστήσατε κάτι που μεταγλωττίσατε εσείς οι ίδιοι, το σύστημα πακέτων δεν γνωρίζει για αυτό.
Εδώ μπαίνει στο παιγνίδι η εντολή equivs
. Για να τη
χρησιμοποιήσετε, εγκαταστήστε το πακέτο με αυτό το όνομα. Αυτό που κάνει είναι
να δημιουργεί ένα άδειο πακέτο που έχει τη δυνατότητα να ικανοποιεί τις
εξαρτήσεις, κάνοντας το σύστημα πακέτων να πιστεύει ότι οι εξαρτήσεις είναι
ικανοποιημένες.
Πριν αρχίσουμε, είναι καλό να σας θυμήσουμε ότι υπάρχουν ασφαλέστεροι τρόποι να μεταγλωττίσετε ένα πρόγραμμα, ήδη πακεταρισμένο, για το Debian με διαφορετικές παραμέτρους, και δεν θα πρέπει να χρησιμοποιείτε την εντολή equivs για να αντικαταστήσετε τις εξαρτήσεις εαν δεν ξέρετε. Δείτε τον τομέα Δουλεύοντας με πακέτα κώδικα, Chapter 6 για περισσότερες πληροφορίες.
Ας συνεχίσουμε με το παράδειγμα του MTA. Μόλις εγκαταστήσατε το νέο
μεταγλωττισμένο postfix
, το οποίο συνεχίζει με την εγκατάσταση του
πακέτου mutt
. Ξαφνικά αντιλαμβάνεστε ότι το mutt
θέλει να εγκαταστήσει ένα άλλο MTA. Αλλά εσείς έχετε ήδη το δικό σας.
Πηγαίνετε σε κάποιο φάκελο (/tmp
, για παράδειγμα) και εκτελέστε:
# equivs-control name
Αντικαταστήστε το name με το όνομα του αρχείου ελέγχου που θέλετε να δημιουργήσετε. Το αρχείο θα δημιουργηθεί ώς εξής:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: <enter package name; defaults to equivs-dummy> Version: <enter version here; defaults to 1.0> Maintainer: <your name and email address; defaults to username> Pre-Depends: <packages> Depends: <packages> Recommends: <packages> Suggests: <package> Provides: <(virtual)package> Architecture: all Copyright: <copyright file; defaults to GPL2> Changelog: <changelog file; defaults to a generic changelog> Readme: <README.Debian file; defaults to a generic one> Extra-Files: <additional files for the doc directory, commaseperated> Description: <short description; defaults to some wise words> long description and info . second paragraph
Για να κάνουμε αυτό που θέλουμε πρέπει να το τροποποιήσουμε. Ρίξτε μια ματιά στη διαμόρφωση των πεδίων και στις περιγραφές τους, δεν υπάρχει λόγος να εξηγήσουμε το καθετί εδώ, ας κάνουμε ότι χρειάζεται:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: mta-local Provides: mail-transport-agent
Ναι, αυτό είναι όλο. Το πακέτο mutt
εξαρτάται από το πακέτο
mail-transport-agent
, που είναι ένα εικονικό πακέτο παρεχόμενο από
όλους τους MTA, μπορούσαμε απλά να ονομάσουμε το πακέτο
mail-transport-agent
, αλλά προτιμήσαμε να χρησιμοποιήσουμε το
σχήμα του εικονικού πακέτου, χρησιμοποιώντας την εντολή Provides.
Τώρα μένει μόνο να χτίσετε το πακέτο:
# equivs-build name dh_testdir touch build-stamp dh_testdir dh_testroot dh_clean -k # Add here commands to install the package into debian/tmp. touch install-stamp dh_testdir dh_testroot dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package `name' in `../name_1.0_all.deb'. The package has been created. Attention, the package has been created in the current directory,
Και εγκαταστήστε το αρχείο .deb που προκύπτει.
Όπως μπορείτε να δείτε, υπάρχουν αρκετοί τρόποι χρήσης της equivs
.
Μπορείτε να δημιουργήσετε ακόμα και ένα πακέτο my-favorites, που
εξαρτάται από τα προγράμματα που συνήθως κάνετε εγκατάσταση, για παράδειγμα.
Απλά ελευθερώστε τη φαντασία σας, αλλά να είστε προσεκτικοί.
Είναι σημαντικό να σημειώσετε ότι υπάρχουν παραδείγματα αρχείων ελέγχου στο
αρχείο /usr/share/doc/equivs/examples
. Δείτε τα.
Πολλοί χρήστες του Debian χρησιμοποιούν μία μόνο τοπικοποίηση. Ένας Βραζιλιάνος, χρήστης Debian για παράδειγμα, χρησιμοποιεί συνήθως την τοπικοποίηση pt_BR και δεν ενδιαφέρεται για την es.
Το πακέτο localepurge
είναι χρήσιμο για αυτούς τους χρήστες. Θα
ελευθερώσετε πολύ χώρο έχοντας μόνο τις τοπικοποιήσεις που χρησιμοποιείτε
πραγματικά. Απλά χρησιμοποιήστε την εντολή apt-get install
localepurge.
Η ρύθμιση είναι εύκολη, οι ερωτήσεις του debconf οδηγούν το χρήστη βήμα- βήμα. Απλά να είστε προσεκτικοί στην απάντηση της πρώτης ερώτησης, αφού λάθος απαντήσεις μπορεί να οδηγήσουν στην αφαίρεση όλων των αρχείων τοπικοποιήσεων, ακόμα και αυτών που χρησιμοποιείτε. Ο μόνος τρόπος να επανακτήσετε αυτά τα αρχεία είναι να επανεγκαταστήσετε όλα τα πακέτα που τα παρέχουν.
Το apt-show-versions
είναι ένα πρόγραμμα που δείχνει ποιά πακέτα
στο σύστημα μπορούν να ανανεωθούν και άλλες χρήσιμες πληροφορίες. Η παράμετρος
-u εμφανίζει μία λίστα των αναβαθμίσιμων πακέτων:
$ apt-show-versions -u libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7 libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
APT HOWTO
1.8.5 - July 2003kov@debian.org
costas@step.gr