Διαχείριση πακέτων Linux με Yum, RPM, Apt, Dpkg, Aptitude και Zypper - Μέρος 9


Τον περασμένο Αύγουστο, το Ίδρυμα Linux ανακοίνωσε την πιστοποίηση LFCS (Linux Foundation Certified Sysadmin), μια λαμπερή ευκαιρία για τους διαχειριστές συστημάτων παντού να αποδείξουν, μέσω μιας εξέτασης βάσει απόδοσης, ότι είναι σε θέση να επιτύχουν στη συνολική λειτουργική υποστήριξη για συστήματα Linux. Ένας πιστοποιημένος Sysadmin από το Linux Foundation διαθέτει την τεχνογνωσία για να εξασφαλίσει αποτελεσματική υποστήριξη συστήματος, αντιμετώπιση προβλημάτων και παρακολούθηση πρώτου επιπέδου, συμπεριλαμβανομένης της κλιμάκωσης του ζητήματος, όταν χρειάζεται, σε ομάδες υποστήριξης μηχανικής.

Παρακολουθήστε το παρακάτω βίντεο που εξηγεί το Πρόγραμμα πιστοποίησης του Linux Foundation.

Αυτό το άρθρο είναι ένα Μέρος 9 μιας μεγάλης σειράς 10 οδηγιών, σήμερα σε αυτό το άρθρο θα σας καθοδηγήσουμε σχετικά με τη Διαχείριση πακέτων Linux, που απαιτούνται για την εξέταση πιστοποίησης LFCS.

Διαχείριση πακέτων

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

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

Πώς λειτουργούν τα συστήματα διαχείρισης πακέτων

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

Συστήματα Συσκευασίας

Σχεδόν όλο το λογισμικό που είναι εγκατεστημένο σε ένα σύγχρονο σύστημα Linux θα βρίσκεται στο Διαδίκτυο. Μπορεί είτε να παρέχεται από τον προμηθευτή διανομής μέσω κεντρικών αποθετηρίων (τα οποία μπορεί να περιέχουν πολλές χιλιάδες πακέτα, καθένα από τα οποία έχει κατασκευαστεί, δοκιμαστεί και συντηρηθεί ειδικά για τη διανομή) είτε είναι διαθέσιμο σε πηγαίο κώδικα που μπορεί να ληφθεί και να εγκατασταθεί με μη αυτόματο τρόπο .

Επειδή διαφορετικές οικογένειες διανομής χρησιμοποιούν διαφορετικά συστήματα συσκευασίας (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm κατασκευασμένο ειδικά για openSUSE), ένα πακέτο που προορίζεται για μια διανομή δεν θα είναι συμβατό με μια άλλη διανομή. Ωστόσο, οι περισσότερες διανομές είναι πιθανό να εμπίπτουν σε μία από τις τρεις οικογένειες διανομής που καλύπτονται από την πιστοποίηση LFCS.

Εργαλεία πακέτων υψηλού και χαμηλού επιπέδου

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

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

Ας δούμε την περιγραφή των εργαλείων χαμηλού και υψηλού επιπέδου.

Το dpkg είναι ένας διαχειριστής πακέτων χαμηλού επιπέδου για συστήματα που βασίζονται στο Debian. Μπορεί να εγκαταστήσει, να αφαιρέσει, να παρέχει πληροφορίες και να δημιουργήσει πακέτα *.deb, αλλά δεν μπορεί να πραγματοποιήσει αυτόματη λήψη και εγκατάσταση των αντίστοιχων εξαρτήσεων τους.

Διαβάστε περισσότερα: Παραδείγματα εντολών 15 dpkg

Το apt-get είναι ένας διαχειριστής πακέτων υψηλού επιπέδου για το Debian και τα παράγωγα, και παρέχει έναν απλό τρόπο ανάκτησης και εγκατάστασης πακέτων, συμπεριλαμβανομένης της ανάλυσης εξάρτησης, από πολλές πηγές χρησιμοποιώντας τη γραμμή εντολών. Σε αντίθεση με το dpkg, το apt-get δεν λειτουργεί απευθείας με αρχεία *.deb, αλλά με το σωστό όνομα του πακέτου.

Διαβάστε περισσότερα: 25 Παραδείγματα Εντολών apt-get

Το aptitude είναι ένας άλλος διαχειριστής πακέτων υψηλού επιπέδου για συστήματα που βασίζονται στο Debian και μπορεί να χρησιμοποιηθεί για την εκτέλεση εργασιών διαχείρισης (εγκατάσταση, αναβάθμιση και αφαίρεση πακέτων, επίσης διαχείριση ανάλυσης εξάρτησης αυτόματα) με γρήγορο και εύκολο τρόπο . Παρέχει την ίδια λειτουργικότητα με το apt-get και πρόσθετες, όπως η παροχή πρόσβασης σε πολλές εκδόσεις ενός πακέτου.

Το rpm είναι το σύστημα διαχείρισης πακέτων που χρησιμοποιείται από διανομές συμβατές με το Linux Standard Base (LSB) για χειρισμό πακέτων χαμηλού επιπέδου. Ακριβώς όπως το dpkg, μπορεί να ρωτήσει, να εγκαταστήσει, να επαληθεύσει, να αναβαθμίσει και να αφαιρέσει πακέτα και χρησιμοποιείται πιο συχνά από διανομές που βασίζονται στο Fedora, όπως το RHEL και το CentOS.

Διαβάστε περισσότερα: Παραδείγματα εντολών 20 rpm

Το yum προσθέτει τη λειτουργικότητα των αυτόματων ενημερώσεων και διαχείρισης πακέτων με διαχείριση εξαρτήσεων σε συστήματα που βασίζονται σε RPM. Ως εργαλείο υψηλού επιπέδου, όπως το apt-get ή το aptitude, το yum λειτουργεί με αποθετήρια.

Διαβάστε περισσότερα: Παραδείγματα εντολών 20 ετών

Κοινή χρήση εργαλείων χαμηλού επιπέδου

Οι πιο συχνές εργασίες που θα κάνετε με εργαλεία χαμηλού επιπέδου είναι οι εξής:

1. Εγκατάσταση πακέτου από μεταγλωττισμένο αρχείο (*.deb ή *.rpm).

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

dpkg -i file.deb 		[Debian and derivative]
rpm -i file.rpm 		[CentOS / openSUSE]

Σημείωση: Μην επιχειρήσετε να εγκαταστήσετε στο CentOS ένα αρχείο *.rpm που δημιουργήθηκε για το openSUSE ή το αντίστροφο!

2. Αναβάθμιση πακέτου από μεταγλωττισμένο αρχείο

Και πάλι, θα αναβαθμίσετε ένα εγκατεστημένο πακέτο μόνο όταν δεν είναι διαθέσιμο στα κεντρικά αποθετήρια.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. Καταχώριση εγκατεστημένων πακέτων

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

dpkg -l 		[Debian and derivative]
rpm -qa 		[CentOS / openSUSE]

Εάν θέλετε να μάθετε εάν είναι εγκατεστημένο ένα συγκεκριμένο πακέτο, μπορείτε να διοχετεύσετε την έξοδο των παραπάνω εντολών στο grep, όπως εξηγείται στο χειρισμό αρχείων στο Linux – Μέρος 1 αυτής της σειράς. Ας υποθέσουμε ότι πρέπει να επαληθεύσουμε εάν το πακέτο mysql-common είναι εγκατεστημένο σε ένα σύστημα Ubuntu.

dpkg -l | grep mysql-common

Ένας άλλος τρόπος για να προσδιορίσετε εάν έχει εγκατασταθεί ένα πακέτο.

dpkg --status package_name 		[Debian and derivative]
rpm -q package_name 			[CentOS / openSUSE]

Για παράδειγμα, ας μάθουμε εάν το πακέτο sysdig είναι εγκατεστημένο στο σύστημά μας.

rpm -qa | grep sysdig

4. Μάθετε ποιο πακέτο εγκατέστησε ένα αρχείο
dpkg --search file_name
rpm -qf file_name

Για παράδειγμα, ποιο πακέτο εγκατέστησε το pw_dict.hwm;

rpm -qf /usr/share/cracklib/pw_dict.hwm

Κοινή χρήση εργαλείων υψηλού επιπέδου

Οι πιο συχνές εργασίες που θα κάνετε με εργαλεία υψηλού επιπέδου είναι οι εξής.

1. Αναζήτηση πακέτου

Η ενημέρωση aptitude θα ενημερώσει τη λίστα των διαθέσιμων πακέτων και η aptitude search θα πραγματοποιήσει την πραγματική αναζήτηση για το package_name.

aptitude update && aptitude search package_name 

Στην επιλογή αναζήτησης σε όλα, το yum θα αναζητήσει το όνομα_package όχι μόνο στα ονόματα πακέτων, αλλά και στις περιγραφές πακέτων.

yum search package_name
yum search all package_name
yum whatprovides “*/package_name”

Ας υποθέσουμε ότι χρειαζόμαστε ένα αρχείο του οποίου το όνομα είναι sysdig. Για να γνωρίζουμε αυτό το πακέτο που θα πρέπει να εγκαταστήσουμε, ας τρέξουμε.

yum whatprovides “*/sysdig”

Το whatprovides λέει στο yum να πραγματοποιήσει αναζήτηση στο πακέτο και θα παράσχει ένα αρχείο που ταιριάζει με την παραπάνω τυπική έκφραση.

zypper refresh && zypper search package_name		[On openSUSE]
2. Εγκατάσταση πακέτου από αποθετήριο

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

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Αφαίρεση συσκευασίας

Η επιλογή κατάργηση θα απεγκαταστήσει το πακέτο, αλλά θα αφήσει ανέπαφα τα αρχεία διαμόρφωσης, ενώ η εκκαθάριση θα διαγράψει κάθε ίχνος του προγράμματος από το σύστημά σας.
# aptitude remove/purge package_name
# yum erase package_name

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

zypper remove -package_name 

Οι περισσότεροι (αν όχι όλοι) διαχειριστές πακέτων θα σας ζητήσουν, από προεπιλογή, εάν είστε βέβαιοι ότι θα προχωρήσετε στην απεγκατάσταση πριν την εκτελέσετε πραγματικά. Επομένως, διαβάστε προσεκτικά τα μηνύματα στην οθόνη για να αποφύγετε περιττά προβλήματα!

4. Εμφάνιση πληροφοριών σχετικά με ένα πακέτο

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

aptitude show birthday 
yum info birthday
zypper info birthday

Περίληψη

Η διαχείριση πακέτων είναι κάτι που απλά δεν μπορείτε να σαρώσετε κάτω από το χαλί ως διαχειριστής συστήματος. Θα πρέπει να είστε έτοιμοι να χρησιμοποιήσετε τα εργαλεία που περιγράφονται σε αυτό το άρθρο αμέσως. Ελπίζουμε να σας φανεί χρήσιμο στην προετοιμασία σας για την εξέταση LFCS και για τις καθημερινές σας εργασίες. Μη διστάσετε να αφήσετε τα σχόλια ή τις ερωτήσεις σας παρακάτω. Θα χαρούμε πολύ να επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.