TLDR; just follow this guide.

At home I run DHCP and DNS servers on Odroid U3, a system on a chip (SoC) computer. This allows me to have lots of control over my home network and most importantly – fun. I also run some web sites and Postgresql databases for testing purposes.

The SoC computer runs Ubuntu 16.04 as the operating system. Recently, the Odroid U3 died.

A coworker also has an SoC, an Odroid XU4. But, he found no use of it so I bought it off him at a very good price. This new SoC will replace the Odroid U3.

After flashing the Ubuntu 16.04 image on this new XU4, it didn’t seem to have correct locale set. I found this out when I could not start Postgresql server, and here is the log message:

To check the locale setting, run:

To list available locale, run:

From the above output, there is no other available locales available. I only need English language, especially the en_US.utf8, which is provided by language-pack-en-base package. Install it with the following command:

Recheck the available locales:

Now I can set the system-wide local with the following command:

Once the locale was correctly set to en_US.utf8, I was able to to successfully start Postgresql server.

Here’s an extract from the Postgresql log: