O CentOS é bem conservador, assim como sua matriz, o RedHat. Assim, geralmente as versões de linguagens e sistemas que vem instalados são geralmente as versões mais estáveis, porém nem sempre as mais recentes.
Quando precisamos instalar versões mais recentes de PHP, Python e outras linguagens é necessário ou compilar ou recorrer a algum repositório confiável que já possua os binários prontinhos.
Outro dia precisei instalar o Python 3.8 no CentOS7 e vi que, através do yum, a versão máxima que instalava era a 3.6. Como eu não queria compilar e também queria ter uma gerência de pacotes, pesquisei uma boa forma de fazê-lo.
Não é que existe um SIG (Special Interest Group) focado em Software Collections para CentOS? Ele fica aqui nesse repositório Git: Package centos-release-scl for RHEL users. Nesse Readme já é mostrado como instalar o repositório.
yum install centos-release-scl
yum --enablerepo=centos-sclo-rh -y install rh-python38
scl enable rh-python38 bash
python -V
which python
Resultado:
/opt/rh/rh-python38/root/usr/bin/python
vi /etc/profile.d/python38.sh
Colocar as seguintes linhas:
source /opt/rh/rh-python38/enable
export X_SCLS="`scl enable rh-python38 'echo $X_SCLS'`"
Isso resolveu o problema de forma muito simples, possível de ser replicado e atualizado.