Apt Pinning – Apt Preferences – LMDE

ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ!

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

Η παρακάτω διαδικασία μπορεί να γίνει και σε Ubuntu και σε pure Debian σύστημα, λίγο παραλλαγμένη. Για παράδειγμα, σε Ubuntu ή Pure Debian δεν θα υπάρχει το αρχείο «official-package-repositories.pref»
που υπάρχει στο LMDE, αλλά θα πρέπει να το δημιουργήσουμε εξ’ αρχής μόνοι μας.

Τι είναι το apt pinning

Είναι η διαδικασία κατά την οποία θέτουμε στον apt κάποιες παραμέτρους, οι οποίες εξυπηρετούν τις δικές μας ανάγκες για την εγκατάσταση/αναβάθμιση ή «κράτημα»(hold) συγκεκριμένων πακέτων (ή όλων των πακέτων) από συγκεκριμένα αποθετήρια ή συγκεκριμένη διανομή ή συγκεκριμένη διεύθυνση (URL).
Το apt pinning λαμβάνει χώρα στο /etc/apt/preferences.d/ όπου φτιάχνοντας ένα απλό plain text αρχείο καθορίζουμε τους κανόνες. Το αρχείο πρέπει να έχει κατάληξη .pref

Μορφοποίηση αρχείου .pref

Το αρχείο που θα φτιάξουμε θα πρέπει να έχει την παρακάτω μορφοποίηση.

Package: «όνομα πακέτου» ή wildcard
Pin: release o=«όνομα διανομής» ή ή n=«όνομα διανομής» release a=«όνομα αποθετηρίου» ή origin=«διεύθυνση URL»
Pin-Priority: «αριθμός»

Τι μπορούμε να καταφέρουμε με το apt pinning

Καταρχήν μπορούμε να διαλύσουμε το σύστημά μας, απομακρύνοντας πολλά essential πακέτα. Οπότε προσοχή. Το apt pinning είναι ένα «περίεργο τρένο» και πρώτα απ’ όλα θέλει δοκιμές. Πάντα υπάρχει η επιλογή να πατήσουμε (N)o σε περίπτωση που δούμε κάτι περίεργο όπως, απεγκατάσταση πακέτων, υποβάθμιση ή αναβάθμιση όλης της διανομής σε κάποιο unstable αποθετήριο.
Με το apt pinning μπορούμε να εγκαταστήσουμε ή να αναβαθμίσουμε κάποια συγκεκριμένα πακέτα από συγκεκριμένα αποθετήρια του Debian, όπως το debian/testing , debian/unstable , χωρίς να είναι ανάγκη να αναβαθμίσουμε όλα τα πακέτα της διανομής μας και να καταλήξουμε με ένα testing ή unstable σύστημα.
Και που μπορεί να βοηθήσει αυτό ;
Στο να ενεργοποιήσουμε κάποιες δυνατότητες ή να δοκιμάσουμε κάποια νέα features από συγκεκριμένα πακέτα ή να τα τεστάρουμε.
Προσωπικά με βοήθησε να έχω εγκατεστημένο τον πυρήνα 3.13 στο LMDE (έχει κάποια καλά features για τον SSD που έχω) και επίσης εγκατέστησα τον πιο πρόσφατο οδηγό για την Intel κάρτα που έχω, ο οποίος είναι patchαρισμένος για υποστήριξη SNA acceleration. Επίσης, προσφάτως αναβάθμισα και τον Xorg έχοντας τώρα τον X σε version 1.15.

Προσθήκη αποθετηρίων Debian

Για να προσθέσουμε τα αποθετήρια του Debian, δημιουργούμε ένα νέο αρχείο με κατάληξη .conf μέσα στο /etc/apt/sources.list.d/. Ας το ονομάσουμε debian-testing-unstable-repositories.conf. και προσθέτοντας μέσα τα παρακάτω περιεχόμενα.

deb http://ftp.gr.debian.org/debian/ testing main contrib non-free
deb http://ftp.gr.debian.org/debian/ testing-updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb http://ftp.gr.debian.org/debian/ unstable main contrib non-free

Αποθηκεύουμε το αρχείο και δίνουμε

sudo apt-get update

Επεξεργασία του ήδη υπάρχων αρχείου .pref

Το LMDE έρχεται με ένα αρχείο .pref έτοιμο. Ωστόσο πρέπει να το επεξεργαστούμε αναλόγως, αφού προσθέσαμε τα Debian αποθετήρια. Εδώ θα χρησιμοποιήσουμε το origin κάνοντας pin όλα τα πακέτα σε συγκεκριμένο priority number, από το συγκεκριμένο URL.

sudo nano /etc/apt/preferences.d/official-package-repositories.pref

και στο τέλος προσθέτουμε τις παρακάτω γραμμές

Package: *
Pin: origin ftp.gr.debian.org
Pin-Priority: 400

Αφού αποθηκεύσουμε το αρχείο, δίνουμε ξανά ένα

sudo apt-get update

Τι έχουμε κάνει τώρα;
Αυτό που κάναμε είναι να προσθέσουμε τα testing και unstable αποθετήρια του Debian τα οποία περιέχουν πακέτα νεότερα της έκδοσης LMDE που έχουμε. Με τον αριθμό 400 κρατάμε τα πακέτα αυτά σε ένα τέτοιο pin priority ώστε αν τρέξουμε ένα sudo apt-get dist-upgrade να μην αναβαθμιστεί όλο το σύστημα σε Debian/testing ή Debian/unstable.

Οι αριθμοί και η σημασία τους

Οι αριθμοί στο pin priority παίζουν σημασία. Ένας αριθμός κάτω του 500 (όπως έχουμε και στο παράδειγμά μας) θα μας επιτρέψει να εγκαθιστούμε πακέτα από testing/unstable χωρίς να αναβαθμίσουμε όλο το σύστημα σε αυτά.
Ένας αριθμός άνω του 500 ή ίσος με 500 θα κάνει ακριβώς το αντίθετο. Θα αναβαθμίσει το όλο το σύστημα σε testing/unstable και πιστέψτε με δεν υπάρχει δρόμος επιστροφής. Το έχω δοκιμάσει αρκετές φορές με πάντα την ίδια κατάληξη. Σπάσιμο.
Ένας αριθμός άνω του 990 θα λειτουργήσει έτσι ώστε να κάνει ακόμη και υποβάθμιση των πακέτων αν χρειάζεται προκειμένου να εγκατασταθούν.
Ένας αριθμός κάτω του 0, απλά θα κρατήσει το αποθετήριο σαν να είναι απενεργοποιημένο.
Το καλύτερο που έχετε να κάνετε είναι δοκιμές χωρίς κανονική αναβάθμιση. Δηλαδή, αλλάξτε τον αριθμό κάντε ένα sudo apt-get update και μετά ένα sudo apt-get dist-upgrade χωρίς όμως να πατήσετε Y(es) στις αλλαγές. Δείτε τις πρώτα.
Άλλος τρόπος είναι το simulation mode του apt, χρησιμοποιώντας την παράμετρο -s . sudo apt-get -s dist-upgrade.

Εγκαθιστώντας από συγκεκριμένο αποθετήριο

Για να εγκαταστήσουμε ένα συγκεκριμένο πακέτο , αρκεί να δώσουμε

sudo apt-get install «όνομα πακέτου»/«όνομα αποθετηρίου»

Αυτό θα τραβήξει και και θα αναβαθμίσει και τις απαραίτητες εξαρτήσεις. Προσέξτε ότι ίσως αφαιρέσει πολλά σημαντικά πακέτα αν ο αριθμός είναι κάτω του 500 (όπως στο παράδειγμά μας) , χωρίς όμως να τα εγκαταστήσει ξανά. Οπότε επαναλαμβάνω δείτε πρώτα πριν πατήστε Y(es).
Ένα παράδειγμα για την αναβάθμιση σε νεότερο πυρήνα.
Δίνοντας την εντολή

apt-cache policy linux-image-amd64

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

linux-image-amd64:
  Installed: 3.11+54
  Candidate: 3.13+56
  Version table:
 *** 3.13+56 0
        400 http://ftp.gr.debian.org/debian/ testing/main amd64 Packages
        400 http://ftp.gr.debian.org/debian/ unstable/main amd64 Packages
        100 /var/lib/dpkg/status
     3.11+54 0
        500 http://debian.linuxmint.com/latest// testing/main amd64 Packages

Μπορείτε να δώσετε

sudo apt-get install linux-image-amd64/testing

για αναβάθμιση σε 3.13 ή

sudo apt-get install linux-image-3.13-1-amd64

για εγκατάσταση του 3.13 παράλληλα με τον 3.11.
Το πρώτο πακέτο linux-image-amd64 είναι ένα meta-package το οποίο ελέγχει και «τραβά» τις νεότερες εκδόσεις πυρήνα. Το δεύτερο πακέτο είναι απλά ο πυρήνας 3.13. Αναβαθμίζοντας το πρώτο πακέτο θα έχετε το «εφέ» του να αναβαθμίζεται ο πυρήνας σε νεότερη έκδοση κάθε φορά που είναι διαθέσιμος από τα testing/unstable.
Αν και ο πυρήνας είναι ένα από τα σημαντικότερα πακέτα του συστήματος, δεν έχει τόσες εξαρτήσεις όπως άλλα πακέτα. Αν σας παρουσιάσει πρόβλημα με τις εξαρτήσεις unmet dependencies , τότε μπορείτε να δοκιμάσετε το εξής:
Επεξεργάζεστε προσωρινά το αρχείο .pref και αλλάζετε το pin priority σε 500. Δίνετε ένα sudo apt-get update και μετά δοκιμάζετε πάλι την εγκατάσταση του πακέτου(στο παράδειγμά μας πυρήνα). Ο αριθμός 500 δεν θα διστάσει να τραβήξει και να εγκαταστήσει τις απαραίτητες εξαρτήσεις από τα αποθετήρια Debian testing/unstable.

Αυτά πάνω-κάτω είναι τα βασικά για το apt pinning. Διαβάστε και το Debian Wiki, καθώς και το

man apt_preferences

για περισσότερες πληροφορίες.

Να θυμάστε πως το κλειδί εδώ, για να μην διαλύσετε το σύστημά σας είναι να τσεκάρετε τι θα γίνει, πριν αυτό γίνει.

Συμβάλετε κι εσείς με ένα σχόλιο

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s