Έψαξα στο διαδίκτυο για τέτοιες πληροφορίες και βρήκα διάφορες γραμμές εντολών, όπως αυτές:
sudo apt-get remove application
sudo apt-get remove application*
sudo apt-get remove --purge application
sudo apt-get remove --purge application*
sudo apt-get purge application
sudo apt-get purge application*
Ποιος είναι λοιπόν ο σωστός τρόπος; Είναι απαραίτητο να χρησιμοποιήσετε αυτό το "*";
Μετά από αυτό, βρήκα επίσης αυτές τις εντολές:
sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
apt-get remove packagename
θα αφαιρέσει τα δυαδικά αρχεία, αλλά όχι τα αρχεία ρυθμίσεων ή δεδομένων του πακέτου packagename
. Θα αφήσει επίσης ανέγγιχτες τις εξαρτήσεις που έχουν εγκατασταθεί μαζί του κατά την εγκατάσταση.
apt-get purge packagename
ή apt-get remove --purge packagename
θα αφαιρέσει οτιδήποτε σχετικά με το πακέτο packagename
, αλλά όχι τις εξαρτήσεις που εγκαταστάθηκαν μαζί του κατά την εγκατάσταση. Και οι δύο εντολές είναι ισοδύναμες.
Ιδιαίτερα χρήσιμες όταν θέλετε να 'ξεκινήσετε από την αρχή' με μια εφαρμογή επειδή κάνατε λάθος στη διαμόρφωση. Ωστόσο, δεν αφαιρεί τα αρχεία ρυθμίσεων ή δεδομένων που βρίσκονται στους αρχικούς καταλόγους των χρηστών, συνήθως σε κρυφούς φακέλους εκεί. Δεν υπάρχει εύκολος τρόπος να αφαιρεθούν και αυτά.
apt-get autoremove
αφαιρεί τα ορφανά πακέτα, δηλαδή τα εγκατεστημένα πακέτα που ήταν εγκατεστημένα ως εξάρτηση, αλλά δεν είναι πλέον. Χρησιμοποιήστε το μετά την αφαίρεση ενός πακέτου που είχε εγκατεστημένες εξαρτήσεις που δεν σας ενδιαφέρουν πλέον.
aptitude remove packagename
ή aptitude purge packagename
(επίσης)θα προσπαθήσει επίσης να αφαιρέσει άλλα πακέτα τα οποία απαιτούνταν από το packagename
αλλά δεν απαιτούνται από κανένα από τα υπόλοιπα πακέτα. Σημειώστε ότι το aptitude
θυμάται πληροφορίες εξάρτησης μόνο για τα πακέτα που έχει εγκαταστήσει.
Και υπάρχουν και πολλά άλλα. Μπορούν να χρησιμοποιηθούν εντολές χαμηλότερου επιπέδου dpkg
(για προχωρημένους), ή εργαλεία GUI όπως τα Muon, Synaptic, Software Center, κλπ. Δεν υπάρχει ένας μόνο 'σωστός τρόπος' για την αφαίρεση εφαρμογών ή την εκτέλεση άλλων εργασιών που αλληλεπιδρούν με τη διαχείριση πακέτων σας.
Η λίστα που βρήκατε είναι απλά παραδείγματα. Βεβαιωθείτε ότι έχετε κατανοήσει τις έννοιες και δοκιμάστε τι θέλει να κάνει πριν αποδεχτείτε την ενέργεια (πρέπει να πατήσετε Y
πριν εκτελέσει πραγματικά τις ενέργειες όπως προτείνεται).
Η εκδοχή με τον αστερίσκο στην ερώτηση είναι πιθανώς λανθασμένη, το apt-get
δέχεται μια κανονική έκφραση και όχι ένα glob pattern ως κέλυφος. Οπότε τι συμβαίνει με το
sudo apt-get remove application*
είναι το εξής:
Το κέλυφος προσπαθεί να επεκτείνει το application*
κοιτάζοντας τα αρχεία στον τρέχοντα κατάλογο. Αν (όπως συμβαίνει συνήθως) δεν βρει τίποτα, επιστρέφει το glob pattern αναλλοίωτο (υποθέτοντας bash
με προεπιλεγμένη συμπεριφορά εδώ --- zsh
θα κάνει λάθος).
Το apt-get
θα αφαιρέσει τα πακέτα των οποίων το όνομα περιέχει μια συμβολοσειρά που ικανοποιεί την κανονική έκφραση application*
, δηλαδή applicatio
ακολουθούμενο από έναν αυθαίρετο αριθμό n
: applicatio
, application
, applicationn
, libapplicatio
, κ.λπ.
Για να δείτε πώς αυτό μπορεί να είναι επικίνδυνο, δοκιμάστε (χωρίς root για διπλή ασφάλεια) apt-get -s remove "wine*"
(το -s
θα προσομοιώσει το πράγμα αντί να το κάνει) --- θα πει ότι πρόκειται να αφαιρέσει όλα τα πακέτα που έχουν "win" στο όνομά τους και τα εξαρτώμενα, σχεδόν ολόκληρο το σύστημα...
Πιθανώς, η εντολή που εννοούσε είναι πραγματικά
sudo apt-get remove "^application.*"
(προσέξτε τα εισαγωγικά και την τελεία), η οποία θα αφαιρέσει όλα τα πακέτα των οποίων το όνομα αρχίζει με application
.
Αυτές οι εντολές,
sudo updatedb # <-- updates the locate database (index). harmless
sudo locate application # <-- locates the file 'application'. harmless
sudo rm -rf (file/folder name) # <-- removes files/dirs recursively. dangerous.
είναι εντελώς εκτός του πεδίου εφαρμογής της διαχείρισης πακέτων. Μην αφαιρείτε αρχεία που ανήκουν σε πακέτα χωρίς να χρησιμοποιήσετε τη διαχείριση πακέτων! Θα δημιουργηθεί σύγχυση και είναι ο λανθασμένος τρόπος για να κάνετε τα πράγματα.
Αν δεν ξέρετε σε ποιο πακέτο ανήκει ένα αρχείο, δοκιμάστε αυτό:
dpkg -S /path/to/file
Μπορείτε να χρησιμοποιήσετε με ασφάλεια το sudo apt-get remove --purge application
ή το sudo apt-get remove applications
στο 99% των περιπτώσεων. Όταν χρησιμοποιείτε τη σημαία purge
, απλά αφαιρεί και όλα τα αρχεία ρυθμίσεων. Το οποίο μπορεί να είναι ή να μην είναι αυτό που θέλετε, ανάλογα με το αν θέλετε να επανεγκαταστήσετε την εν λόγω εφαρμογή. Το application*
θα ταιριάξει με όλες τις εφαρμογές που ξεκινούν με application
, οι οποίες συνήθως είναι plugins, πρόσθετα χαρακτηριστικά, κλπ. της κύριας εφαρμογής που αφαιρείτε. πχ.
sudo apt-get remove gedit*
θα αφαιρέσει τις εφαρμογές gedit
, gedit-plugins
και gedit-common
. Συνήθως δεν είναι απαραίτητο να το κάνετε αυτό, επειδή τα περισσότερα πρόσθετα/συνδεδεμένα προγράμματα εξαρτώνται από την κύρια εφαρμογή και θα αφαιρεθούν αυτόματα (ή θα επισημανθούν για αφαίρεση) όταν απεγκαταστήσετε την κύρια εφαρμογή.
Η τελευταία εντολή σας είναι απλώς για να αφαιρέσετε τα υπολείμματα από εφαρμογές που είναι γνωστό ότι έχουν ακατάστατα προγράμματα απεγκατάστασης, και απλώς αφαιρεί τυχόν υπολείμματα της εφαρμογής.
Εξαρτάται από την εφαρμογή που θέλετε να καταργήσετε. Φροντίζετε πάντα να ελέγχετε τις εξαρτήσεις της πριν εκδώσετε την εντολή yes. Όταν αφαιρείτε κάτι από τη γραμμή εντολών, μερικές φορές θα εμφανιστεί μια χούφτα βιβλιοθήκες που δεν χρειάζονται πλέον. Αυτές μπορούν να αφαιρεθούν με το apt-get autoremove.
Προσέξτε ότι με τη χρήση εντολών όπως sudo apt-get remove --purge applicationname μπορεί να αφαιρέσετε κάποιες εξαρτήσεις που χρειάζονται άλλες εφαρμογές και, ως εκ τούτου, μπορεί να χαλάσει το σύστημά σας.
Αν θέλετε να το κάνετε με τον ασφαλέστερο τρόπο, μπορείτε πάντα να το αφαιρέσετε χρησιμοποιώντας μόνο το κέντρο λογισμικού ή το apt-get remove applicationname. Εάν οι εξαρτήσεις δεν χρειάζονται πλέον, εκδώστε το apt-get autoremove αργότερα.