pg_upgrade doesn't find config file
You know what they say about the word assume
I assumed the config dir and data dir was the same.
Answer 1:
Change your command to this and it will work.
sudo -u postgres /usr/lib/postgresql/10/bin/pg_upgrade \
-b /usr/lib/postgresql/9.6/bin -B /usr/lib/postgresql/10/bin \
-d /var/lib/postgresql/9.6/main/ -D /var/lib/postgresql/10/main/
-o 'config_file=/etc/postgresql/9.6/main/postgresql.conf' \
-O 'config_file=/etc/postgresql/10/main/postgresql.conf'
we can provide the special config file location as an option
Also, I believe you have identified a default install issue or the documentation needs to be updated
The default install should create the config files in the datadir
Answer 2:
Since this is play, try this too:
sudo -u postgres pg_dropcluster 10 main
sudo -u postgres pg_upgradecluster 9.6 main
Keeping this, since it might help someone else.
The empty databases seem to have not been created yet. Or are in a different directory. That's why postgresql.conf is not found in the error message.
ls -l /var/lib/postgresql/9.6/main/postgresql.conf /var/lib/postgresql/10/main/postgresql.conf
should show two files.
The equivalent initdb command for both versions should be run
pg_ctl -D /var/lib/postgresql/9.6/main initdb
pg_ctl -D /var/lib/postgresql/10/main initdb