Ich habe die neueste Version von PostgreSQL (17.4) erfolgreich unter Ubuntu ARM32 kompiliert und installiert.
Die Befehle in diesem Artikel stammen hauptsächlich aus der offiziellen PostgreSQL-Dokumentation. Ich habe jeden Befehl in diesem Artikel tatsächlich getestet.
Hier können Sie das System sehen, auf dem die Installation erfolgreich durchgeführt werden kann: PostgreSQL Buildfarm
Kompilieren und Installieren von PostgreSQL 17.4
1. Verzeichnis erstellen und aufrufen
mkdir postgresql && cd postgresql
mkdir postgresql
: Erstellt ein neues Verzeichnis namenspostgresql
.cd postgresql
: Wechselt in das gerade erstellte Verzeichnispostgresql
.
2. PostgreSQL-Quellcode herunterladen
wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
wget
: Lädt eine Datei von der angegebenen URL herunter.https://..../postgresql-17.4.tar.bz2
: Download-Link für das komprimierte Quellcodepaket von PostgreSQL Version 17.4. Wenn der Link ungültig ist, können Sie selbst nach einem neuen Link suchen.
3. Quellcodepaket entpacken
tar xjf postgresql-17.4.tar.bz2
-
tar
: Wird zum Verarbeiten von.tar
-Archivdateien verwendet. -
xjf
: Optionen zum Entpacken dertar
-Datei:x
: Datei entpacken.j
: Verwendung des bzip2-Komprimierungsformats (.bz2).f
: Gibt die zu entpackende Datei an.
-
postgresql-17.4.tar.bz2
: Der Name der zu entpackenden Datei.
4. Das entpackte Quellcodeverzeichnis aufrufen
cd postgresql-17.4
- Wechselt in das entpackte PostgreSQL 17.4-Quellcodeverzeichnis.
5. Abhängigkeitspakete installieren
sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
sudo apt install
: Verwendet denapt
-Paketmanager zum Installieren von Softwarepaketen.libssl-dev
,libsystemd-dev
,libxml2-dev
,libreadline-dev
: Installiert die für die PostgreSQL-Kompilierung erforderlichen Entwicklungsbibliotheken, nämlich die SSL-Bibliothek, die Systemd-Bibliothek, die XML-Bibliothek und die Readline-Bibliothek.
6. Kompilierungsoptionen konfigurieren
./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
./configure
: Bereitet die PostgreSQL-Kompilierungsumgebung vor.--prefix=/usr/local/pgsql
: Gibt/usr/local/pgsql
als PostgreSQL-Installationsverzeichnis an.--with-openssl
: Aktiviert die OpenSSL-Unterstützung.--with-libxml
: Aktiviert die XML-Unterstützung.--with-systemd
: Aktiviert die Systemd-Unterstützung.
7. Quellcode kompilieren
make -j$(nproc)
make
: Startet den Kompilierungsprozess.-j$(nproc)
: Verwendetnproc
(die Anzahl der CPU-Kerne des Systems), um Kompilierungsaufgaben parallel auszuführen und den Kompilierungsprozess zu beschleunigen.
8. PostgreSQL installieren
sudo make install
sudo make install
: Führt die Installation mit Administratorrechten mitsudo
aus.make install
installiert die kompilierten Dateien im System, und zwar in das Verzeichnis/usr/local/pgsql
, das im vorherigen Befehl./configure
angegeben wurde.
9. Umgebungsvariablen setzen
Verwenden Sie einen Texteditor 1. Bearbeiten Sie die Datei /etc/profile
:
sudo nano /etc/profile
sudo
: Gibt an, dass der Befehl mit Superuser-Berechtigungen (Administratorrechten) ausgeführt wird. Zum Ändern der Datei/etc/profile
sind Administratorrechte erforderlich.nano
: Dies ist ein Texteditor, der häufig in Terminalumgebungen zum Bearbeiten von Dateien verwendet wird./etc/profile
: Dies ist eine globale Konfigurationsdatei, die zum Festlegen von systemweiten Umgebungsvariablen und Startkonfigurationen verwendet wird. Die Einstellungen in dieser Datei werden bei jeder Benutzeranmeldung am System ausgeführt.
- Umgebungsvariable hinzufügen:
export PATH=/usr/local/pgsql/bin:$PATH
export
: Wird verwendet, um eine Umgebungsvariable festzulegen, die im aktuellen Prozess und in seinen Unterprozessen verfügbar ist.PATH
: Dies ist eine Umgebungsvariable, die eine Liste von Verzeichnissen enthält, in denen sich ausführbare Dateien befinden. Bei der Ausführung eines Befehls sucht das System anhand der in derPATH
-Variablen aufgeführten Verzeichnisse nach dem Befehl./usr/local/pgsql/bin
: Dies ist das Verzeichnis der ausführbaren Dateien der PostgreSQL-Datenbank. Das Hinzufügen dieses Verzeichnisses bedeutet, dass die ausführbaren Dateien in diesem Verzeichnis (z. B.psql
) vom System erkannt werden.:$PATH
: Hier stellt$PATH
den bereits vorhandenen Pfad dar. Der neue Pfad/usr/local/pgsql/bin
wird dem vorhandenenPATH
vorangestellt. Auf diese Weise prüft das System zuerst das neue Verzeichnis und dann den ursprünglichen Pfad.
Dieser Befehl fügt das Verzeichnis mit den ausführbaren PostgreSQL-Dateien der Umgebungsvariablen PATH
des Systems hinzu, um sicherzustellen, dass PostgreSQL-Befehle (z. B. psql
) direkt in der Befehlszeile ausgeführt werden können, ohne dass der vollständige Pfad angegeben werden muss. Die geänderten Einstellungen gelten für alle Benutzer
PostgreSQL-Datenbank initialisieren
Diese Befehle werden hauptsächlich verwendet, um einen PostgreSQL-Datenbankserver auf einem Linux-Server manuell zu konfigurieren, einschließlich des Erstellens eines PostgreSQL-Systembenutzers, des Initialisierens der Datenbank, des Startens des Datenbankdienstes und des Registrierens als systemd
-Dienst, damit er beim Start automatisch gestartet wird.
1. PostgreSQL-Benutzer erstellen
sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
sudo
: Führt den Befehl mit Superuser-Rechten aus.useradd
: Erstellt einen neuen Benutzer.-m
: Erstellt das Home-Verzeichnis des Benutzers.-U
: Erstellt gleichzeitig eine Benutzergruppe mit demselben Benutzernamen.-r
: Erstellt einen Systembenutzer (Systembenutzer-UID unter 1000, nicht für die Anmeldung verwendet).-d /var/lib/postgresql
: Gibt/var/lib/postgresql
als Home-Verzeichnis an.-s /bin/bash
: Gibt/bin/bash
als Shell an.postgres
: Benutzername.
Dieser Befehl erstellt einen dedizierten Systembenutzer postgres
für PostgreSQL.
2. Besitzer des PostgreSQL-Verzeichnisses ändern
sudo chown postgres /usr/local/pgsql
chown postgres /usr/local/pgsql
: Ändert den Besitzer des Verzeichnisses/usr/local/pgsql
in den Benutzerpostgres
, sodass dieser das Verzeichnis lesen und schreiben kann.
3. Passwort des PostgreSQL-Benutzers setzen
sudo passwd postgres
passwd postgres
: Ändert das Passwort des Benutzerspostgres
.
4. Zum PostgreSQL-Benutzer wechseln
su postgres
su postgres
: Wechselt zum Benutzerpostgres
, um PostgreSQL-bezogene Befehle zu verwenden.
5. Datenbank initialisieren
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
: Initialisiert die Datenbankspeicherung im Verzeichnis/usr/local/pgsql/data
.
6. PostgreSQL-Datenbank starten
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
: Startet die Datenbank mit dem Prozesspostgres
, wobei die Daten im Verzeichnis/usr/local/pgsql/data
gespeichert werden.
7. In einer anderen Terminalsession die Datenbank aufrufen
su postgres
/usr/local/pgsql/bin/psql
psql
: Das interaktive Befehlszeilentool von PostgreSQL zum Aufrufen der Datenbank-Shell.
8. Passwort des Datenbankbenutzers setzen
ALTER USER postgres WITH PASSWORD 'your_new_password';
- Ändert das Passwort des Datenbankbenutzers
postgres
.
9. systemd
-Dienst erstellen
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
: Bearbeitet diesystemd
-Konfigurationsdatei, damit PostgreSQL als Dienst ausgeführt werden kann.
Konfigurationsdateiinhalt:
[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
: Beschreibt, dass dieser Dienst ein PostgreSQL-Server ist.After=network-online.target
: Wartet, bis die Netzwerkverbindung verfügbar ist, bevor PostgreSQL gestartet wird.User=postgres
: Wird als Benutzerpostgres
ausgeführt.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Startet den PostgreSQL-Server.ExecReload=/bin/kill -HUP $MAINPID
: Sendet einHUP
-Signal beim Neuladen.KillMode=mixed
: Gemischter Beendigungsmodus.KillSignal=SIGINT
: Signal zum Beenden des PostgreSQL-Prozesses.TimeoutSec=infinity
: Timeout auf Unendlich setzen.
10. systemd
-Dienst aktivieren
sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
daemon-reload
: Lädt diesystemd
-Konfiguration neu, damit die neuepostgresql.service
wirksam wird.start postgresql
: Startet den PostgreSQL-Dienst.status postgresql
: Überprüft den PostgreSQL-Ausführungsstatus.enable postgresql
: Startet PostgreSQL automatisch beim Start.
Zweck dieser Befehle:
- Einen
postgres
-Benutzer erstellen, der speziell für die Ausführung von PostgreSQL verwendet wird. - Das Datenbank-Speicherverzeichnis initialisieren.
- Die PostgreSQL-Datenbank starten und die interaktive
psql
-Befehlszeile aufrufen. systemd
so konfigurieren, dass PostgreSQL als Systemdienst ausgeführt wird und den automatischen Start beim Start unterstützt.
Auf diese Weise kann der PostgreSQL-Server normal ausgeführt werden und beim Systemstart automatisch gestartet werden.
Referenzmaterialien
PostgreSQL: Documentation: 17: Chapter 17. Installation from Source Code
Andere Versionen dieser Webseite
Dieser Artikel ist in mehreren Sprachen verfügbar.
Wenn Sie einen Kommentar abgeben möchten, besuchen Sie bitte die folgenden Webseiten:
Diese Webseiten unterstützen nur das Anzeigen, Kommentare oder Nachrichten können nicht hinterlassen werden, bieten aber mehr Sprachoptionen und kürzere Ladezeiten:
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
Dieser Artikel wurde durch KI von Chinesisch (Vereinfacht) ins Deutsche übersetzt.