SDB:System upgrade

Μετάβαση σε: πλοήγηση, αναζήτηση

Αυτή η σελίδα βρίσκεται σε διαδικασία μετάφρασης.



Αυτός ο οδηγός σας δείχνει πώς να χρησιμοποιήσετε το Zypper για να κάνετε μια ζωντανή αναβάθμιση της διανομής openSUSE.
Δοκιμασμένο στο openSUSE Συνιστώμενα άρθρα Σχετικά άρθρα
Icon-checked.png

Icon-manual.png Icon-help.png
Version: 11.2+Ξεκινώντας από το openSUSE 11.2, υποστηρίζεται επίσημα η ζωντανή αναβάθμιση από μια προηγούμενη έκδοση. Αυτό επιτρέπει την πλήρη αναβάθμιση ενός λειτουργικού συστήματος χωρίς την ανάγκη της εκ νέου εγκατάστασής του, και χωρίς τη φόρτωση όλων των συστατικών του από την αρχή.

Περίληψη

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

Μια ενεργή αναβάθμιση έχει πλεονεκτήματα, αλλά και μειονεκτήματα.

Μεταξύ των πλεονεκτημάτων είναι:

  • Κάνετε λήψη μόνο τα απαιτούμενα για την αναβάθμιση πακέτα, έτσι χρησιμοποιείτε λιγότερο διαδικτυακό εύρος ζώνης.
  • Κατά τη διάρκεια της αναβάθμισης μπορείτε να χρησιμοποιείτε τον υπολογιστή σας(αν και αυτό δεν προτείνεται). Χρόνος εκτός λειτουργίας θα υπάρξει μόνο κατά τη διάρκεια της επανεκκίνησης μετά την ολοκλήρωση της αναβάθμισης.
  • Δεν χρειάζεται να χρησιμοποιήσετε κάποιο DVD ή DVD Writer. Μπορείτε επίσης να κάνετε εκκίνηση από ένα USB ή από το δίκτυο(net boot) και να ολοκληρώσετε την εγκατάσταση.

Τα μειονεκτήματα:

  • Αν για οποιονδήποτε λόγο διακοπεί η αναβάθμιση (πχ. διακοπή ρεύματος, διακοπή σύνδεσης στο διαδίκτυο) και η διαδικασία αδυνατεί να συνεχιστεί, μπορείτε να μείνετε με ένα κατεστραμμένο σύστημα (εξαρτάται από το πόσο έχει προχωρήσει η διαδικασία αναβάθμισης και σε ποιο σημείο διακόπηκε).
  • Αν έχετε πολλαπλά συστήματα προς αναβάθμιση, θα χρησιμοποιείτε διαδικτυακό εύρος ζώνης κάθε φορά, οπότε ίσως είναι καλύτερο να κάνετε λήψη την εικόνα ISO.
  • Αυτή η διαδικασία αναβάθμισης δεν κάνει την εκκαθάριση και τη συντήρηση που κάνει μια διαδικασία αναβάθμισης από το DVD.
Προσοχή Μην παραλείψετε κάποια έκδοση όταν κάνετε αναβάθμιση! Παράδειγμα: μην κάνετε αναβάθμιση από την έκδοση 13.1 στην έκδοση 42.1. Αντί αυτού, κάντε αναβάθμιση από την 13.1 στη 13.2 και έπειτα από τη 13.2 στη 42.1.

Άλλος Τρόπος Αναβάθμισης:

Το Offline upgrade(εκτός δικτύου αναβάθμιση), δηλαδή η κλασσική αναβάθμιση μέσω του DVD. Για περισσότερες πληροφορίες διαβάστε στο offline upgrade. Αυτή η μέθοδος αναβάθμισης είναι ασφαλέστερη και πιο ευέλικτη. Εκτός και αν υπάρχει κάποιος καλός λόγος ώστε να κάνετε αναβάθμιση με άλλο τρόπο, προτιμήστε τη μέθοδο του offline upgrade.


Υποστηριζόμενα Σενάρια

Η αναβάθμιση από μια έκδοση openSUSE 32-bit στο Leap δεν υποστηρίζεται. Το Leap παρέχεται μόνο σε εκδόσεις 64-bit. Εάν το υλικό σας υποστηρίζει x86_64, μπορείτε να κάνετε αναβάθμιση πρώτα την 13.2 σε έκδοση 64-bit. Δείτε έναν οδηγό εδώ(Αγγλική Γλώσσα)

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

Επίσης, να έχετε υπόψιν σας τους παρακάτω σημαντικούς κανόνες:

  • Για όλα τα σημαντικά δεδομένα πρέπει να δημιουργηθεί αντίγραφο ασφαλείας πριν την εκκίνηση της διαδικασίας αναβάθμισης.
  • Πρέπει να κάνετε μια πλήρη αναβάθμιση των πακέτων του συστήματός σας για την τρέχουσα έκδοση, πριν την εκκίνηση της διαδικασίας αναβάθμισης.
  • Πρέπει να χρησιμοποιήσετε την εντολή zypper dup (εντολή αναβάθμισης συστήματος) μόνο για την αμέσως επόμενη διαθέσιμη έκδοση λειτουργικού. πχ. το να πάμε από την έκδοση 13.1 -> 42.1, δεν υποστηρίζεται.

Φροντίστε ώστε το σύστημά σας να είναι ενημερωμένο

Η υποστηριζόμενη μέθοδος ξεκινάει με την τελευταία έκδοση του openSUSE, με όλες τις ενημερώσεις να έχουν εφαρμοστεί. Αυτό δεν περιλαμβάνει αυθαίρετα αποθετήρια που μπορεί να έχετε εσείς προσθέσει στο σύστημά σας. Προτείνουμε να απενεργοποιήσετε πρώτα όλα τα OBS(openSUSE Build Service) αποθετήρια, να εκτελέσετε την αναβάθμιση, και να τα ενεργοποιήσετε έπειτα. Τα παρακάτω βήματα σας δείχνουν πως να αναβαθμίσετε τη τρέχουσα έκδοση του openSUSE με τα τελευταία διαθέσιμα πακέτα, πριν προχωρήσετε στην αναβάθμιση της επόμενης έκδοσης.

Γραμμή Εντολών

1. Ελέγξτε εάν το αποθετήριο αναβάθμισης υπάρχει και είναι ενεργοποιημένο.

zypper repos --uri

Ελέγξτε εάν το http://download.opensuse.org/update/13.2/ (για openSUSE 13.2 ή προγενέστερο, αντικαταστήστε το 13.2 με την έκδοσή σας) ή το http://download.opensuse.org/update/leap/42.1/oss/ (για το openSUSE Leap 42.1 ή μεταγενέστερο, αντικαταστήστε το 42.1 με την έκδοσή σας) υπάρχει σε μια στήλη του URI, και εάν υπάρχει ένα Yes στη στήλη Enabled, όπως στο παρακάτω παράδειγμα,

#  | Alias           | Name            | Enabled | Refresh | URI
---+-----------------+-----------------+---------+---------+---------------------------------------
1  | repo-update     | repo-update     | Yes     | Yes     | http://download.opensuse.org/update/13.2/

Εάν η στήλη Enabled γράφει No, ενεργοποιήστε το με την εντολή

zypper modifyrepo --enable repo-update
όπου ‘repo-update’ είναι το όνομα του αποθετηρίου αναβάθμισης.

Εάν υπάρχει και είναι ήδη ενεργοποιημένο, προχωρήστε στο βήμα 3.

2. Προσθήκη Αποθετηρίου Αναβάθμισης

(για το openSUSE 13.2 ή προγενέστερο):

zypper addrepo --check --refresh --name 'openSUSE-13.2-Update' http://download.opensuse.org/update/13.2/ repo-update
Αντικαταστήστε το 13.2 παραπάνω με τη δική σας τρέχουσα έκδοση openSUSE.

(για το openSUSE Leap 42.1 ή νεότερο):

zypper addrepo --check --refresh --name 'openSUSE-Leap-42.1-Update' http://download.opensuse.org/update/leap/42.1/oss/ repo-update
Αντικαταστήστε το 42.1 παραπάνω με τη δική σας τρέχουσα έκδοση openSUSE.


3. Μετακίνηση του /var/cache σε ξεχωριστό subvolume

Ο κατάλογος /var/cache περιέχει δεδομένα που μπορούν να χαρακτηριστούν ως ευμετάβλητα, όπως την cache του Zypper με τα πακέτα RPM σε διαφορετικές εκδόσεις από κάθε αναβάθμιση. Ως αποτέλεσμα της αποθήκευσης πλεονάζων δεδομένων τα οποία όμως είναι εξαιρετικά ευμετάβλητα, ο χώρος που καταλαμβάνει ένα στιγμιότυπο(snapshot) μπορεί να αυξηθεί πολύ γρήγορα. Για να επιλύσουμε αυτό το πρόβλημα μπορούμε να μετακινήσουμε τον κατάλογο /var/cache σε ένα ξεχωριστό subvolume:

  • Εντοπίστε το όνομα της συσκευής που φιλοξενεί το σύστημα αρχείων root:
df /
  • Αναγνωρίστε το γονικό subvolume όλων των υπολοίπων subvolumes. Για το openSUSE 13.2, είναι ένα subvolume με ονομασία @:
btrfs subvolume list / | grep '@'
  • Αν το αποτέλεσμα αυτής της εντολής είναι κενό, δεν έχετε κάποιο subvolume με ονομασία @. Σε αυτή τη περίπτωση πιθανόν να μπορείτε να προχωρήσετε με το subvolume ID 5, το οποίο χρησιμοποιούταν σε παλαιότερες εκδόσεις του openSUSE.
  • Κάντε προσάρτηση το συγκεκριμένο subvolume σε ένα προσωρινό σημείο προσάρτησης:
mount /dev/<root-device> -o subvol=5@ /mnt
Εάν δεν έχετε ένα subvolume με όνομα @, κάντε προσάρτηση αντί αυτού το subvollume ID 5:
mount /dev/<root-device> -o subvolid=5 /mnt
  • Ο κατάλογος /mnt/var/cache μπορεί να υπάρχει ήδη και είναι ο ίδιος με τον /var/cache. Για να αποφύγετε πιθανή απώλεια δεδομένων, μετακινήστε τον:
mv /mnt/var/cache /mnt/var/cache.old
  • Δημιουργήστε ένα νέο subvolume:
btrfs subvol create /mnt/var/cache
  • Εάν τώρα υπάρχει ένας κατάλογος /var/cache.old μετακινήστε τον στη νέα τοποθεσία:
mv /var/cache.old/* /mnt/var/cache
Εάν κάτι τέτοιο δεν συμβαίνει, αντί αυτού κάντε:
mv /var/cache/* /mnt/var/cache/
  • Μετά τη μετακίνηση (προαιρετικά) διαγράψτε το /mnt/var/cache.old:
rm -rf /mnt/var/cache.old
  • Κάντε αποπροσάρτηση του subvolume από το προσωρινό σημείο προσάρτησης:
umount /mnt
  • Προσθέστε μια εισαγωγή (γραμμή) στο /etc/fstab για το νέο /var/cache subvolume. Χρησιμοποιήστε ένα υπάρχων subvolume ως πρότυπο για να αντιγράψετε από αυτό. Βεβαιωθείτε ότι έχετε αφήσει το πεδίο UUID απείραχτο (αυτό είναι το UUID του συστήματος αρχείων του root) και αλλάξτε το όνομα του subvolume και το σημείο προσάρτησης στο /var/cache.
  • Κάνετε προσάρτηση το νέο subvolume όπως αυτό προσδιορίζεται στο /etc/fstab:
mount /var/cache

4. Αναβαθμίστε το σύστημα με τα τελευταία πακέτα

zypper refresh
zypper update

For more information, read Zypper Usage.

Γραφικό Εργαλείο

Δείτε το YaST Online Update.


Εκτελώντας την αναβάθμιση

Τα παρακάτω βήματα θα σας δείξουν πως να κάνετε αναβάθμιση του openSUSE σας, στην επόμενη έκδοση (πχ. 13.2 -> 42.1). Όπως έχει ήδη αναφερθεί, οποιαδήποτε αποθετήρια τρίτων (OBS) μπορούν να δημιουργήσουν προβλήματα, γι' αυτό προτείνεται να τα απενεργοποιήσετε ή ακόμη και να τα διαγράψετε πριν προχωρήσετε.

Πριν ξεκινήσετε

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

Επίσης, διαβάστε τις σημειώσεις έκδοσης οι οποίες αναφέρουν τις αλλαγές που έχουν γίνει στη νέα έκδοση.

Γραμμή Εντολών

As an example, we will be showing upgrade from 13.2 to 42.1 here:

  • Take a look at all repos you have
    zypper lr
    and remove all third party/OBS repos you no longer need
    # zypper rr <alias>
  • Change all remaining repo URLs to the new version of the distribution (needs to be run as root)
    # cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.Old
    (for a backup copy), then:
    # sed -i 's,openSUSE_13\.2,openSUSE_Leap_42.1,g' /etc/zypp/repos.d/*
    # sed -i 's,13\.2,leap/42.1,g' /etc/zypp/repos.d/*
    NOTE - Although the above sed based modification might work for other repos, it fails modifying the update repos upgrading from 13.2. To fix the problem, paste and run the following(all a single line) in your console which manually adds the update repos using the correct URI:
# zypper rr repo-update repo-update-non-oss && zypper ar -f http://download.opensuse.org/update/leap/42.1/oss/ openSUSE-Leap-42.1-Update && zypper ar -f http://download.opensuse.org/update/leap/42.1/non-oss/ openSUSE-Leap-42.1-Update-Non-Oss
  • If you are upgrading from 12.1 or older, add non-oss-update repo
# zypper ar -f http://download.opensuse.org/update/leap/42.1/non-oss/ repo-update-non-oss
  • Refresh new repositories (you might be asked to accept new gpg key)
    # zypper --gpg-auto-import-keys ref
    If you haven't removed third party/OBS repositories you may encounter some errors as these repositories may not exist yet or they may have different unguessable URL. It is always recommended to remove them and add their newer version after upgrade.
  • Now execute the full distribution upgrade.
Προσοχή It is strongly recommended that you run the upgrade not in runlevel 5 (graphical mode) but in runlevel 3 (text + network).

People had their X session stopped/crashed during the upgrade, causing the upgrade to abort, which in turn left the system in an inconsistent state.

To change to runlevel 3, see SDB:Switch_runlevel.

# zypper dup
With the above command, zypper will download all required packages and install them in heaps. To download all packages in advance, use:
# zypper dup --download in-advance
If you did the above dist upgrade before the official release date (eg.2014-11-04 for 13.2), you may have installed a Release Candidate (RC) or a milestone version and will need to repeat the final zypper dup step now to receive the final release.


 deleted providers: libyui-ncurses-pkg5-2.44.4-2.1.5.x86_64                                                                  
Solution 1: Following actions will be done:                                                                                  
 deinstallation of PackageKit-backend-zypp-0.8.11-2.3.1.x86_64
 deinstallation of PackageKit-0.8.11-2.3.1.x86_64
 deinstallation of PackageKit-branding-openSUSE-13.1-2.2.1.noarch
 deinstallation of apper-lang-0.8.1-11.7.1.noarch
Solution 2: deinstallation of patterns-openSUSE-yast2_basis-13.1-13.6.1.x86_64
Solution 3: deinstallation of sysvinit-2.88+-89.1.2.x86_64
Solution 4: install PackageKit-0.8.17-3.1.3.i586 despite the inferior architecture
Solution 5: keep libyui-ncurses-pkg5-2.44.4-2.1.5.x86_64
Solution 6: keep libyui-ncurses-pkg5-2.44.4-2.1.5.x86_64
Solution 7: break patterns-openSUSE-yast2_basis-13.1-13.6.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/5/6/7/s/r/c] (c): 

Make the choice to delete sysvinit. }}

  • Search for updated openSUSE leap 42.1 compatible third-party repositories that you used before — if you still need them — and add them.
    Προσοχή Use with caution. Using third-party repositories may break your system or cause instabilities.
zypper addrepo --name <name> <url> <alias>
Or, if you have URL of a .repo file:
# zypper ar <url.repo>
  • After upgrade, reboot is recommended to start the new kernel and newer versions of everything.
In addition, zypper up can be run from time to time to ensure you have the latest available packages from the various repositories that you have enabled. YOU (Yast Online Update) only addresses security updates from the official repositories.

Links to other openSUSE or SUSE projects

The openSUSE Forums