原文地址:Install Postgres v14 + -contrib on AWS Linux 2
原文作者:GORTHX
最近,我需要在Amazon Linux 2主机上安装Postgres v14和contrib扩展包。
contrib扩展包需要的依赖是python3.6,但主机上默认情况下安装python3.7版本。你可能会认为删除预安装的版本并安装正确的版本很容易,但它并不是(无论如何对我来说),我最终陷入了安装/卸载的反复中。
关键是要从amazon-linux-extras包中启用python-3的topic,并需要禁用amzn2-core存储库。请遵循分步说明。
出于参考目的,列出遇到的报错:
# sudo yum install postgresql14 postgresql14-contrib
Error: Package: postgresql14-contrib-14.1-1PGDG.rhel7.x86_64 (pgdg14)
Requires: libpython3.6m.so.1.0()(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
查询安装的python版本:
# python3 -V
Python 3.7.10
说明:
1. 启动实例。
2. 安装amazon-linux-extras库(如果尚未安装):
# which amazon-linux-extras
如果没有安装,执行以下命令:
# sudo yum install amazon-linux-extras
3. 从 amazon-linux-extras库中安装epel包:
sudo amazon-linux-extras install epel
4. 获取 Postgres GPG 密钥和所需库的 URL。
访问 https://download.postgresql.org/pub/repos/yum/
a.找到对应的密钥
例如:RPM-GPG-KEY-PGDG-14
复制链接;把它填写到gpkey参数后面(然后做下一步)。
例如:gpkey = https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-14
b.选择您的版本,然后选择体系结构(您在此处需要RedHat),然后选择对应的操作系统版本
例如:14 ->redhat -> rhel-7-x86_64
复制该链接;把它填写到baseurl参数后面。
例如:baseurl = https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-7-x86_64/
5. 配置pgdg的yum源库(root用户才能执行此操作)。
使用您的首选方法将以下行添加到/etc/yum.repos.d/pgdg.repo文件中(如果要安装其他版本,请进行调整):
[pgdg14]
name=PostgreSQL 14 for RHEL/CentOS7 - x86_64
gpgkey=https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-14
baseurl=https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-7-x86_64/
enabled=1
gpgcheck=1
6. 验证 Postgres v14 包是否可用。列出您刚刚配置的pgdg14的yum库中可用的包:
使用如下命令进行查看:
yum --disablerepo="*" --enablerepo="pgdg14"
…
postgresql14.x86_64
postgresql14-contrib.x86_64
postgresql14-devel.x86_64
postgresql14-docs.x86_64
…
7. 删除现有的 python3.7版本,执行如下命令:
sudo yum remove python3
8. 从amazon-linux-extras库安装python3.6:
在安装时,需要禁用amzn2-core库
如果安装时收到此错误,仍然无法安装’-contrib’,说明没有添加此参数 -disablerepo=amzn2-core:
具体命令如下:
sudo amazon-linux-extras enable python3
sudo yum clean metadata
sudo yum install python3-3.6.* --disablerepo=amzn2-core
Package matching python3-3.6.2-3.amzn2.0.3.x86_64 already installed. Checking for update.
Nothing to do
9. 使用 -contrib 安装 Postgres:
sudo yum install postgresql14 postgresql14-contrib
10. 开始初始化数据库,进行配置并启动数据库。
cd /usr/pgsql-14/bin
sudo ./postgresql-14-setup initdb
sudo systemctl start postgresql-14
11. 您现在可以自由地度过您的一天。我会给你留下ServerFault的这句话:
“我不确定这是否有帮助,但我在很大程度上已经放弃了亚马逊Linux,因为它太难让一些事情正常工作了。1 个
感谢杰夫·弗罗斯特帮助我找到自己的路。
1 – https://serverfault.com/questions/1081509/error-getting-the-correct-python3-dependency
最后修改时间:2022-06-08 12:59:45
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




