Linux πώς να μάθετε ποιος διαχειριστής πακέτων. Διαχειριστές πακέτων στο Linux. Διαχειριστές πακέτων που βασίζονται στο Debian

Χαιρετισμούς, αγαπητοί φίλοι, γνωστοί και άλλες προσωπικότητες.

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

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

Όλος αυτός ο τεράστιος σωρός πακέτων με το σωρό των εξαρτήσεών τους το ένα από το άλλο, που διαχειρίζεται ένας διαχειριστής πακέτων, είναι ακριβώς αυτό που συνθέτει τη διανομή Linux σας. Αλλά αυτό δεν είναι απλώς ένα μάτσο σκουπίδια, αλλά ένα τακτοποιημένο σύστημα που ονομάζεται - ta-dam! - αποθετήρια πακέτων λογισμικού. Ο κύκλος έκλεισε - επιστρέψαμε στην πρώτη ιδέα - τι είναι αποθετήριο :)

Λίγα λόγια για τις αποχρώσεις

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

  1. Δεν χρειάζεται να δελεάζετε τη μοίρα και να εγκαταστήσετε προγράμματα στο Linux, παρακάμπτοντας τον διαχειριστή πακέτων, με απλή μεταγλώττιση, αλλά διαχειριστής πακέτωνδεν θα ξέρει τίποτα για αυτά, γι' αυτό κατά την ενημέρωση του συστήματος ή των προγραμμάτων κινδυνεύετε να αντιμετωπίσετε περισσότερα προβλήματα από όσα φαντάζεστε. Εγκαταστήστε προγράμματα μόνο ως πακέτα.
  2. Δεν χρειάζεται να συνδέσετε εκείνα τα αποθετήρια για τα οποία έχετε μια πολύ ασαφή ιδέα. Για παράδειγμα, δεν υπάρχει ανάγκη σύνδεσης αποθετηρίων με τις λέξεις testing, debug και παρόμοιους όρους, επειδή αυτά τα αποθετήρια προορίζονται κυρίως για τους ίδιους τους προγραμματιστές διανομής και δεν είναι πάντα σταθερά.
  3. Μην συνδέετε όλα τα διαθέσιμα αποθετήρια στη σειρά, αυτό μπορεί επίσης να παίξει ένα σκληρό αστείο μαζί σας. Συνδέστε μόνο τα πιο απαραίτητα, δεν χρειάζεται να είστε άπληστοι :)

Για παράδειγμα, κατά την εγκατάσταση λειτουργικό σύστημαΤο Fedora από προεπιλογή έχει δύο αποθετήρια συνδεδεμένα ταυτόχρονα:

  • Fedora (πακέτα που ταιριάζουν σε οποιονδήποτε συνδυασμό CD ή DVD)
  • Ενημερώσεις (ενημερωμένα πακέτα νεότερα από το αποθετήριο Fedora)

Για κανονική λειτουργία, πρέπει να συνδέσετε ένα πρόσθετο αποθετήριο rpmfusion (πραγματικά δεν μπορείτε χωρίς αυτό), το οποίο θα παρέχει πρόσβαση σε προγράμματα που δεν θα μπορούσαν να συμπεριληφθούν στη διανομή λόγω περιορισμών αδειοδότησης (εφαρμογές που απαιτούνται, όπως π.χ. mp3, dvd, κ.λπ.) – αυτά περιλαμβάνουν ιδιόκτητα προγράμματα οδήγησης για παιχνίδια ATI και NVIDIA: Bub's Brothers, Secret Maryo Chronicles, UFO: Alien Invasion, Wörms of Prey, xrick, GLtronκαι πολλά, πολλά άλλα? εξομοιωτές: Commodore 64 emulator, καθώς και Commodore 8 bit, Amiga emulator, Nestopia, ZSNES και πολλά άλλα). Για να συνδέσετε αυτό το αποθετήριο, απλώς εισαγάγετε τις ακόλουθες εντολές στη γραμμή εντολών (τερματικό) ως υπερχρήστης ():
$ sudo rpm -ivh https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
$ sudo rpm -ivh https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Λάβετε υπόψη ότι το αποθετήριο rpmfusion χωρίζεται σε δύο μέρη: δωρεάν και μη δωρεάν. Το πρώτο περιέχει καθαρά δωρεάν προγράμματα με την έννοια του FSF, που διανέμονται σύμφωνα με την GPL και συμβατές άδειες χρήσης. Τα περιεχόμενα του δεύτερου, σε αντίθεση με το όνομα, είναι επίσης ως επί το πλείστον δωρεάν προγράμματα, αλλά υπόκεινται στους περιβόητους περιορισμούς διπλωμάτων ευρεσιτεχνίας ορισμένων κρατών (για παράδειγμα, κωδικοποιητές ήχου και βίντεο).

Το ίδιο ισχύει και για τον διαχειριστή πακέτων στο Fedora. Για κανονικά και άνετη δουλειάδιαχειριστής πακέτων (yum) στο Fedora, συνιστάται να συνδέσετε το πρόσθετο πρόσθετο fastestmirror. Αυτό το πρόσθετο είναι πολύ σημαντικό: δεν προσδιορίζει μόνο τον πλησιέστερο καθρέφτη, όπως κάνουν παρόμοια βοηθητικά προγράμματα από άλλα συστήματα διαχείρισης πακέτων, αλλά εγκαθιστά ακριβώς τον ταχύτερο καθρέφτη στο αυτή τη στιγμή– κατά χρόνο απόκρισης.
$ sudo yum εγκατάσταση yum-plugin-fastestmirror
Με λίγα λόγια, κάτι τέτοιο :)

Επίλογος

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

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

Όπως πάντα, εάν υπάρχουν ερωτήσεις, προσθήκες κ.λπ., θα χαρώ να τις δω στα σχόλια αυτού του υλικού.

ΥΣΤΕΡΟΓΡΑΦΟ. Ευχαριστώ ένα μέλος της ομάδας Pantera για την ύπαρξη αυτού του άρθρου.

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


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

Debian και τα σχετικά

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


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


$ aptitude install package #install package; $ aptitude πακέτο ασφαλούς αναβάθμισης #upgrade πακέτο; $ aptitude update #check and install updates; $ aptitude αφαίρεση πακέτου #remove πακέτο; $ aptitude purge πακέτο #διαγραφή ενός πλήρους πακέτου, όλων των δεδομένων και των ρυθμίσεων. $ apt-get dist-upgrade #upgrade OS, killer-feature και λειτουργεί! Πακέτο αναζήτησης $ aptitude #αναζήτηση πακέτου. $ apt-cache εξαρτάται από το πακέτο #package dependencies; $ apt-cache rdepends πακέτο #reverse εξαρτήσεις πακέτου.

Ορισμένες λειτουργίες είναι διαθέσιμες με το προαιρετικό dpkg MP.


$ dpkg -l #list εγκατεστημένα προγράμματα; $ dpkg -L πακέτο #λίστα αρχείων πακέτων

Θα συγκρίνουμε διαφορετικούς διαχειριστές πακέτων στο Linux. Μεταξύ όλων των διανομών Linux, ένα από τα πράγματα που μοιράζονται είναι η ανάγκη να είναι δυνατή η εγκατάσταση νέων πακέτων λογισμικού στο σύστημα. Ανάλογα με τη διανομή, διατίθενται διάφοροι διαχειριστές πακέτων, οι οποίοι επιτρέπουν στον χρήστη να εγκαταστήσει, να διαχειριστεί και να αφαιρέσει πακέτα εύκολα και γρήγορα. Οι διαχειριστές πακέτων είναι πολύ καλοί στη βελτιστοποίηση των εγκαταστάσεων, με κοινές θέσεις εγκατάστασης και διαμορφώσεις. Σε αυτό το άρθρο, θα συζητήσουμε τους διαφορετικούς διαθέσιμους διαχειριστές πακέτων, σε ποιες διανομές μπορούν να χρησιμοποιηθούν και τι κάνει το καθένα μοναδικό. Θα καλύψουμε τους διαχειριστές πακέτων που βασίζονται στο , τους βασικούς διαχειριστές πακέτων RedHat Enterprise Linux (RHEL) και άλλους προσαρμοσμένους διαχειριστές πακέτων.

Διαχειριστές πακέτων που βασίζονται στο Debian

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

Το Ubuntu και το Debian θεωρούνται ένα από τα πιο ευρέως χρησιμοποιούμενα καταναλωτικά λειτουργικά συστήματα Βασισμένο σε Linuxδιαθέσιμα στην αγορά σήμερα. Οι διαχειριστές πακέτων τους είναι γενικοί, με το σύστημα διαχείρισης πακέτων χαμηλότερου επιπέδου να είναι το "Dpkg", συντομογραφία του "Debian Package". Είναι ένας σκελετός λογισμικού διαχείρισης πακέτων, με εργαλεία για εγκατάσταση, αφαίρεση και κατασκευή πακέτων.

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

Ο Pacman είναι διαχειριστής πακέτων για Arch Linux. Το Pacman είναι το μόνο εργαλείο διαχείρισης πακέτων που βρίσκεται στο Arch, καθιστώντας το μη frontend. Το Arch Linux είναι ένα λειτουργικό σύστημα με ενημερώσεις που προστίθενται καθημερινά. Υπάρχουν μόνο μερικές εντολές με το pacman που έχουν σχεδιαστεί για την εύρεση, εγκατάσταση και αφαίρεση πακέτων. Αυτός ο διαχειριστής πακέτων μπορεί να συνδεθεί στο Διαδίκτυο και να αγοράσει τα πακέτα του από εκεί, καθιστώντας τον πιο φιλικό προς τον χρήστη. Ωστόσο, το pacman έχει σχεδιαστεί για να εγκαθιστά λογισμικό από το αποθετήριο Arch, καθιστώντας αδύνατη την εγκατάσταση από αποθετήρια τρίτων.

Το ABS, συντομογραφία του Arch Build System, είναι ένα σύστημα εργαλείων που έχουν σχεδιαστεί για να δημιουργούν πακέτα λογισμικού με δυνατότητα εγκατάστασης για το Arch Linux από πηγαίος κώδικας. Αποτελείται από πολλά εργαλεία που λειτουργούν μαζί για τη δημιουργία πακέτων - όλα αυτά τα εργαλεία είναι ανεξάρτητα προγράμματα, όπως makepkg, pacman, asp και ούτω καθεξής. Η μέθοδος δημιουργίας/εγκατάστασης ενός πακέτου χρησιμοποιώντας ABS είναι διαφορετική από μια κανονική διανομή Linux. Αντί να εγκαταστήσετε προμεταγλωττισμένα πακέτα, πρέπει να δημιουργήσετε ένα αρχείο PKGBUILD από τον κλάδο Svn ή Git χρησιμοποιώντας το πακέτο asp. Από εκεί χρησιμοποιείτε την εντολή makepkg, η οποία χρησιμοποιεί το αρχείο PKGBUILD για να κατεβάσει και να μεταγλωττίσει τον πηγαίο κώδικα για το σύστημά σας. Αυτό καθιστά το ABS μια ελαφρώς λιγότερο διαισθητική μέθοδο εγκατάστασης πακέτων στο Arch Linux. Έχει πολλές άλλες χρήσεις, όπως προσαρμογή υπαρχόντων πακέτων ή δημιουργία και εγκατάσταση του δικού σας πυρήνα.

Εγκαταστάτες πακέτωνΚάντε τις λειτουργίες με μεμονωμένα πακέτα ατομικές (ένα βήμα): αντί να αντιγράψει πολλά αρχεία και να εκτελέσει πολλά σενάρια, ο χρήστης εισάγει μια ενιαία εντολή "εγκατάσταση/απεγκατάσταση πακέτου". Ωστόσο, μια ατομική λειτουργία από τη σκοπιά του χρήστη - η προσθήκη ενός νέου στοιχείου στο σύστημα - μπορεί να αποτελείται από πολλές (ή και πολλές) λειτουργίες σε πακέτα. Ο Μεθόδιος έχει ήδη συναντήσει παρόμοια περίπτωση, μαθαίνοντας από τη δική σας εμπειρία την έννοια της «αλυσίδας εξάρτησης». Εδώ οι εγκαταστάτες πακέτων δεν μπορούν να διευκολύνουν τη δουλειά του χρήστη. Για να κάνετε τη διαδικασία εγκατάστασης, απεγκατάστασης και ενημέρωσης συστατικό του συστήματοςατομική, αναπτύχθηκαν διαχειριστές πακέτων. Ο διαχειριστής πακέτων είναι ένα πρόγραμμα που υπολογίζει ολόκληρο το σύμπλεγμα λειτουργιών σε μεμονωμένα πακέτα που πρέπει να εκτελεστούν για την εγκατάσταση/αφαίρεση ενός νέου στοιχείου (πακέτο) και το ίδιο εκκινεί πρόγραμμα εγκατάστασης πακέτωνόσες φορές χρειάζεται με τις απαιτούμενες παραμέτρους. Επιπλέον, ο διαχειριστής πακέτων αποθηκεύει πληροφορίες όχι μόνο για πακέτα που είναι ήδη εγκατεστημένα στο σύστημα, αλλά και για όλα εκείνα που είναι διαθέσιμα για εγκατάσταση από οποιοδήποτε μέσο ή μέσω του δικτύου (περισσότερα για αυτό στην ενότητα Package..Delivery).

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

Ο πιο διάσημος και δημοφιλής διαχειριστής πακέτων ονομάζεται APT ( ΕΝΑπροχωρημένος Π ackage Τοολ). Αρχικά αναπτύχθηκε ως μέρος της διανομής Debian και λειτουργούσε μόνο με το πρόγραμμα εγκατάστασης πακέτων dpkg και στη συνέχεια αναπτύχθηκε μια έκδοση για άλλες διανομές που λειτουργεί με rpm. Η διανομή Methodius χρησιμοποιεί επίσης APT.

Για να εγκαταστήσετε ένα πακέτο, πρέπει πρώτα να μάθετε για την ύπαρξή του. Υπάρχουν χιλιάδες, ακόμη και δεκάδες χιλιάδες πακέτα διαθέσιμα για κάθε διανομή Linux και η πλοήγηση σε αυτά δεν είναι εύκολη. Το APT παρέχει τη δυνατότητα αναζήτησης για αυτό που χρειάζεστε μεταξύ των διαθέσιμων πακέτων για αυτό, χρησιμοποιείται το βοηθητικό πρόγραμμα apt-cache. Κάθε πακέτο πρέπει να περιέχει μια σύντομη περίληψη (μία γραμμή) και μια σύντομη περιγραφή των πόρων που περιέχονται στο πακέτο (όχι περισσότερες από μερικές παραγράφους). Με την εντολή "αναζήτηση apt-cache υποσυμβολοσειρά» Το APT θα βρει και θα εμφανίσει μια λίστα με ονόματα πακέτων και σχολιασμούς όπου βρέθηκε η καθορισμένη δευτερεύουσα συμβολοσειρά στο όνομα, τον σχολιασμό ή την περιγραφή.

# apt-cache αναζήτησης python | wc 146 1158 8994 # apt-cache αναζήτησης python | grep "προγραμματισμός" python - Μια ερμηνευμένη, διαδραστική αντικειμενοστραφή γλώσσα προγραμματισμού

Παράδειγμα 9. Αναζήτηση πακέτων στο APT

Το βοηθητικό πρόγραμμα apt-get έχει σχεδιαστεί για την εγκατάσταση και την αφαίρεση πακέτων και η εντολή εγκατάστασης είναι αρκετά απλή: "apt-get install όνομα πακέτου", και δεν χρειάζεται να προσδιορίσετε πληροφορίες σχετικά με την έκδοση και την τοποθεσία του πακέτου: το ίδιο το APT θα βρει και θα εγκαταστήσει την πιο πρόσφατη διαθέσιμη έκδοση.

# apt-get install python Ανάγνωση λιστών πακέτων... Ολοκληρώθηκε το δέντρο εξάρτησης δόμησης... Ολοκληρώθηκε Επόμενο επιπλέον πακέταθα εγκατασταθεί: libpython libgdbm libgmp python-base python-modules python-modules-bsddb python-modules-compiler python-modules-cures-modules-modules-Email-modules-modules-hotshot-modules-modules-logging python-python-python-python-python-modules-hotshot-modules-modules-Logging Python-python-python-modules-hotshot-modules-modules-loggle modules -xml python-strict Θα εγκατασταθούν τα ακόλουθα ΝΕΑ πακέτα: libpython libgdbm libgmp python python-base python-modules python-modules-bsddb python-modules-compiler python-modules-curses python-modules-modules -modules- hotshot python-modules-logging python-modules-xml python-strict 0 θα ενημερωθεί, θα εγκατασταθούν 15 νέα, θα αφαιρεθούν 0 πακέτα και το 0 δεν θα ενημερωθεί. Πρέπει να λάβετε αρχεία 0B/4466kB. Μετά την αποσυσκευασία, θα απαιτηθούν επιπλέον 16,9 MB χώρου στο δίσκο. Να συνεχίσει? y Λήψη: 1 cdrom://SomeLinux CD RPM/main libpython 2.3.3-some2 Λήψη: 2 cdrom://SomeLinux CD RPM/main libgdbm 1.8.3-some3 Λήφθηκε: 3 cdrom://SomeLinux CD RPM/ 4.1.2-κάποια3. . . Λήψη: 14 cdrom://SomeLinux CD RPM/main python-base 2.3.3-some12 Λήψη: 15 cdrom://SomeLinux CD RPM/main python 2.3.3-some12 Λήφθηκαν 4466kB σε 0s (19). Πραγματοποίηση αλλαγών... Προετοιμασία... ############################################################### 1: libpython ####################################### [ 6%] 2: libgdbm ########################################## [ 13%] 3 : libgmp # ####################################################################################### [ 20%] 4: python -Base######################################### . . 13: python-modules-logging ########################################################################################## # [ 86 %] Ολοκληρώθηκε.

Παράδειγμα 10. Εγκατάσταση πακέτου χρησιμοποιώντας το APT

Το APT εκτελεί τη διαδικασία εγκατάστασης σε διάφορα στάδια: πρώτα αναζητά το ζητούμενο πακέτο στις λίστες των διαθέσιμων, αφού το βρει, υπολογίζει ποια πακέτα πρέπει να εγκατασταθούν για να ικανοποιήσει τις εξαρτήσεις του και μετά λαμβάνει τα αρχεία όλων των απαραίτητων πακέτων (σε αυτήν την περίπτωση, η APT βρήκε τα απαραίτητα πακέτα στο CD-ROM ROM) και εκτελεί το πρόγραμμα εγκατάστασης πακέτων διαδοχικά για να εγκαταστήσει όλα τα απαραίτητα. Ομοίως, για να αφαιρέσετε ένα πακέτο, απλώς εκτελέστε την εντολή "apt-get remove" όνομα πακέτου ».

Εκτός από το APT, υπάρχουν αρκετοί άλλοι διαχειριστές πακέτων. Τα περισσότερα από αυτά είναι ειδικά για τη διανομή, όπως το emerge για το Gentoo ή το yast για το SUSE. Τα καθήκοντα και οι δυνατότητές τους είναι περίπου ίδιες με το APT.

Έλεγχος ακεραιότητας

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

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

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

# rpm -ql python (δεν περιέχει αρχεία) # rpm -ql python-strict (δεν περιέχει αρχεία)

Παράδειγμα 11. Τα εικονικά πακέτα δεν περιέχουν αρχεία

Αυτός είναι ο λόγος που η apt «έλαβε» 15 πακέτα (συμπεριλαμβανομένων δύο εικονικών), αλλά «έκανε αλλαγές» μόνο για 13.

Διανομή

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

Για να λειτουργήσει το APT με πακέτα, πρέπει να περιέχονται σε ένα αποθετήριο οργανωμένο σύμφωνα με ειδικούς κανόνες - αποθετήρια. Λίστα διαθέσιμων Αποθετήρια APTαποθηκευμένο στο αρχείο /etc/apt/sources.list, για κάθε αποθετήριο υποδεικνύεται η μέθοδος πρόσβασης (για παράδειγμα, "cdrom:", "ftp:", "file:", κ.λπ.) και η διεύθυνση.

Rpm cdrom:/ RPM συνεισφορά κύριε rpm ftp://updates.somelinux.com 2.4/i586 ενημερώσεις

Παράδειγμα 12. αρχείο sources.list

Μετά από κάθε αλλαγή στο αρχείο /etc/apt/sources.list, πρέπει να ενημερώσετε την προσωρινή μνήμη APT, η οποία αποθηκεύει πληροφορίες σχετικά με τα διαθέσιμα πακέτα, με την εντολή ενημέρωσης apt-get. Για να προσθέσετε πληροφορίες σχετικά με τα πακέτα που είναι διαθέσιμα σε ένα CD στη μνήμη cache, θα πρέπει να χρησιμοποιήσετε την εντολή "apt-cdrom add" αντί να επεξεργαστείτε το sources.list με μη αυτόματο τρόπο.

Το APT σάς επιτρέπει απλώς να παραδώσετε ένα πακέτο στο σύστημα χωρίς να το εγκαταστήσετε. Αυτό, για παράδειγμα, συμβαίνει πάντα με πακέτα πηγής, τα οποία απλώς αντιγράφονται από το αποθετήριο σε έναν συγκεκριμένο κατάλογο στο σύστημα χρησιμοποιώντας την εντολή "apt-get source" όνομα πακέτου ».

Εκσυγχρονίζω

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

Οι διαχειριστές πακέτων σάς επιτρέπουν να το κάνετε ολοκληρωμένες ενημερώσειςολόκληρο το σύστημα. Στο APT, αυτή η διαδικασία μπορεί να εκτελεστεί με μία εντολή: "apt-get dist-upgrade". Αυτή η διαδικασία εξετάζει πρώτα τα περιεχόμενα όλων των διαθέσιμων αποθετηρίων και βρίσκει εκεί όλα τα πακέτα που είναι νεότερες εκδόσεις από τα αντίστοιχα πακέτα που είναι εγκατεστημένα στο σύστημα. Στη συνέχεια υπολογίζεται το εύρος της ενημέρωσης: η σχετική περιοχή των αμοιβαία εξαρτώμενων παλαιών πακέτων πρέπει να αφαιρεθεί και να αντικατασταθεί με την αντίστοιχη περιοχή νεότερων εκδόσεων. Μπορεί να προκύψουν περίπλοκες καταστάσεις εάν η κατανομή των πόρων μεταξύ των πακέτων έχει αλλάξει: τα πακέτα έχουν διαχωριστεί ή συγχωνευθεί - αυτό μπορεί να απαιτεί χειροκίνητη παρέμβαση του χρήστη. Το είδος των ενημερώσεων συστήματος που πρέπει να γίνονται τακτικά και ΑναγκαίωςΑυτές είναι ενημερώσεις ασφαλείας. Όταν ανακαλύπτονται και διορθώνονται σοβαρά σφάλματα σε ένα πρόγραμμα που απειλούν την ασφάλεια ολόκληρου του συστήματος, οι προγραμματιστές διανομής συνήθως διασφαλίζουν ότι οι κατάλληλες ενημερώσεις φτάνουν στον χρήστη. Υπάρχει συνήθως ένα ξεχωριστό αποθετήριο για ενημερώσεις που σχετίζονται με την ασφάλεια.

Τιμή ευκολίας

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

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

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

Τέλος, πολλές σύγχρονες διανομές περιλαμβάνουν εργαλεία που βοηθούν στη δημιουργία δυαδικών πακέτων. Τέτοια εργαλεία (για παράδειγμα, το πακέτο κατακερματισμού από το ALT Linux) σας επιτρέπουν όχι μόνο να μεταγλωττίσετε ένα πρόγραμμα σε ένα «καθολικό περιβάλλον» που περιέχει μόνο ένα δεδομένο σύνολο πακέτων, αλλά και να δημιουργήσετε αυτόματα εξαρτήσεις, να ελέγξετε για σωστή εγκατάσταση και να παρακολουθήσετε τις διενέξεις. Εν ολίγοις, χτίζοντας ένα πακέτο χρησιμοποιώντας ένα τέτοιο εργαλείο, μπορείτε να ισχυριστείτε σοβαρά ότι είστε ο συντηρητής αυτού του πακέτου στη διανομή. Αντίθετα, φτιάχνοντας ένα πρόγραμμα στο πονηρό, χρησιμοποιώντας σαμανισμό και χειρωνακτική εργασία, θα αποκαλυφθείτε ως ένας τεμπέλης και ένας εγωιστής που δεν ενδιαφέρεται για την ανάπτυξη και τη βελτίωση του δικού του λειτουργικού συστήματος.

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


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

Debian και τα σχετικά

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


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


$ aptitude install package #install package; $ aptitude πακέτο ασφαλούς αναβάθμισης #upgrade πακέτο; $ aptitude update #check and install updates; $ aptitude αφαίρεση πακέτου #remove πακέτο; $ aptitude purge πακέτο #διαγραφή ενός πλήρους πακέτου, όλων των δεδομένων και των ρυθμίσεων. $ apt-get dist-upgrade #upgrade OS, killer-feature και λειτουργεί! Πακέτο αναζήτησης $ aptitude #αναζήτηση πακέτου. $ apt-cache εξαρτάται από το πακέτο #package dependencies; $ apt-cache rdepends πακέτο #reverse εξαρτήσεις πακέτου.

Ορισμένες λειτουργίες είναι διαθέσιμες με το προαιρετικό dpkg MP.


$ dpkg -l #λίστα εγκατεστημένων προγραμμάτων; $ dpkg -L πακέτο #λίστα αρχείων πακέτων