Αναβάθμιση του Fedora Linux με χρήση της πρόσθετου του DNF
Η εντολή dnf system-upgrade (ενσωματωμένη στο DNF5 και με ένα πρόσθετο dnf-plugin-system-upgrade για τον διαχειριστή πακέτων DNF4 ) χρησιμοποιείται για την αναβάθμιση του συστήματός σας στην τρέχουσα έκδοση του Fedora Linux. Για το Fedora Silverblue και το Fedora CoreOS, που χρησιμοποιούν rpm-ostree, μπορείτε να ανατρέξετε στην τεκμηρίωση rpm-ostree για λεπτομέρειες.
Αυτή είναι η προτεινόμενη μέθοδος αναβάθμισης της γραμμής εντολών. Λειτουργεί ως εξής:
- Η λήψη των πακέτων γίνεται ενώ το σύστημα λειτουργεί κανονικά
- Το σύστημα επανεκκινείται σε ένα ειδικό περιβάλλον για να τα εγκαταστήσει
- Με την ολοκλήρωση, το σύστημα επανεκκινείται στη νέα έκδοση του Fedora Linux
Εκτέλεση αναβάθμισης συστήματος
Δημιουργήστε αντίγραφα ασφαλείας των δεδομένων σας πριν από την εκτέλεση μιας αναβάθμισης σε όλο το σύστημα, καθώς κάθε αναβάθμιση συστήματος είναι δυνητικά επικίνδυνη. Προληπτικά, κατεβάστε τo ISO του Fedora Workstation Live σε περίπτωση που κάτι πάει στραβά.
1. Για να ενημερώσετε την έκδοση του Fedora Linux από τη γραμμή εντολών, κάντε τα εξής:
sudo dnf upgrade –refresh
και επανεκκινήστε τον υπολογιστή σας.
Σημαντικό: Μην παραλείψετε αυτό το βήμα. Απαιτούνται ενημερώσεις συστήματος για τη λήψη κλειδιών υπογραφής εκδόσεων υψηλότερης έκδοσης και συχνά διορθώνουν προβλήματα που σχετίζονται με τη διαδικασία αναβάθμισης.
2. Κατεβάστε τα ενημερωμένα πακέτα:
sudo dnf system-upgrade download –releasever=41
Αλλάξτε τον αριθμό –releasever= εάν θέλετε να κάνετε αναβάθμιση σε διαφορετική έκδοση. Οι περισσότεροι θα θέλουν να κάνουν αναβάθμιση στην πιο πρόσφατη σταθερή έκδοση, η οποία είναι 41 την στιγμή που γράφεται το άρθρο, αλλά σε ορισμένες περιπτώσεις, όπως όταν εκτελείτε αυτήν τη στιγμή μια παλαιότερη έκδοση από την 40, μπορεί να θέλετε να κάνετε αναβάθμιση στην έκδοση Fedora Linux 40. Η αναβάθμιση συστήματος υποστηρίζεται επίσημα το πολύ σε 2 εκδόσεις (π.χ. από 39 στο 41). Εάν χρειάζεται να κάνετε αναβάθμιση σε περισσότερες εκδόσεις, συνιστάται να το κάνετε σε πολλά μικρότερα βήματα (διαβάστε περισσότερα).
3. Εάν σε ορισμένα από τα πακέτα σας δεν ικανοποιούνται οι εξαρτήσεις, η αναβάθμιση θα αρνηθεί να συνεχιστεί μέχρι να την εκτελέσετε ξανά με την επιπλέον επιλογή –allowerasing. Αυτό συμβαίνει συχνά με πακέτα που είναι εγκατεστημένα από αποθετήρια τρίτων για τα οποία δεν έχει δημοσιευτεί ακόμη ενημερωμένο αποθετήριο. Μελετήστε το αποτέλεσμα πολύ προσεκτικά και εξετάστε ποια πακέτα πρόκειται να αφαιρεθούν. Κανένα από αυτά δεν πρέπει να είναι απαραίτητο για τη λειτουργικότητα του συστήματος, αλλά μερικά από αυτά μπορεί να είναι σημαντικά για την παραγωγικότητά σας.
- Σε περίπτωση μη ικανοποιημένων εξαρτήσεων, μερικές φορές μπορείτε να δείτε περισσότερες λεπτομέρειες εάν προσθέσετε την επιλογή –best στη γραμμή εντολών.
- Εάν θέλετε να αφαιρέσετε/εγκαταστήσετε ορισμένα πακέτα με μη αυτόματο τρόπο πριν εκτελέσετε ξανά την εντολή dnf system-upgrade download, συνιστάται να εκτελέσετε αυτές τις λειτουργίες με –setopt=keepcache=1 επιλογή γραμμής εντολών dnf. Διαφορετικά, ολόκληρη η προσωρινή μνήμη πακέτων θα αφαιρεθεί μετά τη λειτουργία σας και θα χρειαστεί να κάνετε λήψη όλων των πακέτων ξανά.
4. Όταν εισάγεται το νέο κλειδί GPG, σας ζητείται να επαληθεύσετε το δακτυλικό αποτύπωμα του κλειδιού. Ανατρέξτε στη διεύθυνση https://fedoraproject.org/security για να το κάνετε.
5. Ενεργοποιήστε τη διαδικασία αναβάθμισης. Αυτό θα επανεκκινήσει το μηχάνημά σας (άμεσα!, χωρίς αντίστροφη μέτρηση ή επιβεβαίωση, επομένως κλείστε άλλα προγράμματα και αποθηκεύστε την εργασία σας) στη διαδικασία αναβάθμισης που εκτελείται σε ένα τερματικό κονσόλας:
sudo dnf system-upgrade reboot
6. Μόλις ολοκληρωθεί η διαδικασία αναβάθμισης, το σύστημά σας θα επανεκκινήσει για δεύτερη φορά στην ενημερωμένη έκδοση του Fedora Linux.
Προαιρετικές εργασίες μετά την αναβάθμιση
Αυτές είναι μερικές από τις εργασίες που μπορείτε να κάνετε μετά από μια επιτυχημένη αναβάθμιση.
Ενημερώστε τα αρχεία ρυθμίσεων συστήματος
Τα περισσότερα αρχεία ρυθμίσεων αποθηκεύονται στο φάκελο /etc. Εάν έχετε αλλάξει τα αρχεία ρυθμίσεων του πακέτων, το RPM δημιουργεί νέα αρχεία είτε με .rpmnew (το νέο προεπιλεγμένο αρχείο διαμόρφωσης) είτε με .rpmsave (δημιουργήθηκε αντίγραφο ασφαλείας του παλιού σας αρχείου διαμόρφωσης). Μπορείτε να αναζητήσετε αυτά τα αρχεία ή να χρησιμοποιήσετε το εργαλείο rpmconf που απλοποιεί αυτή τη διαδικασία. Για να εγκαταστήσετε το rpmconf, πληκτρολογήστε:
sudo dnf install rpmconf
Μόλις ολοκληρωθεί η εγκατάσταση, εισάγετε:
sudo rpmconf -a
ΣΗΜΕΙΩΣΗ: Ορισμένα πακέτα τρίτων εγκαταλείπουν τα επεξεργασμένα αρχεία διαμόρφωσης στο /etc/yum.repos.d/ και η επαναφορά αυτών των αρχείων στις αρχικές τους εκδόσεις ενδέχεται να απενεργοποιήσει τις ενημερώσεις για το λογισμικό. Θυμηθείτε να ελέγξετε προσεκτικά τα αρχεία ρυθμίσεων σε αυτόν τον κατάλογο.
Για περισσότερες πληροφορίες μπορείτε να ανατρέξετε στις σελίδες man (man rpmconf).
Εάν χρησιμοποιείτε το rpmconf για να αναβαθμίσετε τα αρχεία ρυθμίσεων συστήματος που παρέχονται με τα αναβαθμισμένα πακέτα, τότε ορισμένα αρχεία ρυθμίσεων ενδέχεται να αλλάξουν. Μετά την αναβάθμιση θα πρέπει να επαληθεύσετε τα /etc/ssh/sshd_config, /etc/nsswitch.conf, /etc/ntp.conf και άλλα αναμένονται. Για παράδειγμα, εάν το OpenSSH αναβαθμιστεί, τότε το sshd_config επανέρχεται στην προεπιλεγμένη διαμόρφωση του πακέτου. Η προεπιλεγμένη διαμόρφωση πακέτου δεν ενεργοποιεί τον έλεγχο ταυτότητας με δημόσιο κλειδί και επιτρέπει τον έλεγχο ταυτότητας με κωδικό πρόσβασης.
Ενημερώστε τον bootloader GRUB σε συστήματα με BIOS
Τα συστήματα με υλικολογισμικό BIOS έχουν ενημερωμένα τα πακέτα GRUB RPM. Ωστόσο, ο εγκατεστημένος ή ενσωματωμένος bootloader δεν ενημερώνεται ποτέ αυτόματα. Είναι καλή ιδέα να το ενημερώσετε μεταξύ των εκδόσεων έκδοσης του Fedora Linux.
Βρείτε την κατάτμιση της συσκευής στην οποίο βρίσκεται ο κατάλογος /boot/:
sudo mount | grep "/boot " /dev/sda4 on /boot type ext4 (rw,relatime,seclabel)
Η κατάτμηση της συσκευής είναι /dev/sda4. Επανεγκαταστήστε το bootloader καθορίζοντας την κατάτμιση της συσκευής χωρίς τον αριθμό:
sudo grub2-install /dev/sda
Η σωστή έξοδος πρέπει να είναι:
Installing for i386-pc platform. Installation finished. No error reported.
Εκκαθάριση παλιών πακέτων
Με κάθε κυκλοφορία, το Fedora αποσύρει μερικά πακέτα. Υπάρχουν διάφοροι λόγοι. τα πακέτα γίνονται απαρχαιωμένα ή ο συντηρητής αποχωρεί. Το Fedora δεν διανέμει πλέον αυτά τα πακέτα. Ωστόσο, εξακολουθούν να υπάρχουν στο σύστημά σας. Αυτά τα πακέτα δεν θα λάβουν αναβαθμίσεις. Συνιστάται ιδιαίτερα η αφαίρεσή τους.
Εάν κάνετε αναβάθμιση σε μία έκδοση (π.χ. Fedora Linux 40 σε 41), εκτελέστε τις ακόλουθες εντολές:
sudo dnf install remove-retired-packages
και μετά:
remove-retired-packages
Εάν κάνετε αναβάθμιση σε δύο εκδόσεις (π.χ. Fedora Linux 39 σε 41), πρέπει να παρέχετε την παλιά έκδοση για πακέτα που θέλετε να αφαιρεθούν:
remove-retired-packages 39
Εκκαθάριση διπλότυπων πακέτων
Μπορείτε να δείτε διπλά πακέτα (πακέτα με εγκατεστημένες πολλές εκδόσεις) με:
sudo dnf repoquery –duplicates
Και μπορείτε να τα αφαιρέσετε με:
sudo dnf remove –duplicates
ΣΗΜΕΙΩΣΗ: Εκτελέστε πρώτα την εντολή sudo dnf upgrade, καθώς αυτή η λίστα είναι έγκυρη μόνο εάν έχετε ένα πλήρως ενημερωμένο σύστημα. Διαφορετικά, θα δείτε μια λίστα με εγκατεστημένα πακέτα που δεν βρίσκονται πλέον στα αποθετήρια επειδή υπάρχει διαθέσιμη ενημέρωση. Αυτή η λίστα μπορεί επίσης να περιέχει πακέτα εγκατεστημένα από αποθετήρια τρίτων που ενδέχεται να μην έχουν ενημερώσει τα αποθετήρια τους.
Για πακέτα από τα επίσημα αποθετήρια, θα πρέπει να εγκατασταθεί η πιο πρόσφατη έκδοση. Ωστόσο, ορισμένα πακέτα που βρίσκονται ακόμα στο σύστημά σας ενδέχεται να μην βρίσκονται πλέον στα αποθετήρια. Για να δείτε μια λίστα με αυτά τα πακέτα κάντε:
sudo dnf list –extras
Εάν δείτε ένα πακέτο που δεν χρειάζεστε ή δεν χρησιμοποιείτε, μπορείτε να το αφαιρέσετε με:
sudo dnf remove $(sudo dnf repoquery –extras –exclude=kernel,kernel-\*)
Μπορείτε να αφαιρέσετε με ασφάλεια πακέτα που δεν χρησιμοποιούνται πλέον με:
sudo dnf autoremove
ΠΡΟΣΟΧΗ: Το DNF αποφασίζει ότι ένα πακέτο δεν χρειάζεται πλέον, εάν δεν έχετε ζητήσει ρητά να το εγκαταστήσετε και τίποτα άλλο δεν το απαιτεί. Ωστόσο, αυτό δεν σημαίνει ότι το πακέτο δεν είναι χρήσιμο ή ότι δεν το χρησιμοποιείτε. Αφαιρέστε μόνο ό,τι είστε σίγουροι ότι δεν χρειάζεστε.
Εκκαθάριση παλιών πυρήνων
Αφού εκκινήσετε στον πιο πρόσφατο πυρήνα και δοκιμάσετε το σύστημα, μπορείτε να αφαιρέσετε προηγούμενους πυρήνες. Οι παλιοί πυρήνες παραμένουν ακόμη και μετά την εκτέλεση του dnf autoremove για να αποφευχθούν οι ακούσιες αφαιρέσεις.
Ένας από τους ευκολότερους τρόπους για να αφαιρέσετε παλιούς πυρήνες είναι με ένα script που διατηρεί τον πιο πρόσφατο πυρήνα. Το παρακάτω σψριπτ λειτουργεί κάθε φορά που το Fedora ενημερώνει έναν πυρήνα και δεν εξαρτάται από μια αναβάθμιση συστήματος.
#!/usr/bin/env bash old_kernels=($(dnf repoquery --installonly --latest-limit=-1 -q)) if [ "${#old_kernels[@]}" -eq 0 ]; then echo "No old kernels found" exit 0 fi if ! dnf remove "${old_kernels[@]}"; then echo "Failed to remove old kernels" exit 1 fi echo "Removed old kernels" exit 0
Εκκαθάριση παλαιών κλειδιών αξιόπιστων για την υπογραφή πακέτων RPM
Κλειδιά από παλαιότερες εκδόσεις Fedora και αποθετήρια τρίτων θα συσσωρεύονται στη βάση δεδομένων RPM με την πάροδο του χρόνου. Μπορείτε να αφαιρέσετε κλειδιά που δεν αναφέρονται πλέον από το /etc/yum.repos.d/ με:
sudo dnf install clean-rpm-gpg-pubkey
sudo clean-rpm-gpg-pubkey
Εκκαθάριση παλαιών symlinks
Ενδέχεται να υπάρχουν κάποια symlinks στο σύστημα αρχείων μετά από μια αναβάθμιση που δεν χρειάζονται. Μπορείτε να καθαρίσετε τα symlinks εγκαθιστώντας το βοηθητικό πρόγραμμα symlinks και διαγράφοντας τους παλιούς συνδέσμους.
sudo dnf install symlinks
Μόλις εγκατασταθεί το βοηθητικό πρόγραμμα, μπορείτε να ελέγξετε για κατεστραμμένα symlinks όπως φαίνεται παρακάτω. -r σημαίνει αναδρομικό.
sudo symlinks -r /usr | grep dangling
Αφού επαληθεύσετε τη λίστα με τους κατεστραμμένα symlinks, μπορείτε να τους διαγράψετε όπως φαίνεται παρακάτω. -d σημαίνει διαγραφή.
sudo symlinks -r -d /usr
Ενημέρωση πυρήνα rescue
Ο πυρήνας rescue και το initramfs δημιουργούνται από την Anaconda κατά την εγκατάσταση του συστήματος. Το initramfs θα ενημερωθεί όταν ενημερωθεί ο πυρήνας, αλλά ο πυρήνας rescue μπορεί να μην ενημερωθεί. Το εάν ενημερωθεί ο πυρήνας διάσωσης εξαρτάται από τη ρύθμιση του συστήματος.
Εάν ο πυρήνας rescue δεν είναι ενημερωμένος, τότε δώστε τις ακόλουθες εντολές για να τον επαναδημιουργήσετε.
sudo rm /boot/*rescue* sudo kernel-install add "$(uname -r)" "/lib/modules/$(uname -r)/vmlinuz"
Η διαδικασία επαναδημιουργίας του πυρήνα rescue μπορεί να αυτοματοποιηθεί εγκαθιστώντας το πακέτο dracut-config-rescue.
sudo dnf install dracut-config-rescue
Δείτε /usr/lib/kernel/install.d/51-dracut-rescue.install για λεπτομέρειες.
Επίλυση προβλημάτων μετά την αναβάθμιση
ΣΗΜΕΙΩΣΗ: Ακολουθήστε αυτά τα βήματα μόνο εάν αντιμετωπίσετε προβλήματα με το αναβαθμισμένο σύστημά σας.
Ανακατασκευή της βάσης δεδομένων RPM
Εάν βλέπετε προειδοποιήσεις όταν εργάζεστε με εργαλεία RPM/DNF, η βάση δεδομένων σας μπορεί να είναι κατεστραμμένη. Είναι δυνατό να το ξαναφτιάξετε για να δείτε εάν επιλύει τα προβλήματά σας. Πάντα να δημιουργείτε αντίγραφα ασφαλείας /var/lib/rpm/ πρώτα. Για να δημιουργήσετε ξανά τη βάση δεδομένων, εκτελέστε:
sudo rpm –rebuilddb
Χρήση συγχρονισμού διανομής για την επίλυση προβλημάτων εξαρτήσεων
Το εργαλείο αναβάθμισης συστήματος χρησιμοποιεί από προεπιλογή το dnf distro-sync. Εάν το σύστημά σας είναι εν μέρει αναβαθμισμένο ή βλέπετε κάποια ζητήματα εξαρτήσεων πακέτων, δοκιμάστε να εκτελέσετε έναν άλλο συγχρονισμό διανομής με μη αυτόματο τρόπο για να δείτε εάν αυτό διορθώνει το πρόβλημα. Αυτό θα προσπαθήσει να κάνει τα εγκατεστημένα πακέτα σας την ίδια έκδοση στα ενεργά αποθετήρια σας, ακόμα κι αν πρέπει να υποβαθμίσει ορισμένα πακέτα:
sudo dnf distro-sync
Μπορείτε επίσης να χρησιμοποιήσετε την επιλογή –allowerasing θα αφαιρέσει πακέτα με εξαρτήσεις που δεν μπορούν να ικανοποιηθούν. Να ελέγχετε πάντα ποια πακέτα θα αφαιρεθούν προτού το επιβεβαιώσετε:
sudo dnf distro-sync –allowerasing
Επανασήμανση αρχείων με την πιο πρόσφατη πολιτική SELinux
Εάν αντιμετωπίσετε προειδοποιήσεις σχετικά με τις πολιτικές του SELinux, ορισμένα αρχεία ενδέχεται να έχουν εσφαλμένα δικαιώματα SELinux. Αυτό μπορεί να συμβεί εάν το SELinux ήταν απενεργοποιημένο στο παρελθόν. Για να επισημάνετε ξανά το SELinux στο σύστημα, εκτελέστε την ακόλουθη εντολή και, στη συνέχεια, επανεκκινήστε:
sudo fixfiles -B onboot
Η διαδικασία εκκίνησης πιθανότατα θα διαρκέσει πολύ, καθώς ελέγχει και διορθώνει τις ετικέτες δικαιωμάτων SELinux σε όλα τα αρχεία στο σύστημά σας.
Περισσότερες πληροφορίες:
https://docs.fedoraproject.org/en-US/quick-docs/upgrading-fedora-offline
Πηγή άρθρου: https://planet.ellak.gr/ https://eiosifidis.blogspot.com