psycopg2を入れる

2022/02 の作業


DjangoのDBがデフォルトでSQLLiteとなっているのを、PostgreSQLに変更する。

PostgreSQLに接続するドライバ?アダプタ?は、psycopg2らしいので、インストールする。

(work_venv) $ pip3 install psycopg2
・・・・
Error: pg_config executable not found.
・・・・



pg_config を実行するらしいので、インストールした postgresql の bin にパスを追加して再実行。

(work_venv) $ export PATH=$PATH:/usr/pgsql-13/bin
(work_venv) $ pip3 install psycopg2
・・・・
      building 'psycopg2._psycopg' extension
      creating build/temp.linux-aarch64-3.9
      creating build/temp.linux-aarch64-3.9/psycopg
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_VERSION=2.9.3 (dt dec pq3 ext lo64) -DPSYCOPG_DEBUG=1 -DPG_VERSION_NUM=130005 -DHAVE_LO64=1 -DPSYCOPG_DEBUG=1 -I/home/wagtail_user/wagtail_venv/include -I/usr/local/include/python3.9 -I. -I/usr/pgsql-13/include -I/usr/pgsql-13/include/server -I/usr/include/libxml2 -I/usr/include -c psycopg/adapter_asis.c -o build/temp.linux-aarch64-3.9/psycopg/adapter_asis.o -Wdeclaration-after-statement
      In file included from psycopg/adapter_asis.c:28:0:
      ./psycopg/psycopg.h:36:10: fatal error: libpq-fe.h: No such file or directory
       #include <libpq-fe.h>
・・・・



postgresql のヘッダなどを参照するぽいので、postgresql-devel とかが必要。

なので、13 を入れているんで、postgresql13-develを入れる。

$ sudo yum install -y postgresql13-devel
・・・・
Error: Package: postgresql13-devel-13.5-1PGDG.rhel7.aarch64 (pgdg13)
           Requires: llvm-toolset-7.0-clang >= 7.0.1
Error: Package: postgresql13-devel-13.5-1PGDG.rhel7.aarch64 (pgdg13)
           Requires: llvm-toolset-7.0-llvm-devel >= 7.0.1
・・・・



LLVM のいろいろを入れておく必要があるらしい。

epel-release、centos-release-scl をレポに追加すれば入るらしいがそれでは入らなかった。

centos の sclo レポジトリを追加すれば良いらしい。

armのインスタンスなのでarmのレポを追加。

$ sudo yum-config-manager --add-repo http://mirror.centos.org/altarch/7/sclo/aarch64/rh/
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
adding repo from: http://mirror.centos.org/altarch/7/sclo/aarch64/rh/

[mirror.centos.org_altarch_7_sclo_aarch64_rh_]
name=added from: http://mirror.centos.org/altarch/7/sclo/aarch64/rh/
baseurl=http://mirror.centos.org/altarch/7/sclo/aarch64/rh/
enabled=1



そして、再度devel をインストール。

$ sudo yum install -y postgresql13-devel
・・・・
Public key for llvm-toolset-7.0-compiler-rt-7.0.1-3.el7.aarch64.rpm is not installed
・・・・



公開鍵がインストールされていないとの事なので、

https://github.com/sclorg/centos-release-scl から鍵を持ってくる。

上記の RPM-GPG-KEY-CentOS-SIG-SCLo を、/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo に作成。

そんで、追加したレポジトリのファイル、 /etc/yum.repos.d/mirror.centos.org_altarch_7_sclo_aarch64_rh_.repo に

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLoを追加。

$ sudo wget -P /etc/pki/rpm-gpg/. https://raw.githubusercontent.com/sclorg/centos-release-scl/master/centos-release-scl/RPM-GPG-KEY-CentOS-SIG-SCLo
・・・・
2022-02-02 16:36:01 (72.3 MB/s) - ‘/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo’ saved [1057/1057]
$ sudo vi /etc/yum.repos.d/mirror.centos.org_altarch_7_sclo_aarch64_rh_.repo

[mirror.centos.org_altarch_7_sclo_aarch64_rh_]
name=added from: http://mirror.centos.org/altarch/7/sclo/aarch64/rh/
baseurl=http://mirror.centos.org/altarch/7/sclo/aarch64/rh/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo



そして、再度develをインストール。

$ sudo yum install -y postgresql13-devel
・・・・
Complete!



やっと devel のインストールが完了。

そして、最終目的のpsycopg2 をインストール。

(work_venv) $ export PATH=$PATH:/usr/pgsql-13/bin
(work_venv) $ pip3 install psycopg2
・・・・
Successfully installed psycopg2-2.9.3



やっと、psycopg2 インストールが完了。