Como Ignacio aponta, você pode usar yumdownloader .
Mas para o segundo passo
rpm -ivh --relocate /usr=/home/username/usr --relocate /etc=/home/username/etc
ou
rpm -ivh --relocate /=/home/username/progname
é provavelmente mais fácil.
Se o RPM tiver scripts que supõem que estejam sendo executados como root, talvez seja necessário adicionar a opção --noscripts .
Além disso, você pode adicionar a opção --aid para resolver dependências.
No entanto, outras opções úteis neste caso são --root para evitar que o rpm grave em /var path (já que você não é root), então o comando será algo como:
rpm -ivh --relocate /=/home/username/progname --root /home/username/progname