Arch Linux | Απεγκατάσταση προγραμμάτων με τις εξαρτήσεις τους

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

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

Ανακαλύπτοντας τις εξαρτήσεις ενός συγκεκριμένου πακέτο

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

sudo pacman -S pacman-contrib

Ας πάρουμε για παράδειγμα την περίπτωση που θέλουμε να δούμε ποιες εξαρτήσεις φέρει το lshw (μια εφαρμογή πληροφοριών υλικού του υπολογιστή μας ) με τη βοήθεια του pactree:

pactree lshw

Εδώ βλέπουμε σε δεντροειδή μορφή (εξού και pactree από το package tree) τις εξαρτήσεις του lshw πακέτου.

Μπορούμε αν θέλουμε να δούμε τις εξαρτήσεις με μια πιο απλή μορφή, προσθέτοντας την παράμετρο -u στην εντολή:

pactree -u lshw

Επίσης αν θέλουμε μπορούμε να κάνουμε export την λίστα σε ένα αρχείο κειμένου πχ lshw.txt δίνοντας την παρακάτω εντολή:

pactree -u lshw > lshw.txt

Αφαιρώντας ένα πακέτο και όλες τις εξαρτήσεις του με τον pacman

Για να αφαιρέσουμε ένα πακέτο στο Arch με τον pacman ο πιο συνηθισμένος τρόπος είναι με την εντολή pacman -R (όνομα πακέτου) αλλά όπως είπαμε και πιο πριν θα αφαιρέσει μόνο το συγκεκριμένο πακέτο χωρίς τις εξαρτήσεις του.

Αν θέλουμε όμως να αφαιρέσουμε ένα πακέτο με όλες τις εξαρτήσεις του καθώς και τα αντίγραφα ασφαλείας ρυθμίσεων του χρησιμοποιούμε την εντολή pacman -Rcns (όνομα πακέτου) .

Στο δικό μας παράδειγμα για το πακέτο του lshw δίνουμε:

sudo pacman -Rcns lshw

όπου πατάμε enter αν συμφωνούμε και βλέπουμε όπως στην παρακάτω εικόνα ότι το πακέτο lshw έχει αφαιρεθεί μαζί με όλες τις εξαρτήσεις του.

Αφαιρώντας πακέτα που δεν εξαρτώνται από άλλα πακέτα

Όπως αναφέραμε προηγουμένως όταν αφαιρούμε πακέτα με την εντολή pacman -R οι εξαρτήσεις του παραμένουν στον δίσκο μας, αν θέλουμε να δούμε πόσα και ποια είναι όλα αυτά τα “ορφανά” πακέτα χρησιμοποιούμε την εντολή :

pacman -Qdtq

Αυτά τα «ορφανά» πακέτα συνήθως είναι υποστηρικτικές βιβλιοθήκες που χρειάστηκαν από κάποιες εφαρμογές για να μεταγλωτιστούν στο σύστημά μας.

Στο δικό μου σύστημα βλέπουμε υπάρχουν 2 ορφανά πακέτα, αν θέλουμε να τα αφαιρέσουμε όλα εύκολα δίνουμε την συνδυαστική εντολή :

sudo pacman -R $(pacman -Qdtq)

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

Έτσι μάθαμε λοιπόν σήμερα πως απεγκαθιστούμε ένα πακέτο με όλες τις εξαρτήσεις του με τη βοήθεια του pacman manager στο Arch linux και σε όλα τα παράγωγα του .

11 Likes

Κάνει την ίδια δουλειά με το apt autoremove;

Ναι…συσγκεκριμένα στο Ubuntu Manpage αναφέρει:

autoremove ( apt-get (8)) autoremove is used to remove packages that were automatically installed to satisfy dependencies for other packages and are now no longer needed as dependencies changed or the package(s) needing them were removed in the meantime.

1 Like

Εδώ είναι καλό να αναφέρουμε ότι χρησιμοποιούμε αυτήν την εντολή με λίγο προσοχή γιατί αν θελήσουμε να εγκαταστήσουμε ξανά το ίδιο πακέτο - πρόγραμμα και η καινούρια έκδοση δε λειτουργεί σωστά δε θα έχουμε το αντίγραφο ασφαλείας με αποτέλεσμα να δυσκολεύουν τα πράγματα για ένα νέο χρήστη .Σε αυτήν την περίπτωση καλό είναι να δίνουμε το flag -Rns χωρίς το c

2 Likes