pg_math را برای YugabyteDB کامپایل کنید (پوشش بر روی توابع توزیع کتابخانه علمی گنو)
بسیاری از افزونه ها به راحتی در PostgreSQL کامپایل و در YugabyteDB نصب می شوند. مهمترین چیز این است که آن را در نسخه مناسب PostgreSQL کامپایل کنید و همه فایل ها و وابستگی ها را شناسایی کنید.
در پست اول این سری، این کار را در داکرفایل انجام دادم.
در اینجا من دستورات مشابهی را روی یک ظرف Docker اجرا میکنم که از تصویر YugabyteDB 2.18 که با Alma8 ساخته شده است، برای نصب pg_math، یک پوشش برای توابع توزیع آماری GSL (کتابخانه علمی گنو) اجرا میکنم.
YugabyteDB را راه اندازی کنید
از آنجایی که این افزونه به عنوان یک کتابخانه پویا است که نیازی به بارگذاری از قبل ندارد، من میتوانم YugabyteDB را راهاندازی کنم و آن را درست قبل از ایجاد برنامه افزودنی نصب خواهم کرد.
من این محفظه آزمایشی را راه اندازی می کنم و به آن وصل می کنم:
docker pull yugabytedb/yugabyte:2.18.0.1-b4
docker exec -it $(
docker run -d yugabytedb/yugabyte:2.18.0.1-b4 /home/yugabyte/bin/yugabyted start --advertise_address=0.0.0.0 --background=false
) bash
postgresql11-devel را نصب کنید
YugabyteDB با PostgreSQL 11.2 سازگار است و سپس من افزونه خود را با PostgreSQL 11 خواهم ساخت:
dnf update -y
dnf groupinstall -y 'Development Tools'
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf install epel-release -y redhat-rpm-config
dnf --enablerepo=powertools install perl-IPC-Run -y
dnf -qy module disable postgresql
dnf install -y postgresql11-devel
export PATH="/usr/pgsql-11/bin:${PATH}" # add pg_config to the path
این برای ساخت افزونه مورد نیاز است. ایده این است که آن را در یک ظرف زودگذر بسازیم و فقط فایل های لازم را برای استقرار در گره های YugabyteDB دریافت کنیم.
پسوند pg_math را بسازید
من دستورالعمل های pg_math README.md را دنبال می کنم
dnf -y install gsl gsl-devel
git clone https://github.com/chanukyasds/pg_math.git
cd pg_math
make
make install
در YugabyteDB نصب کنید
من می توانم فایل های لازم را با pg_config
و ldd
:
من همه فایلها را از پسوند (lib و اشتراک/پسوند) و همچنین وابستگیها (GSL – کتابخانه علمی گنو) دریافت میکنم:
cd /usr/pgsql-11
cp /usr/lib64/*gsl* lib
tar -cvf /tmp/extensions.tar lib share/extension
cd $YB_HOME/postgres
tar --skip-old-files -xvf /tmp/extensions.tar
افزونه را تست کنید
اکنون آماده ایجاد EXTENSION و آزمایش آن هستید:
هنگامی که مخزن برنامه افزودنی حاوی تست های رگرسیون است، اجرای آنها تمرین خوبی است.