لقد نجحت في تجميع وتثبيت أحدث إصدار من PostgreSQL (17.4) على Ubuntu ARM32.

الأوامر الموجودة في هذه المقالة مأخوذة بشكل أساسي من وثائق PostgreSQL الرسمية. لقد اختبرت بالفعل كل أمر في هذه المقالة.

يمكنك هنا رؤية الأنظمة التي يمكن تثبيتها بنجاح مزرعة بناء PostgreSQL

تجميع وتثبيت PostgreSQL 17.4

1. إنشاء دليل والدخول إليه

mkdir postgresql && cd postgresql
  • mkdir postgresql: إنشاء دليل جديد باسم postgresql.
  • cd postgresql: الدخول إلى دليل postgresql الذي تم إنشاؤه للتو.

2. تنزيل كود مصدر PostgreSQL

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: تنزيل ملف من عنوان URL المحدد.
  • https://..../postgresql-17.4.tar.bz2: رابط تنزيل حزمة كود المصدر المضغوط لإصدار PostgreSQL 17.4. إذا كان الرابط غير صالح، يمكنك البحث عن رابط جديد بنفسك.

3. فك ضغط حزمة كود المصدر

tar xjf postgresql-17.4.tar.bz2
  • tar: يستخدم لمعالجة الملفات المضغوطة بامتداد .tar.

  • xjf: خيارات فك ضغط ملف tar:

    • x: فك ضغط الملف.
    • j: استخدام تنسيق الضغط bzip2 (.bz2).
    • f: تحديد الملف المراد فك ضغطه.
  • postgresql-17.4.tar.bz2: اسم الملف المراد فك ضغطه.

4. الدخول إلى دليل كود المصدر بعد فك الضغط

cd postgresql-17.4
  • الدخول إلى دليل كود مصدر PostgreSQL 17.4 بعد فك الضغط.

5. تثبيت حزم التبعيات

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: استخدام مدير الحزم apt لتثبيت الحزم.
  • libssl-dev و libsystemd-dev و libxml2-dev و libreadline-dev: تثبيت مكتبات التطوير المطلوبة لتجميع PostgreSQL، وهي على التوالي مكتبة SSL ومكتبة Systemd ومكتبة XML ومكتبة Readline.

6. تكوين خيارات التجميع

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: تجهيز بيئة تجميع PostgreSQL.
  • --prefix=/usr/local/pgsql: تحديد دليل تثبيت PostgreSQL ليكون /usr/local/pgsql.
  • --with-openssl: تمكين دعم OpenSSL.
  • --with-libxml: تمكين دعم XML.
  • --with-systemd: تمكين دعم Systemd.

7. تجميع كود المصدر

make -j$(nproc)
  • make: بدء عملية التجميع.
  • -j$(nproc): استخدام nproc (عدد النوى لوحدة المعالجة المركزية في النظام) لتنفيذ مهام التجميع بالتوازي، وتسريع عملية التجميع.

8. تثبيت PostgreSQL

sudo make install
  • sudo make install: استخدام sudo لتنفيذ التثبيت بامتيازات المسؤول، وسيقوم make install بتثبيت الملفات المجمعة في النظام، وتثبيتها في الدليل /usr/local/pgsql المحدد في الأمر ./configure السابق.

9. تعيين متغيرات البيئة

استخدم محرر نصوص 1. لتحرير الملف /etc/profile:

sudo nano /etc/profile
  • sudo: يشير إلى تشغيل الأمر بامتيازات المستخدم المتميز (المسؤول). لأن تعديل الملف /etc/profile يتطلب امتيازات المسؤول.
  • nano: هذا محرر نصوص، يستخدم غالبًا في بيئات المحطة الطرفية لتحرير الملفات.
  • /etc/profile: هذا ملف تكوين عام، يستخدم لتعيين متغيرات البيئة وتكوينات التشغيل على مستوى النظام. سيتم تنفيذ الإعدادات الموجودة في هذا الملف عند تسجيل دخول جميع المستخدمين إلى النظام.
  1. إضافة متغيرات البيئة:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: يستخدم لتعيين متغير بيئة، لجعله متاحًا في العملية الحالية والعمليات الفرعية.
  • PATH: هذا متغير بيئة، يحتوي على قائمة بدليل الملفات القابلة للتنفيذ في النظام. عند تنفيذ أمر، سيبحث النظام عن الأمر بناءً على الدليل المدرج في متغير PATH.
  • /usr/local/pgsql/bin: هذا دليل الملفات القابلة للتنفيذ لقاعدة بيانات PostgreSQL، وإضافته يعني أن الملفات القابلة للتنفيذ في هذا الدليل (مثل psql) سيتم التعرف عليها من قبل النظام.
  • :$PATH: هنا يمثل $PATH المسار الأصلي الموجود، وإضافة المسار الجديد /usr/local/pgsql/bin إلى بداية PATH الأصلي. بهذه الطريقة، سيتحقق النظام أولاً من الدليل الجديد، ثم يتحقق من المسار الأصلي.

تتمثل وظيفة هذا الأمر في إضافة دليل الملفات القابلة للتنفيذ لـ PostgreSQL إلى متغير البيئة PATH للنظام، مما يضمن إمكانية تشغيل أوامر PostgreSQL (مثل psql) مباشرة في سطر الأوامر، دون الحاجة إلى توفير المسار الكامل. ستسري الإعدادات المعدلة على جميع المستخدمين

تهيئة قاعدة بيانات PostgreSQL

تُستخدم هذه الأوامر بشكل أساسي لتكوين خادم قاعدة بيانات PostgreSQL يدويًا على خادم Linux، بما في ذلك إنشاء مستخدم نظام PostgreSQL، وتهيئة قاعدة البيانات، وبدء خدمة قاعدة البيانات، وتسجيلها كخدمة systemd، بحيث يتم تشغيلها تلقائيًا عند بدء التشغيل.

1. إنشاء مستخدم PostgreSQL

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: تنفيذ الأمر بامتيازات المستخدم المتميز.
  • useradd: إنشاء مستخدم جديد.
  • -m: إنشاء دليل home للمستخدم.
  • -U: إنشاء مجموعة مستخدم بنفس اسم المستخدم في نفس الوقت.
  • -r: إنشاء مستخدم نظام (معرف مستخدم النظام أقل من 1000، لا يستخدم لتسجيل الدخول).
  • -d /var/lib/postgresql: تحديد دليل home ليكون /var/lib/postgresql.
  • -s /bin/bash: تحديد shell ليكون /bin/bash.
  • postgres: اسم المستخدم.

يقوم هذا الأمر بإنشاء مستخدم نظام مخصص لـ PostgreSQL باسم postgres.


2. تغيير مالك دليل PostgreSQL

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: تغيير مالك الدليل /usr/local/pgsql إلى المستخدم postgres، مما يسمح له بقراءة وكتابة الدليل.

3. تعيين كلمة مرور مستخدم PostgreSQL

sudo passwd postgres
  • passwd postgres: تغيير كلمة مرور المستخدم postgres.

4. التبديل إلى مستخدم PostgreSQL

su postgres
  • su postgres: التبديل إلى المستخدم postgres، لاستخدام الأوامر المتعلقة بـ PostgreSQL.

5. تهيئة قاعدة البيانات

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: تهيئة تخزين قاعدة البيانات في الدليل /usr/local/pgsql/data.

6. بدء قاعدة بيانات PostgreSQL

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: بدء قاعدة البيانات باستخدام عملية postgres، ويتم تخزين البيانات في الدليل /usr/local/pgsql/data.

7. في جلسة طرفية أخرى، ادخل إلى قاعدة البيانات

su postgres
/usr/local/pgsql/bin/psql
  • psql: أداة سطر الأوامر التفاعلية لـ PostgreSQL، تدخل إلى shell قاعدة البيانات.

8. تعيين كلمة مرور لمستخدم قاعدة البيانات

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • تغيير كلمة مرور مستخدم قاعدة البيانات postgres.

9. إنشاء خدمة systemd

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: تحرير ملف تكوين systemd، للسماح بتشغيل PostgreSQL كخدمة.

محتوى ملف التكوين:

[Unit]
Description=خادم PostgreSQL
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity

[Install]
WantedBy=multi-user.target
  • Description=خادم PostgreSQL: يصف أن هذه الخدمة هي خادم PostgreSQL.
  • After=network-online.target: انتظر حتى يصبح اتصال الشبكة متاحًا قبل بدء PostgreSQL.
  • User=postgres: يعمل باستخدام المستخدم postgres.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: ابدأ خادم PostgreSQL.
  • ExecReload=/bin/kill -HUP $MAINPID: أرسل إشارة HUP عند إعادة التحميل.
  • KillMode=mixed: وضع إنهاء مختلط.
  • KillSignal=SIGINT: إشارة لإنهاء عملية PostgreSQL.
  • TimeoutSec=infinity: تم تعيين المهلة إلى ما لا نهاية.

10. تمكين خدمة systemd

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: أعد تحميل تكوين systemd لجعل postgresql.service الجديد ساري المفعول.
  • start postgresql: ابدأ خدمة PostgreSQL.
  • status postgresql: تحقق من حالة تشغيل PostgreSQL.
  • enable postgresql: ابدأ PostgreSQL تلقائيًا عند بدء التشغيل.

الغرض من هذه الأوامر هو:

  1. إنشاء مستخدم postgres مخصص لتشغيل PostgreSQL.
  2. تهيئة دليل تخزين قاعدة البيانات.
  3. ابدأ قاعدة بيانات PostgreSQL، وادخل إلى سطر الأوامر التفاعلي psql.
  4. قم بتكوين systemd لتشغيل PostgreSQL كخدمة نظام، ودعم التشغيل التلقائي عند بدء التشغيل.

بهذه الطريقة، يمكن لخادم PostgreSQL العمل بشكل طبيعي ويمكن تشغيله تلقائيًا عند بدء تشغيل النظام.

مراجع

PostgreSQL: Documentation: 17: Chapter 17. Installation from Source Code

الإصدارات الأخرى من هذه الصفحة

هذه المقالة لها إصدارات بلغات متعددة.

إذا كنت ترغب في نشر تعليق، يرجى زيارة الصفحات التالية:

ZH EN ZH-TW JA

تدعم هذه الصفحات التصفح فقط، ولا يمكنها نشر التعليقات أو الرسائل، ولكنها توفر المزيد من خيارات اللغة، ووقت تحميل أقصر:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO

تمت ترجمة هذه المقالة بواسطة الذكاء الاصطناعي من Chinese (Simplified) إلى Arabic.