在AWS Amazon Linux(EC2)AMI上安装PostgreSQL Client v10

时间:2018-03-30 11:07:32

标签: postgresql amazon-web-services amazon-ec2

我已成功启动新的AWS RDS PostgreSQL v10 实例,需要在Amazon Linux EC2实例上安装PostgreSQL v10客户端。

我尝试使用yum安装它,但它找不到v10的包:

[ec2-user@ip-X-X-X-X ~]$ sudo yum install -y postgresql10
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main      | 2.1 kB  00:00:00
amzn-updates  | 2.5 kB  00:00:00
No package postgresql110 available.
Error: Nothing to do

之前我设法安装了PostgreSQL客户端v9.5:

[ec2-user@ip-X-X-X-X ~]$ sudo yum install -y postgresql95

我想我需要添加Postgres yum存储库,如https://www.postgresql.org/download/linux/redhat/中所述。但是我应该为亚马逊Linux选择什么平台?红帽?

11 个答案:

答案 0 :(得分:36)

设计用于RedHat的Packages / Repos也适用于Amazon Linux,Amazon Linux是RHEL的最小安装版本。如果您为以下步骤选择旧版本的Amazon Linux(Amazon linux 1),则可能会遇到兼容性问题,否则它应该可以在最新版本的Amazon Linux 2中正常工作。

检查Amazon Linux版本

[ec2-user ~]$ cat /etc/system-release
Amazon Linux release 2.0 (2017.12) LTS Release Candidate

为PostgreSQL安装RHEL 7 yum repo

[ec2-user ~]$ sudo yum install -y  https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noarch.rpm

[ec2-user ~]$ sudo sed -i "s/rhel-\$releasever-\$basearch/rhel-latest-x86_64/g" "/etc/yum.repos.d/pgdg-10-redhat.repo"

安装PostgreSQL客户端v10

[ec2-user ~]$ sudo yum install -y postgresql10
[ec2-user ~]$ psql --version
psql (PostgreSQL) 10.3

详细了解Amazon Linux 2

注意! Amazon Linux 2通过Amazon Linux Extras Repositoryamazon-linux-extras)(仅限客户端)提供额外的软件包安装。由于postgresql10尚未推出,因此添加额外的yum repo是目前唯一的解决方案。

UDATE 2019年5月

那些看到

的人
  

错误:包:pgdg-redhat-repo-42.0-4.noarch   (/pgdg-redhat-repo-latest.noarch)

     

需要:/ etc / redhat-release

仍然可以逐步安装所有依赖项和服务器:

yum install y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/postgresql10-libs-10.7-2PGDG.rhel7.x86_64.rpm
yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/postgresql10-10.7-2PGDG.rhel7.x86_64.rpm
yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-latest-x86_64/postgresql10-server-10.7-2PGDG.rhel7.x86_64.rpm

答案 1 :(得分:14)

sudo amazon-linux-extras安装postgresql10

答案 2 :(得分:10)

适应Haneef Mohammed对Amazon Linux 1的答案(于2018.03测试):

转到Postgres repositories page并获取“ Red Hat Enterprise Linux 6-x86_64”的URL。安装PG存储库并修改条目,将'$ releasever'替换为'6.9'(或newer?):

[ec2-user ~]$ sudo yum install -y  https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-6-x86_64/pgdg-redhat10-10-2.noarch.rpm

[ec2-user ~]$ sudo sed -i "s/rhel-\$releasever-\$basearch/rhel-6.9-x86_64/g" "/etc/yum.repos.d/pgdg-10-redhat.repo"

第二部分相同:

[ec2-user ~]$ sudo yum install -y postgresql10
[ec2-user ~]$ psql --version
psql (PostgreSQL) 10.3

答案 3 :(得分:8)

由于先前的答案对我都不起作用,因此我添加了一个解决方案,可以安装postgresql10客户端。我们在管道中使用VERSION="2018.03"的Amazon Linux AMI。

从源代码构建:

注意:以下链接指向postgresql 10.4,您可能要检查较新的版本

sudo yum install -y gcc readline-devel zlib-devel
wget https://ftp.postgresql.org/pub/source/v10.4/postgresql-10.4.tar.gz
tar -xf postgresql-10.4.tar.gz
cd postgresql-10.4
./configure
make -C src/bin
sudo make -C src/bin install
make -C src/include
sudo make -C src/include install
make -C src/interfaces
sudo make -C src/interfaces install
make -C doc
sudo make -C doc install

新软件包及其所有可执行文件都应安装在以下位置:/usr/local/pgsql/bin

现在,请记住,命令psqlpg_dump等仍然指向旧版本的psql客户端。您可以使用完整的可执行路径(/usr/local/pgsql/bin/psql)运行,也可以在$PATH的开头添加新目录,以便系统首先查找它:

编辑~/.bash_profile,最后添加:

export PATH="/usr/local/pgsql/bin:$PATH"

然后运行:

source ~/.bash_profile

现在一切准备就绪:

[ec2-user@ip-xx-x-x-xxx ~]$ psql --version
psql (PostgreSQL) 10.4

答案 4 :(得分:2)

我解决问题的方法是运行

yum clean all

之前

yum install -y postgresql10 

在Amazon Linux上

答案 5 :(得分:1)

对于Amazon Linux 2上的v11,我必须要做

yum -y install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
sed -i "s/rhel-\$releasever-\$basearch/rhel-7-x86_64/g" "/etc/yum.repos.d/pgdg-11-centos.repo"

答案 6 :(得分:1)

PGDG存储库不再适用于Amazon Linux。这样您就可以使用亚马逊仓库了。

amazon-linux-extras install postgresql10 vim epel -y

或者关注这篇文章

https://installvirtual.com/install-postgresql-10-on-amazon-ec2/

答案 7 :(得分:1)

PSql10.7安装(08/20/2019)

删除所有旧版本的Psql客户端并执行以下步骤:

wget https://yum.postgresql.org/10/redhat/rhel-6.9-x86_64/postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm
wget https://yum.postgresql.org/10/redhat/rhel-6.9-x86_64/postgresql10-10.7-1PGDG.rhel6.x86_64.rpm
sudo rpm -ivh postgresql10-libs-10.7-1PGDG.rhel6.x86_64.rpm
sudo rpm -ivh postgresql10-10.7-1PGDG.rhel6.x86_64.rpm

答案 8 :(得分:1)

以下内容适用于Amazon Linux(v1)上的psql v11

wget https://yum.postgresql.org/11/redhat/rhel-6.9-x86_64/postgresql11-libs-11.8-1PGDG.rhel6.x86_64.rpm
wget https://yum.postgresql.org/11/redhat/rhel-6.9-x86_64/postgresql11-11.8-1PGDG.rhel6.x86_64.rpm

sudo yum clean all
sudo rpm -ivh postgresql11-libs-11.8-1PGDG.rhel6.x86_64.rpm
sudo rpm -ivh postgresql11-11.8-1PGDG.rhel6.x86_64.rpm

答案 9 :(得分:0)

从2019年5月25日开始,以下直接RPM安装在Amazon Linux 1 2018.03(最新Beanstalk平台版本)上为我工作,以安装PostgreSQL客户端10.7:

sudo rpm -ivh --force https://yum.postgresql.org/testing/10/redhat/rhel-6-x86_64/postgresql10-libs-10.7-2PGDG.rhel6.x86_64.rpm
sudo rpm -ivh --force https://yum.postgresql.org/testing/10/redhat/rhel-6-x86_64/postgresql10-10.7-2PGDG.rhel6.x86_64.rpm

答案 10 :(得分:-1)

这是我的2019年解决方案:

只需

 sudo amazon-linux-extras install postgresql9.6

您不必从任何外部来源下载它,因为默认情况下它已从Amazon提供给您,因此您所要做的就是安装它。

其他解决方案对我不起作用,我花费了大量时间将自己的头撞在墙上,试图找出原因。

令人惊讶的是,即使您安装了psql9.6,您仍然获得版本10。