Actually there will be 10 not 20, because the package is architecture-independent (hence "noarch"). Also I don't think we care that much about versions before 9.1 (we care about 9.1 because it's used in Click). Also I don't care about Centos 5, so there will be 2 links only:

> http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm
> http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm

Don't worry about making all versions work on all platforms. I imagine we may have something like this:

```ruby
url = {
    5 => {
        '9.1' => 'http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-redhat91-9.1-5.noarch.rpm',
    },
    6 => {
        '9.1' => 'http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm',
        '9.3' => 'http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm',
    }
}[platform_version][pg_version]
```

I still like that better than hard-coding the key and repo config file.