Προετοιμασία
Ο pegasus χρησιμοποιούσε 8.2-RELEASE-p4 64bit. Πριν την εκκίνηση του upgrade αποφάσισα να σβήσω όλα τα πακέτα - μετά από μια αναβάθμιση σε major έκδοση συνήθως απαιτείται να γίνουν rebuild τα πάντα (το γνωστό portupgrade -af το οποίο αλλάζει το κλίμα του πλανήτη). Αντί για αυτό - και καθώς τα πακέτα ήταν ήδη παλιά - αποφάσισα να τα σβήσω όλα και να βάλω νέα μετά την αναβάθμιση.
Το σβήσιμο των πακέτων μπορεί να γίνει με
pkg_delete -a
αλλά αυτό αργεί. Τη στιγμή που θέλουμε να τα σβήσουμε όλα, είναι προτιμότερο να διαγράψουμε όλο το /usr/local
(αφού κρατήσουμε backup το /usr/local/etc
) και να διαγράψουμε επίσης τα περιεχόμενα του /var/db/pkg
. Όλα (σχεδόν) τα ports εγκαθιστούνται στο /usr/local
και τους υποκαταλόγους του, οπότε αυτή είναι μια γρήγορη μέθοδος να τα... ξεφορτωθούμε. Μια εξαίρεση είναι το linux_base
το οποίο αν το έχετε εγκατεστημένο, καλό θα είναι να το βγάλετε με τον παραδοσιακό τρόπο (pkg_delete) πριν συνεχίσετε.Αν χρησιμοποιείται σαν default shell το bash, μη ξεχάσετε να το αλλάξετε σε ένα από τα shell που ανήκουν στο βασικό σύστημα (π.χ. csh):
chsh -s csh
Password:
Κάντε logout - login για να ενεργοποιηθεί. Έπειτα σβήστε τα πάντα αφού κρατήσετε backup το
/usr/local/etc
. Εννοείται φυσικά ότι θα κλείσετε το γραφικό περιβάλλον και τα προγράμματα που χρησιμοποιείτε πριν αρχίσετε το σβήσιμο!# cd /usr/
# mv local/etc .
# rm -rf local
# mkdir local
# mv etc local
# cd /var/db
# rm -rf pkg
# mkdir pkg
Αυτό ήταν! Εκτελώντας
pkg_info
θα διαπιστώσετε ότι δεν έχετε κανένα εγκατεστημένο πακέτο. Μπορείτε τώρα να συνεχίσετε με το upgrade.Το upgrade
Κάνουμε πρώτα την ενημέρωση του freebsd-update όπως αναγράφεται στο announcement:
# sed -i '' -e 's/=_/=%@_/' /usr/sbin/freebsd-update
και έπειτα εκτελούμε:
# freebsd-update -r 9.0-RC1 upgrade
Διαβάζουμε τα μηνύματα, εκτελούμε το merge των αρχείων όπου ζητείται και εκτελούμε:
# freebsd-update install
Κάνουμε επανεκκίνηση με το νέο πυρήνα (αν χρησιμοποιούσατε custom πυρήνα, βεβαιωθείτε ότι έχετε βάλει κατάλληλα αρθρώματα στο /boot/loader.conf για να λειτουργήσετε με το GENERIC), και εκτελούμε ξανά:
# freebsd-update install
Με αυτό το δεύτερο install γίνεται η εγκατάσταση του userland. Αν σας ζητήσει να κάνετε rebuild όλα τα ports και να το ξανατρέξετε, μπορείτε να το κάνετε απευθείας. Μη ξεχνάτε, δεν έχετε ports εγκατεστημένα!
# freebsd-update install
Εγκατάσταση του Source
Λόγω της αλλαγής packaging στο FreeBSD 9.0, το freebsd-update δεν αναβαθμίζει τον πηγαίο κώδικα στο
/usr/src
αν τον έχετε εγκατεστημένο (και φυσικά τον έχετε, γιατί δεν νοείται FreeBSD χωρίς source). Αντίθετα, τον σβήνει! Ελέγξτε αν έχει μείνει κάτι μέσα στο /usr/src
που χρειάζεστε ή έχετε αλλάξει (κάποιο ξεχασμένο kernel configuration file ίσως; Είναι κακή ιδέα να τα αποθηκεύετε εκεί). Διαγράψτε τυχόν υπολείμματα και πάμε να εγκαταστήσουμε το νέο source:# cd /usr
# rm -rf src
# mkdir src
# cd src
# fetch ftp://ftp.otenet.gr/pub/FreeBSD/releases/amd64/amd64/9.0-RC1/src.txz
# cd /
# tar xvpzf /usr/src/src.txz
# rm /usr/src/src.txz
Αυτό ήταν. Μπορείτε τώρα να δημιουργήσετε ξανά προσαρμοσμένο πυρήνα και να αρχίσετε να εγκαθιστάτε ξανά τις εφαρμογές σας. Καλό απόγευμα (και ξενύχτι) :)