Τρόπος απενεργοποίησης/κλειδώματος ή ενημέρωσης πακέτων μαύρης λίστας χρησιμοποιώντας το Apt Tool


Το APT σημαίνει ότι το Advanced Packaging Tool είναι ένας άλλος διαχειριστής πακέτων που βρίσκεται σε συστήματα που βασίζονται στο Linux. Αρχικά σχεδιασμένο ως διεπαφή για dpkg για εργασία με πακέτα .deb, ο apt κατάφερε να δείξει την ορατότητά του σε Mac OS, Open Solaris κ.λπ.

Θέλετε να μάθετε και να μάθετε σχετικά με τις εντολές APT και DPKG για τη διαχείριση της διαχείρισης πακέτων του Debian και, στη συνέχεια, χρησιμοποιήστε τα αναλυτικά άρθρα μας που θα καλύπτουν περισσότερα από 30+ παραδείγματα και στα δύο εργαλεία.

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

1. Απενεργοποίηση/Κλείδωμα πακέτου Χρησιμοποιώντας το «apt-mark» με την επιλογή αναμονής/απενεργοποίησης

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

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

Για παράδειγμα, για να κάνετε ένα πακέτο apache2 μη διαθέσιμο για εγκατάσταση, αναβάθμιση ή απεγκατάσταση, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή στο τερματικό με δικαιώματα root:

apt-mark hold apache2

Για να κάνετε αυτό το πακέτο διαθέσιμο για ενημέρωση, απλώς αντικαταστήστε το "κρατήστε" με το "unhold".

apt-mark unhold apache2

Αποκλεισμός ενημερώσεων πακέτων με χρήση του αρχείου προτιμήσεων APT

Ένας άλλος τρόπος για να αποκλείσετε ενημερώσεις ενός συγκεκριμένου πακέτου είναι να προσθέσετε την καταχώρισή του στο /etc/apt/preferences ή /etc/apt/preferences.d/official-package-repositories.pref αρχείο. Αυτό το αρχείο έχει την ευθύνη της ενημέρωσης ή του αποκλεισμού ορισμένων ενημερώσεων πακέτων σύμφωνα με την προτεραιότητα που καθορίζεται από τον χρήστη.

Για να αποκλείσετε το πακέτο, πρέπει απλώς να εισαγάγετε το όνομά του, την πρόσθετη δυνατότητα και σε ποια προτεραιότητα θέλετε να το μεταφέρετε. Εδώ, η προτεραιότητα < 1 θα μπλοκάρει το πακέτο.

Για αποκλεισμό οποιουδήποτε πακέτου, απλώς εισαγάγετε τα στοιχεία του στο αρχείο /etc/apt/preferences ως εξής:

Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>

Για παράδειγμα, για να αποκλείσετε ενημερώσεις για το πακέτο apache2 προσθέστε την καταχώρηση όπως φαίνεται:

Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1

Μπορούμε να χρησιμοποιήσουμε άλλες επιλογές με λέξη-κλειδί έκδοσης για τον περαιτέρω προσδιορισμό του πακέτου στο οποίο εφαρμόζουμε την Προτεραιότητα Pin. Αυτές οι λέξεις-κλειδιά είναι:

  1. a -> Αρχείο
  2. γ -> Στοιχείο
  3. o -> Προέλευση
  4. l -> Ετικέτα
  5. n -> Αρχιτεκτονική

αρέσει :

Pin: release o=Debian,a=Experimental

Θα σήμαινε να τραβήξετε το δηλωμένο πακέτο από το πειραματικό αρχείο του πακέτου Debian.

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

Ένας άλλος τρόπος για να μπείτε στη μαύρη λίστα ενός πακέτου από την εγκατάσταση είναι να ενημερώσετε την καταχώρισή του σε ένα από τα αρχεία που περιέχονται στον κατάλογο /etc/apt/apt.conf.d/ που είναι 01autoremove.

Το δείγμα αρχείου φαίνεται παρακάτω:

APT
{
  NeverAutoRemove
  {
        "^firmware-linux.*";
        "^linux-firmware$";
  };

  VersionedKernelPackages
  {
        # linux kernels
        "linux-image";
        "linux-headers";
        "linux-image-extra";
        "linux-signed-image";
        # kfreebsd kernels
        "kfreebsd-image";
        "kfreebsd-headers";
        # hurd kernels
        "gnumach-image";
        # (out-of-tree) modules
        ".*-modules";
        ".*-kernel";
        "linux-backports-modules-.*";
        # tools
        "linux-tools";
  };

  Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
  };
};

Τώρα, για τη μαύρη λίστα οποιουδήποτε πακέτου, πρέπει απλώς να εισαγάγετε το όνομά του στο Never-MarkAuto-Sections. Απλώς εισάγετε το όνομα του πακέτου στο τέλος στο Never-MarkAuto-Section και αποθηκεύστε και κλείστε το αρχείο. Αυτό θα εμπόδιζε την αναζήτηση για περαιτέρω ενημερώσεις αυτού του πακέτου.

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

Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
        "apache2*";
  };
};

Προσαρμοσμένη επιλογή πακέτου για ενημέρωση

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

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

α. Για να παραθέσετε ποια πακέτα έχουν ενημερώσεις σε εκκρεμότητα.

apt-get -u -V upgrade

β. Για εγκατάσταση μόνο επιλεκτικών πακέτων.

apt-get --only-upgrade install <package-name>

συμπέρασμα

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