Upgrade FreeBSD 12.2 to 13.0

This short article illustrates the upgrade from FreeBSD 12.2 to FreeBSD 13.0.

IMPORTANT: Please take a full backup or create a snapshot before upgrading.

The whole upgrade process took about 45 minutes. This first 20 minutes where taken for download. During this time all applications where available to the users.


r@k:~ # freebsd-update fetch install
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 12.2-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 12.2-RELEASE-p6.
No updates are available to install.


r@k:~ # freebsd-update -r 13.0-RELEASE upgrade

Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 12.2-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic kernel/generic-dbg world/base world/doc world/lib32

The following components of FreeBSD do not seem to be installed:
world/base-dbg world/lib32-dbg

Does this look reasonable (y/n)? y

Fetching metadata signature for 13.0-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 12.2-RELEASE for merging... done.
Preparing to download files... done.
Fetching 10108 patches
.... done.
Applying patches... 

Attempting to automatically merge changes in files... done.

The following file could not be merged automatically: /etc/newsyslog.conf
Press Enter to edit this file in vi and resolve the conflicts
manually...

The following file could not be merged automatically: /etc/ntp.conf
Press Enter to edit this file in vi and resolve the conflicts
manually...

The following file will be removed, as it no longer exists in
FreeBSD 13.0-RELEASE: /etc/motd
Does this look reasonable (y/n)? 


To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".

r@k:~ # /usr/sbin/freebsd-update install

Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

r@k:~ # shutdown -r now


r@k:~ # /usr/sbin/freebsd-update install
Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
Scanning //usr/local/share/certs for certificates...

Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
again to finish installing updates.

r@k:~ # uname -a
FreeBSD wnk202012 13.0-RELEASE FreeBSD 13.0-RELEASE #0 releng/13.0-n244733-ea31abc261f: Fri Apr  9 04:24:09 UTC 2021     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC  amd64

r@k:~ # pkg update ; pkg upgrade
pkg: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
Updating FreeBSD repository catalogue...
pkg: Repository FreeBSD has a wrong packagesite, need to re-create database
Fetching meta.conf: 100%    163 B   0.2kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB   6.5MB/s    00:01    
Processing entries: 100%
FreeBSD repository update completed. 30300 packages processed.
All repositories are up to date.
pkg: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (68 candidates): 100%
Processing candidates (68 candidates): 100%
The following 68 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
        awstats-7.8,1 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        bash-5.1.4_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        bpytop-1.0.62 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        ca_root_nss-3.63 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        curl-7.75.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        dehydrated-0.7.0 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        expat-2.2.10 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        fontconfig-2.13.93,1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        freetype2-2.10.4 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        gettext-0.21 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        gettext-runtime-0.21 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        gettext-tools-0.21 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        giflib-5.2.1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        icu-68.2,1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        indexinfo-0.3.1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        jbigkit-2.1_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        jpeg-turbo-2.0.6 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        lcms2-2.12 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libX11-1.6.12,1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libXScrnSaver-1.2.3_2 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libXau-1.0.9 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libXdmcp-1.1.3 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libXext-1.3.4,1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libXft-2.3.3 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libXrender-0.9.10_2 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libedit-3.1.20210216,1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libffi-3.3_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libiconv-1.16 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        liblz4-1.9.3,1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libnghttp2-1.43.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libpthread-stubs-0.4 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        libtextstyle-0.21 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libxcb-1.14_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        libxml2-2.9.10_3 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        llvm11-11.0.1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        llvm90-9.0.1_3 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        lua52-5.2.4 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        nginx-1.18.0_49,2 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        openjpeg-2.4.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        p5-Apache-Htpasswd-1.9_2 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        p5-Crypt-PasswdMD5-1.40 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        p5-Digest-HMAC-1.03_1 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        p5-Digest-SHA1-2.13_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        p5-Net-DNS-1.29,1 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        p5-Net-IP-1.26_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        p5-Net-XWhois-0.90_5 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        pcre-8.44 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        perl5-5.32.1_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        pkg-1.16.3 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        png-1.6.37_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        postgresql13-client-13.2 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        postgresql13-server-13.2 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        py37-olefile-0.46 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        py37-pillow-7.0.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        py37-psutil-5.8.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        py37-setuptools-44.0.0 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        py37-supervisor-4.2.1,1 (ABI changed: 'freebsd:12:*' -> 'freebsd:13:*')
        py37-tkinter-3.7.10_6 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        python37-3.7.10 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        readline-8.1.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        rsync-3.2.3 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        tcl86-8.6.11_1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        tiff-4.2.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        tk86-8.6.11_2 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        webp-1.2.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        xorgproto-2020.1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        xxhash-0.8.0 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
        zstd-1.4.8 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')

Number of packages to be reinstalled: 68

The process will require 5 MiB more space.
342 MiB to be downloaded.

Proceed with this action? [y/N]: y
  =========== BACKUP YOUR DATA! =============
  As always, backup your data before
  upgrading. If the upgrade leads to a higher
  major revision (e.g. 9.6 -> 10), a dump
  and restore of all databases is
  required. This is *NOT* done by the port!
  See https://www.postgresql.org/docs/current/upgrading.html
  ===========================================
[61/68] Extracting postgresql13-server-13.2: 100%
[62/68] Reinstalling p5-Apache-Htpasswd-1.9_2...
[62/68] Extracting p5-Apache-Htpasswd-1.9_2: 100%
[63/68] Reinstalling nginx-1.18.0_49,2...
===> Creating groups.
Using existing group 'www'.
===> Creating users
Using existing user 'www'.
[63/68] Extracting nginx-1.18.0_49,2: 100%
[64/68] Reinstalling llvm90-9.0.1_3...
[64/68] Extracting llvm90-9.0.1_3: 100%
[65/68] Reinstalling gettext-0.21...
[66/68] Reinstalling dehydrated-0.7.0...
[66/68] Extracting dehydrated-0.7.0: 100%
[67/68] Reinstalling bpytop-1.0.62...
[67/68] Extracting bpytop-1.0.62: 100%
[68/68] Reinstalling awstats-7.8,1...
[68/68] Extracting awstats-7.8,1: 100%
You may need to manually remove /usr/local/etc/ssl/cert.pem if it is no longer needed.
You may need to manually remove /usr/local/openssl/cert.pem if it is no longer needed.
You may need to manually remove /usr/local/etc/supervisord.conf if it is no longer needed.
You may need to manually remove /usr/local/etc/nginx/mime.types if it is no longer needed.
You may need to manually remove /usr/local/etc/nginx/nginx.conf if it is no longer needed.
You may need to manually remove /usr/local/etc/dehydrated/config if it is no longer needed.
You may need to manually remove /usr/local/etc/dehydrated/domains.txt if it is no longer needed.
r@k:~ # /usr/sbin/freebsd-update install
r@k:~ # shutdown -r now
r@k:~ # df -k;find /var/db/freebsd-update/files -type f -mtime +60d -delete; df -k

Published: April 13, 2021

Change Content

The information on this page is user generated content. The content does not claim to be complete or correct.

Everybody is invited to add or change the data. Just click on this link. No login or email is required. Thanks.