【问题标题】:Installing PostgreSQL Client v10 on AWS Amazon Linux (EC2) AMI在 AWS Amazon Linux (EC2) AMI 上安装 PostgreSQL Client v10
【发布时间】:2018-09-09 10:13:44
【问题描述】:

我已成功启动新的 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/ 中所述。但是我应该为 Amazon Linux 选择什么平台?红帽?

【问题讨论】:

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


    【解决方案1】:

    您可以尝试在您的 Linux 服务器上运行以下命令:

    sudo amazon-linux-extras install postgresql10
    

    【讨论】:

    • 这似乎只适用于“Amazon Linux 2”
    • 如果您使用的是 Amazon Linux 2,它应该是首选解决方案。保证支持。
    • 太棒了,这正是我的 amzn2 盒子所需要的。非常感谢。
    • 在 AmazonLinux 2 CodeBuild 映像中对我不起作用。 CodeBuild 映像可能与常规 EC2 映像不同。
    【解决方案2】:

    为 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 Repository (amazon-linux-extras)((仅限客户端))提供额外的软件包安装。由于 postgresql10 尚不可用,因此添加额外的 yum repo 是目前唯一的解决方案。

    2019 年 5 月 UDATE

    看到的人

    错误:包: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
    

    【讨论】:

    • 执行sudo yum install -y postgresql10时接收Error: Package: postgresql10-10.3-1PGDG.rhel7.x86_64 (pgdg10) Requires: systemd-sysv
    • 我得到同样的错误。我的 AMI 版本是“Amazon Linux AMI release 2018.03”,从命名上看似乎很新鲜。 systemd 是否从更高版本的 AMI 中删除?
    • 似乎 amazon-linux-extras 安装了唯一的客户端,而不是服务器。
    • 接收错误:包:postgresql10-10.3-1PGDG.rhel7.x86_64 (pgdg10) 要求:执行yum install -y download.postgresql.org/pub/repos/yum/10/redhat/…时的systemd-sysv
    • 不适用于Amazon Linux AMI release 2018.03
    【解决方案3】:

    由于之前的答案都对我不起作用,我正在添加一个解决方案,让我安装 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
    

    【讨论】:

    • 基于 postgres 源安装文档,我最终将制作步骤调整为:./configure && makesudo make installecho 'export PATH=$PATH:/usr/local/pgsql/bin' | sudo tee /etc/profile.d/postgres.sh
    【解决方案4】:

    改编 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
    

    【讨论】:

    • 在'yum install'之前你需要做的> $yum clean all
    • 错误:包:pgdg-redhat-repo-42.0-5.noarch (/pgdg-redhat-repo-latest.noarch) 要求:/etc/redhat-release
    【解决方案5】:

    截至 2019 年 5 月 25 日,以下直接 RPM 安装适用于我在 Amazon Linux 1 2018.03(最新 Beanstalk 平台版本)上安装 PostgreSQL Client 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
    

    【讨论】:

      【解决方案6】:

      PGDG 存储库不再适用于 Amazon Linux。所以你可以使用亚马逊回购。

      amazon-linux-extras install postgresql10 vim epel -y
      

      或者关注这篇文章

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

      【讨论】:

        【解决方案7】:

        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】:

          这是我 2019 年的解决方案:

          做吧

           sudo amazon-linux-extras install postgresql9.6
          

          您不必从任何外部来源下载它,因为它已经默认从亚马逊提供给您,您所要做的就是安装它。

          其他解决方案对我不起作用,我花了很多时间将头撞在墙上试图找出原因。

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

          【讨论】:

          • 假定为 Amazon Linux 2,不适用于 Amazon Linux 实例
          【解决方案9】:

          以下适用于 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
          

          【讨论】:

            【解决方案10】:

            我解决问题的方法是运行

            yum clean all
            

            之前

            yum install -y postgresql10 
            

            在亚马逊 Linux 上

            【讨论】:

            • 如果这实际上是在 Amazon Linux 实例而不是 Amazon Linux 2 实例上完成的,我会感到非常惊讶。
            【解决方案11】:

            对于 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"
            

            【讨论】:

              猜你喜欢
              • 2022-05-25
              • 2020-01-18
              • 2022-06-18
              • 2018-05-06
              • 2014-08-05
              • 2022-10-22
              • 2011-12-28
              • 2014-06-03
              • 1970-01-01
              相关资源
              最近更新 更多