LoginSignup
38
28

More than 1 year has passed since last update.

Amazon Linux 2 にPostgreSQL 11 をインストールする

Last updated at Posted at 2019-07-23

概要

AWSのEC2インスタンスを Amazon Linux 2 で作成し、PostgreSQL11のクライアントをインストールしようとしたところ少しハマったので手順を書きます。

実行環境

Amazon Linux release 2 (Karoo)

手順

インストール手順

$ sudo rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/ここに取得したいRPMを入れて

※以下のリンクから取得したいバージョンのRPMを確認し、上記コマンド末尾を書き換えて実行すること。
https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/
例えばPostgreSQL11.2を取得したい場合、以下のRPMに書き換える。
postgresql11-11.2-2PGDG.rhel7.x86_64.rpm

上記コマンド実行後、 PostgreSQLのリポジトリ設定について確認する。

/etc/yum.repos.d/pgdg-redhat-all.repo
一部を確認したいだけなのでpgdg11部分のみ抜粋
[pgdg11]
name=PostgreSQL 11 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

リポジトリファイルには変数 $releasever と $basearch があるが、AmazonLinux 2 では、 $releaserver は system-release のバージョン番号で、$basearch はアーキテクチャのようだ。
確認したところ、 system-release は "release 2" なので $releaserver は "2" となる。
$basearch はアーキテクチャで "x86_64" となる。

$ cat /etc/system-release
Amazon Linux release 2 (Karoo)

$ arch
x86_64

つまり、この場合、リポジトリに記載されているbaseurlは
"https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-2-x86_64"
になるのだが、そのようなパスは存在しないので404になる。
AmazonLinux2 はredhat7をベースにしているようなので、
"https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64"
としたい。そのため、以下のコマンドで一括置換する。

/etc/yum.repos.d/pgdg-redhat-all.repo
sudo sed -i "s/\$releasever/7/g" "/etc/yum.repos.d/pgdg-redhat-all.repo"

あとはインストールするだけ。必要なものをインストールすればよいですが、ここではクライアントのみインストールする例。

$ sudo yum install -y postgresql11

以上!

追記(2022/10/25)

amazon linux 2 で PostgreSQL 13 をインストールしてみました。
記載通りでだいたい問題ないですが、私の環境では以下のファイルがなかったので作成しました。
/etc/yum.repos.d/pgdg-redhat-all.repo
また、GPGkeyファイルもなかったので、以下の場所から取得し、pgdg-redhat-all.repoのgpgkeyを同じファイル名に書き換えるとうまくいきました。

取得ファイル:RPM-GPG-KEY-PGDG-13
https://apt.postgresql.org/pub/repos/yum/

38
28
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
28