برنامه نویسی

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:
pg_config

من همه فایل‌ها را از پسوند (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 و آزمایش آن هستید:
توضیحات تصویر

هنگامی که مخزن برنامه افزودنی حاوی تست های رگرسیون است، اجرای آنها تمرین خوبی است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا