はじめに
こんにちは!、BFT名古屋支店のヤタテです。
今回は、インターネット接続が無いEC2環境(RHEL7)でPostgreSQL13をインストールする方法をお伝えします。
本番環境とかって、セキュリティの問題で外部ネットワークに出られないとかよくありますよね。
今回はそういった場合を想定して、PostgreSQL13に必要な依存パッケージを全部ダウンロード
してインストールしました。
インターネット接続がありyumが使える場合はこちらの方法を参照してください。
bftnagoya.hateblo.jp
①まず最初に必要なパッケージを全てダウンロードします
RPM Find等を使ってひたすらダウンロードします。
https://rpmfind.net/linux/RPM/index.html
必要なパッケージは以下のとおりです。
<PostgreSQL13本体> postgresql13-13.3-1PGDG.rhel7.x86_64.rpm postgresql13-contrib-13.3-1PGDG.rhel7.x86_64.rpm postgresql13-libs-13.3-1PGDG.rhel7.x86_64.rpm postgresql13-server-13.3-1PGDG.rhel7.x86_64.rpm
<glibc関連> glibc-2.17-317.el7.x86_64.rpm glibc-common-2.17-317.el7.x86_64.rpm glibc-2.17-317.el7.i686.rpm nss-softokn-freebl-3.44.0-8.el7_7.i686.rpm
<icu関連> libicu-50.2-4.el7_7.x86_64.rpm
<Perl関連> perl-5.16.3-297.el7.x86_64.rpm perl-Carp-1.26-244.el7.noarch.rpm perl-constant-1.27-2.el7.noarch.rpm perl-Encode-2.51-7.el7.x86_64.rpm perl-Exporter-5.68-3.el7.noarch.rpm perl-File-Path-2.09-2.el7.noarch.rpm perl-File-Temp-0.23.01-3.el7.noarch.rpm perl-Filter-1.49-3.el7.x86_64.rpm perl-Getopt-Long-2.40-3.el7.noarch.rpm perl-HTTP-Tiny-0.033-3.el7.noarch.rpm perl-libs-5.16.3-297.el7.i686.rpm perl-libs-5.16.3-297.el7.x86_64.rpm perl-macros-5.16.3-297.el7.x86_64.rpm perl-parent-0.225-244.el7.noarch.rpm perl-PathTools-3.40-5.el7.x86_64.rpm perl-Pod-Escapes-1.04-297.el7.noarch.rpm perl-Pod-Perldoc-3.20-4.el7.noarch.rpm perl-Pod-Simple-3.28-4.el7.noarch.rpm perl-Pod-Usage-1.63-3.el7.noarch.rpm perl-podlators-2.5.1-3.el7.noarch.rpm perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm perl-Socket-2.010-5.el7.x86_64.rpm perl-Storable-2.45-3.el7.x86_64.rpm perl-Text-ParseWords-3.29-4.el7.noarch.rpm perl-threads-1.87-4.el7.x86_64.rpm perl-threads-shared-1.43-6.el7.x86_64.rpm perl-Time-HiRes-1.9725-3.el7.x86_64.rpm perl-Time-Local-1.2300-2.el7.noarch.rpm
②ダウンロードしたパッケージをインストールします
・バージョンの確認
$ uname -r 3.10.0-1062.1.2.el7.x86_64
⇒RHEL7である事
・SELinuxの無効化確認
$ getenforce
⇒一応確認しておく
・rpmパッケージのコピー
⇒必要ファイルを/tmp/rpmにコピー
任意の場所でどこでも良いですがインストールのし易さ間違えにくさからここでは種類別に分けておきます。
<コピー先>
/tmp/rpm/glibc →glibc関連 /tmp/rpm/perl →perl関連 /tmp/rpm/icu →icu関連 /tmp/rpm/PG1 →postgres関連
$ cd /tmp/rpm/glibc $ sudo rpm -ivh glibc-2.17-317.el7.x86_64.rpm glibc-common-2.17-317.el7.x86_64.rpm $ sudo rpm -ivh glibc-2.17-317.el7.i686.rpm nss-softokn-freebl-3.44.0-8.el7_7.i686.rpm warning: glibc-2.17-317.el7.i686.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:nss-softokn-freebl-3.44.0-8.el7_7################################# [ 50%] 2:glibc-2.17-317.el7 ################################# [100%]
・Perlインストール
$ cd /tmp/rpm/perl $ sudo rpm -ivh *.rpm warning: perl-5.16.3-297.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:perl-parent-1:0.225-244.el7 ################################# [ 4%] 2:perl-HTTP-Tiny-0.033-3.el7 ################################# [ 7%] 3:perl-podlators-2.5.1-3.el7 ################################# [ 11%] 4:perl-Pod-Perldoc-3.20-4.el7 ################################# [ 14%] 5:perl-Pod-Escapes-1:1.04-297.el7 ################################# [ 18%] 6:perl-Text-ParseWords-3.29-4.el7 ################################# [ 21%] 7:perl-Encode-2.51-7.el7 ################################# [ 25%] 8:perl-Pod-Usage-1.63-3.el7 ################################# [ 29%] 9:perl-constant-1.27-2.el7 ################################# [ 32%] 10:perl-Carp-1.26-244.el7 ################################# [ 36%] 11:perl-Exporter-5.68-3.el7 ################################# [ 39%] 12:perl-Filter-1.49-3.el7 ################################# [ 43%] 13:perl-libs-4:5.16.3-297.el7 ################################# [ 46%] 14:perl-macros-4:5.16.3-297.el7 ################################# [ 50%] 15:perl-File-Path-2.09-2.el7 ################################# [ 54%] 16:perl-File-Temp-0.23.01-3.el7 ################################# [ 57%] 17:perl-PathTools-3.40-5.el7 ################################# [ 61%] 18:perl-Scalar-List-Utils-1.27-248.e################################# [ 64%] 19:perl-Socket-2.010-5.el7 ################################# [ 68%] 20:perl-Storable-2.45-3.el7 ################################# [ 71%] 21:perl-threads-1.87-4.el7 ################################# [ 75%] 22:perl-threads-shared-1.43-6.el7 ################################# [ 79%] 23:perl-Time-HiRes-4:1.9725-3.el7 ################################# [ 82%] 24:perl-Pod-Simple-1:3.28-4.el7 ################################# [ 86%] 25:perl-Getopt-Long-2.40-3.el7 ################################# [ 89%] 26:perl-Time-Local-1.2300-2.el7 ################################# [ 93%] 27:perl-4:5.16.3-297.el7 ################################# [ 96%] 28:perl-libs-4:5.16.3-297.el7 ################################# [100%]
・ICUインストール
$ cd /tmp/rpm/icu $ sudo rpm -ivh libicu-50.2-4.el7_7.x86_64.rpm warning: libicu-50.2-4.el7_7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:libicu-50.2-4.el7_7 ################################# [100%]
・PostgreSQLインストール
$ cd /tmp/rpm/PG1 $ sudo rpm -ivh *.rpm warning: postgresql13-13.3-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Preparing... ################################# [100%] Updating / installing... 1:postgresql13-libs-13.3-1PGDG.rhel################################# [ 25%] 2:postgresql13-13.3-1PGDG.rhel7 ################################# [ 50%] 3:postgresql13-server-13.3-1PGDG.rh################################# [ 75%] 4:postgresql13-contrib-13.3-1PGDG.r################################# [100%]
③インストール結果を確認します
・バージョン確認
$ psql --version psql (PostgreSQL) 13.3
・DB初期化
$ sudo PGSETUP_INITDB_OPTIONS='--encoding=UTF-8 --no-locale' /usr/pgsql-13/bin/postgresql-13-setup initdb Initializing database ... OK
・サービス起動有効化
$ sudo systemctl enable postgresql-13 Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-13.service to /usr/lib/systemd/system/postgresql-13.service.
・起動
$ sudo systemctl start postgresql-13
・接続確認
$sudo su - postgres -bash-4.2$ psql psql (13.3) Type "help" for help. postgres=# select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit (1 row)
おわりに
ご紹介した方法は、パッケージのダウンロードが地味で面倒です・・。 インターネット接続環境があればyum install --downloadonly等で必要なパッケージを一括して集める事も 可能かと思いますのでその辺はお試し頂ければと思います。