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.
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.