Πώς να χρησιμοποιήσετε το apt και το apt-cache στα συστήματα Debian


Εάν έχετε χρησιμοποιήσει ποτέ Debian ή διανομές που βασίζονται σε Debian όπως το Ubuntu ή το Linux Mint, τότε το πιθανότερο είναι ότι έχετε χρησιμοποιήσει το πακέτο apt σύστημα για εγκατάσταση ή κατάργηση λογισμικού.

Ακόμα κι αν δεν έχετε μπει ποτέ στη γραμμή εντολών, το υποκείμενο σύστημα που τροφοδοτεί το GUI του διαχειριστή πακέτων είναι το σύστημα APT.

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

Τι είναι το APT;

Το APT σημαίνει Advanced Package Tool, το οποίο εμφανίστηκε για πρώτη φορά στο Debian 2.1 το 1999. Ουσιαστικά, το APT είναι ένα σύστημα διαχείρισης για πακέτα dpkg, όπως φαίνεται με την επέκταση *.deb.

Σχεδιάστηκε όχι μόνο για τη διαχείριση πακέτων και ενημερώσεων αλλά και για την επίλυση των πολλών προβλημάτων εξάρτησης κατά την εγκατάσταση συγκεκριμένων πακέτων.

Ως οποιοσδήποτε χρησιμοποιούσε Linux εκείνες τις μέρες της πρωτοπορίας, ήμασταν όλοι πολύ εξοικειωμένοι με τον όρο «κόλαση εξάρτησης» όταν προσπαθούσαμε να μεταγλωττίσουμε κάτι από την πηγή ή ακόμα και όταν ασχολούμαστε με πολλά από τα μεμονωμένα αρχεία RPM του Red Hat.

Το APT έλυσε όλα αυτά τα ζητήματα εξαρτήσεων αυτόματα, καθιστώντας την εγκατάσταση οποιουδήποτε πακέτου, ανεξάρτητα από το μέγεθος ή τον αριθμό των εξαρτήσεων, μια εντολή μιας γραμμής.

Για όσους από εμάς εργαζόμασταν για ώρες σε αυτές τις εργασίες, αυτή ήταν μια από εκείνες τις στιγμές «ο ήλιος που χωρίζει τα σύννεφα» στις ζωές μας στο Linux!

Κατανόηση της ρύθμισης παραμέτρων APT

Το αρχείο /etc/apt/sources.list είναι ένα αρχείο διαμόρφωσης που καθορίζει τα αποθετήρια από τα οποία ο διαχειριστής πακέτων (apt) ανακτά και εγκαθιστά πακέτα λογισμικού. Αυτό το αρχείο περιέχει μια λίστα διευθύνσεων URL (Uniform Resource Locators) για τα αποθετήρια, μαζί με λεπτομέρειες όπως το κωδικό όνομα διανομής και τα στοιχεία.

Ακολουθεί ένα παράδειγμα για το πώς μπορεί να μοιάζει ένα αρχείο /etc/apt/sources.list:

sudo cat /etc/apt/sources.list

Όπως μπορείτε πιθανώς να συμπεράνετε από το αρχείο μου /etc/apt/sources.list, χρησιμοποιώ το Ubuntu 22.04 (ammy Jellyfish). Χρησιμοποιώ επίσης τρία αποθετήρια:

  • Κύριο αποθετήριο
  • Αποθετήριο Σύμπαντος
  • Αποθετήριο ασφαλείας Ubuntu

Η σύνταξη του αρχείου /etc/apt/sources.list είναι σχετικά απλή:

deb (url) release repository

Η συνοδευτική γραμμή είναι η αποθήκη του αρχείου προέλευσης. Ακολουθεί παρόμοια μορφή:

deb-src (url) release repository

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

Ωστόσο, υπάρχουν φορές που μπορεί να θέλετε να προσθέσετε αποθετήρια τρίτων. Θα πρέπει απλώς να τα εισαγάγετε χρησιμοποιώντας την ίδια μορφή και, στη συνέχεια, να εκτελέσετε την εντολή ενημέρωση:

sudo apt update

ΣΗΜΕΙΩΣΗ: Προσέξτε πολύ την προσθήκη αποθετηρίων τρίτων!!! Προσθέστε μόνο από αξιόπιστες και αξιόπιστες πηγές. Η προσθήκη dodgy repositories ή η ανάμειξη εκδόσεων μπορεί να μπερδέψει σοβαρά το σύστημά σας!

Ρίξαμε μια ματιά στο αρχείο μας /etc/apt/sources.list και τώρα ξέρουμε πώς να το ενημερώσουμε, οπότε τι ακολουθεί; Ας εγκαταστήσουμε μερικά πακέτα. Ας πούμε ότι εκτελούμε έναν διακομιστή και θέλουμε να εγκαταστήσουμε το WordPress.

Αρχικά, ας αναζητήσουμε το πακέτο:

sudo apt-cache search wordpress

Τι είναι το APT-Cache;

Η Apt-Cache είναι μια εντολή που απλώς υποβάλλει ερώτημα στην apt-cache. Μεταβιβάσαμε την παράμετρο αναζήτησης σε αυτήν, δηλώνοντας ότι θέλουμε να την αναζητήσουμε APT. Όπως μπορούμε να δούμε παραπάνω, η αναζήτηση για "wordpress " επέστρεψε πολλά πακέτα που σχετίζονται με τη συμβολοσειρά αναζήτησης με μια σύντομη περιγραφή κάθε πακέτου.

Από αυτό, βλέπουμε το κύριο πακέτο του «wordpress – weblog manager», και θέλουμε να το εγκαταστήσουμε. Αλλά δεν θα ήταν ωραίο να δούμε ακριβώς ποιες εξαρτήσεις θα εγκατασταθούν μαζί με αυτό; Το apt μπορεί επίσης να μας πει ότι:

sudo apt-cache showpkg wordpress

Αυτό μας δείχνει ότι το wordpress 5.8.3 είναι η έκδοση που θα εγκατασταθεί, το αποθετήριο από το οποίο θα εγκατασταθεί, οι εξαρτήσεις αντιστροφής και άλλα πακέτα από τα οποία εξαρτάται, καθώς και οι αριθμοί έκδοσής τους.

ΣΗΜΕΙΩΣΗ: (null σημαίνει ότι η έκδοση δεν έχει οριστεί και θα εγκατασταθεί η πιο πρόσφατη έκδοση στο χώρο αποθήκευσης.)

Τώρα, η πραγματική εντολή εγκατάστασης:

sudo apt install wordpress

Αυτή η εντολή θα εγκαταστήσει το WordPress-5.8.3 και όλες τις εξαρτήσεις που δεν είναι εγκατεστημένες αυτήν τη στιγμή.

Φυσικά, αυτό δεν είναι το μόνο που μπορείτε να κάνετε με το APT. Μερικές άλλες χρήσιμες εντολές apt είναι οι εξής:

ΣΗΜΕΙΩΣΗ: Είναι καλή πρακτική να εκτελείτε μια apt ενημέρωση πριν εκτελέσετε οποιαδήποτε σειρά εντολών apt. Θυμηθείτε ότι η ενημέρωση apt αναλύει το αρχείο /etc/apt/sources.list και ενημερώνει τη βάση δεδομένων του.

Η απεγκατάσταση ενός πακέτου είναι εξίσου εύκολη με την εγκατάσταση του πακέτου:

sudo apt remove wordpress

Δυστυχώς, η εντολή apt remove αφήνει άθικτα όλα τα αρχεία διαμόρφωσης. Για να τα αφαιρέσετε επίσης, θα θέλετε να χρησιμοποιήσετε το apt purge:

sudo apt purge wordpress

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

sudo apt –f install

Εφόσον το apt πραγματοποιεί λήψη όλων των αρχείων *.deb από το χώρο αποθήκευσης απευθείας στον υπολογιστή σας (τα αποθηκεύει στο /var/cache/apt/archives ) μπορεί να θέλετε να τα αφαιρείτε περιοδικά για να ελευθερώσετε χώρο στο δίσκο:

sudo apt clean

Αυτό είναι μόνο ένα μικρό κλάσμα των apt, apt-cache και ορισμένων από τις χρήσιμες εντολές του. Υπάρχουν ακόμα πολλά να μάθετε και να εξερευνήσετε μερικές πιο προηγμένες εντολές στο παρακάτω άρθρο.

Όπως πάντα, ρίξτε μια ματιά στις σελίδες man για ακόμα περισσότερες επιλογές. Μόλις εξοικειωθεί κάποιος με το apt, είναι δυνατό να γράψει καταπληκτικά σενάρια Cron για να διατηρήσει το σύστημα ενημερωμένο.