لقد نجحت في تجميع وتثبيت أحدث إصدار من 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
: هذا ملف تكوين عام، يستخدم لتعيين متغيرات البيئة وتكوينات التشغيل على مستوى النظام. سيتم تنفيذ الإعدادات الموجودة في هذا الملف عند تسجيل دخول جميع المستخدمين إلى النظام.
- إضافة متغيرات البيئة:
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 تلقائيًا عند بدء التشغيل.
الغرض من هذه الأوامر هو:
- إنشاء مستخدم
postgres
مخصص لتشغيل PostgreSQL. - تهيئة دليل تخزين قاعدة البيانات.
- ابدأ قاعدة بيانات PostgreSQL، وادخل إلى سطر الأوامر التفاعلي
psql
. - قم بتكوين
systemd
لتشغيل PostgreSQL كخدمة نظام، ودعم التشغيل التلقائي عند بدء التشغيل.
بهذه الطريقة، يمكن لخادم PostgreSQL العمل بشكل طبيعي ويمكن تشغيله تلقائيًا عند بدء تشغيل النظام.
مراجع
PostgreSQL: Documentation: 17: Chapter 17. Installation from Source Code
الإصدارات الأخرى من هذه الصفحة
هذه المقالة لها إصدارات بلغات متعددة.
إذا كنت ترغب في نشر تعليق، يرجى زيارة الصفحات التالية:
تدعم هذه الصفحات التصفح فقط، ولا يمكنها نشر التعليقات أو الرسائل، ولكنها توفر المزيد من خيارات اللغة، ووقت تحميل أقصر:
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.