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/pgsqlals 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 mitsudoaus.make installinstalliert die kompilierten Dateien im System, und zwar in das Verzeichnis/usr/local/pgsql, das im vorherigen Befehl./configureangegeben 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/profilesind 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$PATHden bereits vorhandenen Pfad dar. Der neue Pfad/usr/local/pgsql/binwird dem vorhandenenPATHvorangestellt. 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/postgresqlals Home-Verzeichnis an.-s /bin/bash: Gibt/bin/bashals 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/pgsqlin 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/datagespeichert 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 Benutzerpostgresausgefü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.servicewirksam 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. systemdso 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.