Το σύστημα APT

Εικόνα: markos
Submitted by markos on Δευ, 05/03/2007 - 01:28

Έχουμε ήδη αναφέρει ότι για να εγκαταστήσουμε ένα πακέτο λογισμικού με την εντολή dpkg, θα πρέπει πρώτα να το μεταφέρουμε με κάποιον τρόπο στον υπολογιστή μας μαζί με όλες τις εξαρτήσεις του και ύστερα να το εγκαταστήσουμε, αφού φυσικά εγκαταστήσουμε πρώτα τις εξαρτήσεις του. Κάτι τέτοιο είναι αρκετά χρονοβόρο, κουραστικό και επιρρεπές σε λάθη.

Για το σκοπό αυτό, δημιουργήθηκε το εργαλείο APT (Advanced Package Tool) το οποίο αυτοματοποιήσε όλες τις διαδικασίες εγκατάστασης ενός πακέτου και πλέον μπορεί να γίνει ολόκληρη εγκατάσταση ή ανανέωση συστήματος με μια μόνο εντολή!

Η ευκολία που παρέχει το APT έγκειται στο ότι αναλαμβάνει όλα τα στάδια της εγκατάστασης, από τη μεταφόρτωση του πακέτου και όλων των εξαρτήσεων από μία ή περισσότερες πηγές που θα του ορίσουμε, την εγκατάσταση των πακέτων με τη σωστή σειρά προτεραιότητας, καθώς και τη μετέπειτα ρύθμιση του κάθε πακέτου.

Για τη χρήση του συστήματος APT, υπάρχουν κατά κύριο λόγο τέσσερις εντολές: apt-setup, apt-cdrom, apt-cache και apt-get. Οι δύο πρώτες ρυθμίζουν τις πηγές των πακέτων του APT, η apt-cache προσφέρει τρόπους αναζήτησης πακέτων μέσα στην βάση δεδομένων του APT, ενώ η apt-get χρησιμοποιείται για τη μεταφόρτωση και εγκατάσταση των πακέτων.

Τη χρήση της apt-setup την είδαμε κατά την εγκατάσταση του Debian στο κεφ. 6 (σελ. ). Συνοπτικά αναφέρουμε ότι επιλέγετε τη λίστα των πιθανών πηγών πακέτων λογισμικού, από διευθύνσεις δικτυακών τόπων (URLs) σε μορφή HTTP ή FTP, από συστήματα αρχείων ακόμη και από CD-ROM. Στην τελευταία περίπτωση, η apt-setup εκτελεί την apt-cdrom. Τέλος, δίνεται η δυνατότητα χειροκίνητης καταχώρησης μιας πηγής.

Γενικά, δε χρειάζεται να εκτελείτε απευθείας την apt-cdrom, καθώς η apt-setup παρέχει την ίδια λειτουργία με πιο φιλικό τρόπο.

Το αρχείο sources.list

Το σύστημα APT διατηρεί τη λίστα με τις διαθέσιμες πηγές πακέτων λογισμικού στο αρχείο παραμετροποίησής του /etc/apt/sources.list. Αυτό το αρχείο τροποποιούν οι εντολές apt-cdrom και apt-setup όταν προστίθεται μια νέα πηγή. Όσον αφορά πηγές δικτύου, είναι δυνατή η πρόσθεσή τους χειροκίνητα στο αρχείο. Για τα CD είναι απαραίτητη η χρήση της εντολής apt-cdrom. Ιδού ορισμένες από τις προκαθορισμένες πηγές, όπως αυτές είναι καθορισμένες στο αρχείο sources.list:

deb http://ftp.de.debian.org/debian/ woody main non-free contrib
deb http://ftp.de.debian.org/debian/ woody main non-free contrib
deb http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free

Το πρώτο πεδίο μπορεί να είναι deb ή deb-src δηλώνοντας έτσι ότι η πηγή είναι πηγή έτοιμων μεταγλωττισμένων πακέτων για την αρχιτεκτονική του υπολογιστή μας, ή αντίστοιχα σε μορφή πηγαίου κώδικα, αν θέλουμε να τα κατασκευάσουμε μόνοι μας.
Το δεύτερο πεδίο είναι η διεύθυνση URL του δικτυακού τόπου (μέσω http/ftp) ή της διαδρομής αρχείων (π.χ. σε κάποιο σύστημα αρχείων) από όπου θα λαμβάνει τα πακέτα η εντολή apt-get. Για τις διαδρομές αρχείων θα πρέπει να χρησιμοποιηθεί το πρόθεμα file:. Σημειώστε ότι σε κάθε περίπτωση θα πρέπει να διατηρήσετε την ίδια ακριβώς δομή δέντρου αρχείων με μια επίσημη πηγή Debian, διαφορετικά τα πακέτα δε θα είναι προσβάσιμα από το σύστημα APT.

Ως τρίτο πεδίο δηλώνουμε την έκδοση της διανομής (π.χ. woody, testing, unstable) ή/και την υποομάδα (non-US, updates).
Τέλος, τα τελευταία πεδία ορίζουν τις ομάδες πακέτων, όπως τις αναφέραμε στο κεφ. 1. Υπάρχουν τρεις ομάδες πακέτων, η κύρια ομάδα (main), η συνεισφερόμενη (contrib) και η ομάδα μή ελεύθερου λογισμικού (non-free).

Αναζήτηση με την apt-cache

Όσον αφορά την apt-cache, αυτή είναι ένας πιο εύκολος τρόπος να αναζητήσουμε διαθέσιμα πακέτα στο Debian, αν και έχει και άλλες χρήσεις. Είναι πιο εύκολο να δούμε τη χρήση της με ένα παράδειγμα. Ας υποθέσουμε ότι χρειαζόμαστε ένα πρόγραμμα που να μπορεί να απεικονίσει μετεωρολογικά δεδομένα (!) αλλά δε ξέρουμε ποιο ή ακόμη αν υπάρχει κάτι τέτοιο στο Debian.

# apt-cache search weather visual
vis5d - Visualizes data made by numerical weather models etc.
vis5d-doc - Documentation for the Vis5D visualization system

Βλέπουμε ότι όντως υπάρχει κάποιο πακέτο vis5d, μαζί με το πακέτο οδηγιών του. Μπορούμε να μάθουμε πληροφορίες για αυτό το πακέτο και να δούμε αν ταιριάζει στις ανάγκες μας:

# apt-cache show vis5d
Package: vis5d
Priority: optional
Section: science
Installed-Size: 6984
Maintainer: Torsten Landschoff <torsten@debian.org>
Architecture: i386
Version: 5.2abeta5-3
Depends: libc6 (>= 2.2.4-4), libgl1, netcdfg3 (>= 3.5.0-1), xlibs (>> 4.1.0)
Suggests: vis5d-doc
Filename: pool/main/v/vis5d/vis5d_5.2abeta5-3_i386.deb
Size: 1222796
MD5sum: e860cc618efc77a48204d2727263cf3a
Description: Visualizes data made by numerical weather models etc.
 Vis5D is a software system for visualizing data made by
 numerical weather models and similar sources.  Vis5D works on
 data in the form of a five-dimensional rectangle.
 .
 The Vis5D system includes the vis5d visualization program,
 several programs for managing and analyzing five-dimensional data
 grids, and instructions and utilities for converting your data
 into its file format.

Εγκατάσταση με την apt-get

Από ό,τι βλέπουμε το πρόγραμμα ίσως να είναι αυτό που χρειαζόμαστε. Δε μένει παρά να το εγκαταστήσουμε για να το δοκιμάσουμε. Αν χρησιμοποιούμε κάποια πηγή πακέτων λογισμικού στο Internet, θα πρέπει να είμαστε συνδεδεμένοι για να μπορούμε να τη χρησιμοποιήσουμε. Για παράδειγμα αν στην εγκατάσταση ρυθμίσαμε κάποιο είδος σύνδεσης PPP, μπορούμε να την ενεργοποιήσουμε ως εξής (
είναι το όνομα του παροχέα που έχουμε δηλώσει):

# pon <provider>
# apt-get install vis5d vis5d-doc
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  vis5d vis5d-doc
0 packages upgraded, 2 newly installed, 0 to remove and 16  not upgraded.
Need to get 4893kB/4893kB of archives. After unpacking 10.9MB will be used.
Do you want to continue? [Y/n]
Get:1 http://ftp.de.debian.org testing/main vis5d 5.2abeta5-3 [1223kB]
Get:2 http://ftp.de.debian.org testing/main vis5d-doc 5.2abeta5-3 [3670kB]
Fetched 4893kB in 10m49s (7533B/s)
Selecting previously deselected package vis5d.
(Reading database ... 107053 files and directories currently installed.)
Unpacking vis5d (from .../vis5d_5.2abeta5-3_i386.deb) ...
Selecting previously deselected package vis5d-doc.
Unpacking vis5d-doc (from .../vis5d-doc_5.2abeta5-3_all.deb) ...
Setting up vis5d (5.2abeta5-3) ...

Setting up vis5d-doc (5.2abeta5-3)

Η εντολή apt-get, όπως βλέπουμε αναλαμβάνει τη μεταφόρτωση των απαραίτητων αρχείων και μας πληροφορεί για το απαραίτητο μέγεθος μεταφόρτωσης (4.9 MB περίπου) και το τελικό μέγεθος των εγκατεστημένων αρχείων. Πριν προχωρήσει στη διαδικασία μας ρωτάει αν θέλουμε να συνεχίσουμε, ίσως π.χ. για να αλλάξουμε τα πακέτα προς εγκατάσταση.

Κατά τη διάρκεια της μεταφόρτωσης μας πληροφορεί για το συνολικό ποσοστό ολοκλήρωσης, για το ποσοστό ολοκλήρωσης του συγκεκριμένου αρχείου που μεταφορτώνεται, για την ταχύτητα μεταφοράς δεδομένων και για τον απομένοντα χρόνο.
Μετά την ολοκλήρωση, το apt-get πραγματοποιεί οποιεσδήποτε ρυθμίσεις πακέτων είναι απαραίτητες και εγκαθιστά τα αρχεία στις σωστές τους θέσεις. Αν υπάρχει κάποιο πρόβλημα, θα προσπαθήσει να δώσει όσον το δυνατόν πιο αναλυτικές οδηγίες για την επίλυσή του. Συνήθως, τα προβλήματα που παρουσιάζονται είναι λόγω ασυμβατότητας των εξαρτήσεων των πακέτων.

Έχει ολοκληρωθεί έτσι η εγκατάσταση του πακέτου μας και μπορούμε να το δοκιμάσουμε!

# vis5d LAMPS.v5d

(Το LAMPS.v5d βρίσκεται συμπιεσμένο στον κατάλογο /usr/share/doc/vis5d/examples).

Το συγκεκριμένο παράδειγμα είχε σκοπό απλώς να μας δείξει μια συνηθισμένη διαδικασία αναζήτησης και εγκατάστασης κάποιου εξειδικευμένου πακέτου. Το Debian περιέχει περίπου 8900 πακέτα και το πιθανότερο είναι ότι παρέχει κάποιο πακέτο για τις περισσότερες εργασίες, όσο εξειδικευμένες και αν είναι. Το σημαντικό είναι η σωστή αναζήτηση με τη χρήση του εργαλείου apt-cache.

Άλλες λειτουργίες

Πέρα από την αναζήτηση και την εγκατάσταση, τα εργαλεία apt-cache και apt-get δέχονται και άλλες επιλογές και εντολές, που ρυθμίζουν ανάλογα και την δράση των ίδιων των εργαλείων. Η σύνταξή τους ακολουθεί τους γνωστούς κανόνες:

apt-cache  [options] [command]
apt-get [options] [command]

Μερικές από τις πιο σημαντικές αναφέρονται στους ακόλουθους πίνακες:

Εντολή apt-cache

Επιλογές
Λειτουργία
-i
--important
Εμφανίζει μόνο τα σημαντικά πακέτα (αυτά που έχουν χαρακτηρισμό προτεραιότητας important).
-f
--full
Εμφανίζει όλα τα χαρακτηριστικά κάθε πακέτου.
-a
--all-versions
Εμφανίζει όλες τις διαθέσιμες εκδόσεις κάθε πακέτου.
--names-only Η αναζήτηση θα γίνει χρησιμοποιώντας μόνο τα ονόματα των πακέτων. Το προκαθορισμένο είναι να χρησιμοποιείται και το πεδίο της περιγραφής των πακέτων.
--all-names Σε συνδυασμό με την εντολή pkgnames, εμφανίζει όλα τα πακέτα, ακόμη και τα εικονικά.

Εντολές
Λειτουργία
show packagename Εμφανίζει πληροφορίες για το πακέτο packagename. Αντίστοιχο με τη dpkg --print-avail.
showpkg packagename Εμφανίζει πληροφορίες για το πακέτο packagename, με έμφαση στις πληροφορίες για τις εξαρτήσεις. Παρέχει τις ανάστροφες εξαρτήσεις (reverse depends) του πακέτου, δηλαδή μια λίστα με τα ονόματα των πακέτων που εξαρτώνται από το πακέτο packagename.
search pattern Αναζήτηση στο ευρετήριο των πακέτων χρησιμοποιώντας την κανονική παράσταση pattern.
depends packagename Εμφανίζει τα ονόματα των πακέτων που εξαρτώνται από το πακέτο packagename.
stats Εμφανίζει στατιστικά για το πλήθος των διαθέσιμων πακέτων.
pkgnames [prefix] Εμφανίζει τα ονόματα όλων των πακέτων. Αν δοθεί το prefix, η λίστα περιορίζεται στα πακέτα των οποίων το όνομα αρχίζει με prefix.
unmet Εμφανίζει τη λίστα με τις μη ικανοποιημένες εξαρτήσεις πακέτων στο σύστημα.

Και ακολουθεί ο αντίστοιχος πίνακας για την apt-get.

Επιλογές
Λειτουργία
-d
--download-only
Πραγματοποιεί μόνο τη μεταφόρτωση των πακέτων, όχι την εγκατάσταση.
-f
--fix-broken
Αν η apt-get διαπιστώσει ότι στο σύστημα υπάρχουν μη ικανοποιημένες εξαρτήσεις πακέτων (δηλαδή είναι εγκατεστημένο κάποιο πακέτο, χωρίς να είναι εγκατεστημένα και τα πακέτα από τα οποία εξαρτάται), θα προσπαθήσει να δράσει ανάλογα για να ικανοποιήσει αυτές τις εξαρτήσεις. Αυτό σημαίνει, είτε εγκατάσταση κάποιων επιπλέον πακέτων ή αν δεν είναι αυτό δυνατόν, απεγκατάσταση των προβληματικών πακέτων. Χρησιμοποιείται σε συνδυασμό με την install ή remove.
-m
--ignore-missing
--fix-missing
Αγνοεί τα προβλήματα από πακέτα που παρουσιάζουν πρόβλημα κατά την εγκατάσταση (κάποιο χαλασμένο αρχείο, προβληματική ρύθμιση, κλπ) και συνεχίζει με τα υπόλοιπα πακέτα.
--no-download Απενεργοποιεί οποιαδήποτε επιπλέον μεταφόρτωση και προσπαθεί να χρησιμοποιήσει τα ήδη μεταφορτωμένα πακέτα.
-s
--simulate
--just-print
--dry-run
--recon
--no-act
Προσποιείται τη διαδικασία χωρίς στην πραγματικότητα να κάνει κάποια εγκατάσταση/απεγκατάσταση στο σύστημα.
-u
--show-upgraded
Εμφανίζει και τα επιπλέον πακέτα που πρόκειται να εγκατασταθούν, συνήθως λόγω εξαρτήσεων.
--force-yes Επιβάλει την εγκατάσταση των πακέτων, ακόμη και αν δεν ικανοποιούνται οι απαραίτητες συνθήκες (εξαρτήσεις, συμβατότητα, αντικατάσταση υπαρχόντων αρχείων). Θα πρέπει να χρησιμοποιηθεί με την δέουσα προσοχή.
--purge Όταν διαγράφεται ένα πακέτο να γίνεται πλήρης διαγραφή και των αρχείων παραμετροποίησής του (configuration files).
Εντολές
Λειτουργία
update Ανανεώνει την βάση δεδομένων των πακέτων λογισμικού του Debian. Εκτός αν χρησιμοποιήτε κάποια στατική πηγή (π.χ. CD-ROM) θα πρέπει να ανανεώνετε συχνά τους καταλόγους των πακέτων που παρέχονται από κάθε πηγή, για να ενημερώνετε το σύστημά σας για τυχόν ανανεωμένο λογισμικό.
upgrade Πραγματοποιεί τη διαδικασία της ανανέωσης όλων των πακέτων για τα οποία υπάρχει διαθέσιμη ανανεωμένη έκδοση.
dist-upgrade Όπως συμβαίνει συνήθως με μια νέα έκδοση της διανομής, η ανανέωση είναι τόσο ριζική που δε μπορεί να επιτευχθεί μόνο με τη χρήση της apt-get upgrade. Η dist-upgrade χρησιμοποιεί έξυπνους μηχανισμούς για να γίνει η μετάβαση με όσο το δυνατόν λιγότερα προβλήματα.
install packages Εγκαθιστά τα πακέτα packages.
remove packages Απεγκαθιστά τα πακέτα packages.
source packages Μεταφορτώνει τον πηγαίο κώδικα των πακέτων packages. Χρησιμεύει όταν θέλετε να δημιουργήσετε μια τροποποιημένη έκδοση κάποιου υπάρχοντος πακέτου για δικές σας ανάγκες.
check Εκτελεί κάποια απλά διαγνωστικά σχετικά με μη ικανοποιούμενες εξαρτήσεις.

Οι apt-get και apt-cache παρέχουν και περισσότερες πιο προχωρημένες λειτουργίες. Για περισσότερες πληροφορίες θα πρέπει να ανατρέξετε στις οδηγίες των εντολών.

# man apt-get
# man apt-cache

0
Your rating: None