لقد نجحت في تجميع وتثبيت أحدث إصدار من 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.