Essa é a maneira correta. É responsabilidade das pessoas liberarem o .tar.gz para ter o arquivo de especificação de rpm apropriado, se ele for construído como um rpm. E é assim que você constrói o rpm a partir do arquivo de especificações.
Os arquivos rpm gerados dessa forma podem ser instalados em todos os servidores correspondentes, desde que você não tenha deliberadamente feito coisas que os impedissem de funcionar (como instalar versões estranhas das "dependências", mas se você tiver instalado pacotes somente a partir do repositórios base centos, os pacotes serão bons). Mas "correspondência" aqui significa a arquitetura e a versão centos / rhel. Arquitetura normalmente significa apenas x86 de 32 bits ou 64 bits, mas também há arquiteturas de braço, powerpc e outras. Por exemplo, o projeto Fedora suporta estas arquiteturas: link .
De qualquer forma, alguns rpms (específicos da arquitetura) podem ser instalados em uma determinada arquitetura, porque eles contêm código compilado. Outros rpms podem ser "noarch", o que significa que o rpm gerado pode ser instalado em qualquer arquitetura. Esse tipo de rpms não tem binários compilados neles, apenas dados ou programas de linguagem interpretados (shell, perl, python, etc).