Updating Alpine Linux

Published on January 08, 2023

Exporting PostgreSQL

If you have installed PostgreSQL on your server, then you may need to migrate your existing PostgreSQL database to the new version. This happens with every major version increase, as PostgreSQL may decide to modify the database format. As such, we first export the contents of our PostgreSQL database to a series of SQL queries that we can then execute to import the data into the new database. Thus, we run the following commands to export the database:

FILENAME=dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
pg_dumpall -c -U postgres > $FILENAME

The above command is also useful if you want to regularly make backups of your PostgreSQL database.

Updating Alpine

To upgrade Alpine we simply need to modify the versions in the /etc/apk/repositories file. For instance, to upgrade from Alpine Linux 3.16 to 3.17, we would change v3.16 to v3.17 in the following two lines in the /etc/apk/repositories file:

http://dl-cdn.alpinelinux.org/alpine/v3.16/main
http://dl-cdn.alpinelinux.org/alpine/v3.16/community

It's also possible to use the sed tool to simply update the version numbers:

sed -i -e 's/v3\.16/v3.17/g' /etc/apk/repositories

After updating the repositories, we can simply update the package lists by running the following command:

apk update

While not always necessary, it is recommend to update Alpine's package manager first:

apk add --upgrade apk-tools

Then we can upgrade all installed packages, including packages that have the same version numbers using the --available switch (in case uClibc requires this):

apk upgrade --available

If the Linux kernel has been updated, you may want to reboot the machine as follows:

sync
reboot

Otherwise you can simply update any of the updated services.

Importing PostgreSQL

After updating Alpine Linux, we can restart the PostgreSQL service:

/etc/init.d/postgresql restart

If the major version increased in between updates, the above command will create a new database from scratch. Thus, we have to import the contents of our previous PostgreSQL database by running the following command:

cat $FILENAME | psql -U postgres -d postgres

[ #alpine ]


If you like my work or if my work has been useful to you in any way, then feel free to donate me a cup of coffee. Any donation is much appreciated!