הצלחתי להדר ולהתקין את הגרסה האחרונה של 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 (מספר ליבות ה- CPU של המערכת) כדי לבצע משימות הידור במקביל, ומאיץ את תהליך ההידור.

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: יוצר ספריית בית למשתמש.
  • -U: יוצר גם קבוצת משתמשים עם אותו שם משתמש.
  • -r: יוצר משתמש מערכת (מזהה המשתמש של משתמש המערכת נמוך מ- 1000, ואינו משמש לכניסה).
  • -d /var/lib/postgresql: מציין את ספריית הבית כ- /var/lib/postgresql.
  • -s /bin/bash: מציין את המעטפת כ- /bin/bash.
  • postgres: שם משתמש.

פקודה זו יוצרת משתמש מערכת postgres ייעודי עבור PostgreSQL.


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, כניסה למעטפת מסד הנתונים.

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 server
#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 server: מתאר שהשירות הוא שרת 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: תיעוד: 17: פרק 17. התקנה מקוד המקור

גרסאות אחרות של דף אינטרנט זה

למאמר זה יש גרסאות בשפות רבות.

אם ברצונכם לפרסם תגובה, אנא בקרו בדף האינטרנט הבא:

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) ל- Hebrew באמצעות AI.