Αποστολέας Θέμα: Εντολές τερματικού για ενημέρωση  (Αναγνώστηκε 160 φορές)

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5919
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Εντολές τερματικού για ενημέρωση
« στις: 18 Φεβ 2021, 12:14:47 μμ »
Το Ubuntu και τα sch-scripts έχουν επιλογές για ενημερώσεις και για αφαίρεση παλιών πυρήνων και ορφανών πακέτων, αλλά μερικές φορές είναι καλύτερο ή γρηγορότερο να τα κάνουμε αυτά από τερματικό. Η παρακάτω μεγάλη εντολή κάνει ενημερώσεις ΚΑΙ αφαιρεί τα παλιά και ορφανά πακέτα. Είναι καλή τακτική να την τρέχουμε μια φορά τον μήνα:

Κώδικας: Bash
  1. sudo -i
  2. apt update && apt full-upgrade --yes && apt purge --auto-remove $(dpkg -l | awk '/^rc/ { print $2 }')

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

Κώδικας: Bash
  1. sudo apt purge apturl
  2. ...
  3. Τα ακόλουθα πακέτα θα ΑΦΑΙΡΕΘΟΥΝ:
  4.   apturl* ubuntu-mate-core* ubuntu-mate-desktop*

Η παραπάνω προειδοποίηση μας λέει ότι το ubunt-mate-desktop εξαρτάται από το apturl, κι αν απεγκαταστήσουμε το apturl, θα απεγκατασταθεί μαζί του και το ubuntu-mate-desktop.
Αν πατήσουμε ναι, τότε στη συνέχεια ΟΛΑ τα πακέτα που είχαν εγκατασταθεί μαζί με το ubuntu-mate-desktop θα είναι ορφανά. Και η επόμενη εντολή `apt purge` θα τα διαγράψει, αφήνοντάς μας χωρίς desktop!

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

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

Κώδικας: Bash
  1. sudo -i
  2. apt update && apt full-upgrade --yes && apt purge --yes --auto-remove $(dpkg -l | awk '/^rc/ { print $2 }') && ltsp image / && poweroff