Εγκατέστησα με επιτυχία την τελευταία έκδοση του PostgreSQL (17.4) σε Ubuntu ARM32.
Οι εντολές σε αυτό το άρθρο προέρχονται κυρίως από την επίσημη τεκμηρίωση του PostgreSQL. Έχω δοκιμάσει στην πράξη κάθε εντολή σε αυτό το άρθρο.
Μπορείτε να δείτε τα συστήματα στα οποία μπορεί να γίνει επιτυχής εγκατάσταση εδώ PostgreSQL Buildfarm
Μεταγλώττιση και εγκατάσταση του 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
: Αυτό είναι ένα καθολικό αρχείο διαμόρφωσης που χρησιμοποιείται για τον ορισμό μεταβλητών περιβάλλοντος σε όλο το σύστημα και ρυθμίσεις εκκίνησης. Όλοι οι χρήστες εκτελούν τις ρυθμίσεις σε αυτό το αρχείο κατά τη σύνδεσή τους στο σύστημα.
- Προσθήκη μεταβλητών περιβάλλοντος:
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
: Δημιουργία συστημικού χρήστη (το UID του συστημικού χρήστη είναι μικρότερο από 1000 και δεν χρησιμοποιείται για σύνδεση).-d /var/lib/postgresql
: Καθορισμός του καταλόγου home ως/var/lib/postgresql
.-s /bin/bash
: Καθορισμός του shell ως/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 κατά την εκκίνηση του συστήματος.
Ο σκοπός αυτών των εντολών είναι:
- Δημιουργία ενός χρήστη
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) σε Greek από AI.