Warum kann ich Postgresql-10 nicht installieren? (Wie funktioniert das Raspbian-Archiv?)

7

Ich habe kürzlich versucht, Postgresql-10 auf meinem Himbeer-Pi mit Stretch zu installieren. Wenn ich sudo apt-get install postgresql-10 starte, bekomme ich

E: Unable to locate package postgresql-10.

Wenn ich jedoch auf die Website http://archive.raspbian.org/raspbian/pool/main/p/ gehe, sehe ich deutlich das Verzeichnis postgresql-10.

Ich habe ein sudo apt-get-Update durchgeführt . Was mache ich also falsch?

John Smith
quelle
Können Sie diesen Befehl und seine Ausgabe überprüfen? apt-cache search postgresql
eftshift0
@ eftshift0: Es wird nicht in dieser Liste angezeigt.
John Smith
Das klingt nicht ganz richtig. Ich werde nach meiner Himbeere sehen, wenn ich wieder zu Hause bin.
eftshift0
Ich habe gerade meine Himbeere (Stretch) überprüft und sehe Postgresql-9.6 und 9.5.
eftshift0

Antworten:

5

Eine sehr nützliche Ressource ist in solchen Fällen packages.debian.org . Wenn Sie nachschlagen postgresql-10, wird ein Paket gefunden , aber das wichtigste zu beachtende Bit sind die Distributionen, in denen das Paket verfügbar ist (oben rechts auf der Seite) - es ist nur in den Buster- und Sid-Repositorys verfügbar - nicht in Stretch .

Dies erklärt, warum das Verzeichnis im Paket-Repository angezeigt wird, obwohl Sie mit Ihrer Stretch-Installation nicht selbst darauf zugreifen können. Wie Sie im dists/Verzeichnis des Repos sehen können, ist Buster eine verfügbare Option. Deshalb hat sich das Paket eingeschlichen.

Möglicherweise können Sie einige Pakete aus dem Test-Repository installieren, während Ihr System größtenteils stabil bleibt. Beachten Sie jedoch, dass es technisch nicht unterstützt wird. Wenn Sie diesen Weg gehen möchten, lesen Sie den Ratschlag für neue Benutzer, das Debian-System nicht zu beschädigen, der sehr informativ ist.

Aurora0001
quelle
3

Zu diesem Zeitpunkt enthält das Repository keine offiziell unterstützte Version von PostgreSQL 10. Wenn Software ein umfangreiches Punkt-Upgrade veröffentlicht, kann es oft eine Weile dauern, bis es in ein Repository gelangt, da mit einem solchen Prozess viel Arbeit verbunden ist .

Wenn Sie die neueste Version möchten, müssen Sie entweder Geduld haben, sie selbst erstellen (ich empfehle dies nicht) oder vielleicht etwas wie Docker verwenden.

Jacobm001
quelle
Wenn Sie es wirklich wirklich brauchen und ein Multi-Core-Modell (ARMv7) verwenden, gibt es möglicherweise eine andere Distribution, die es hat. Fedora 27 hat 9.6.8, Sie könnten Ubuntu oder Arch überprüfen ...
Goldlöckchen
@goldilocks: das stimmt, meine Annahme war, dass sie bei Raspbian bleiben wollen.
Jacobm001
2

Wenn ich auf die Website http://archive.raspbian.org/raspbian/pool/main/p/ gehe, sehe ich deutlich das Verzeichnis postgresql-10.

Das Repo enthält wahrscheinlich Pakete aus dem Testzweig (v.10, Buster).

Manchmal ist es möglich, sie manuell zu installieren, aber es kann ziemlich mühsam werden (daher sollten Sie stattdessen zuerst einen Quell-Build ausprobieren). Zuerst:

mkdir deb
cd deb

Das liegt daran, dass sich das Paket ohne ein ordentliches eigenes Toplevel öffnet.

wget http://archive.raspbian.org/raspbian/pool/main/p/postgresql-10/postgresql-10_10.3-2_armhf.deb
ar x postgresql-10_10.3-2_armhf.deb

Dies hinterlässt ein paar .tar.xzDateien.

tar -xJf control.tar.xz
tar -xJf data.tar.xz

Die erste enthält einige Metainformationen in Textdateien. controlenthält eine Depends:Liste, die Sie berücksichtigen müssen.

Der zweite wird in einem Verzeichnisbaum geöffnet, usrder im aktuellen Verzeichnis verwurzelt ist . Wenn Sie es tatsächlich installieren, werden diese Dateien im Root-Dateisystem (dh /usr) verteilt.

Sie können ldddie Binärdateien ausführen, um festzustellen, ob das System die gemeinsam genutzten Bibliotheken zur Ausführung bereitstellen kann. Ich bin nicht so weit gegangen (ich habe nichts zur Hand, auf dem Raspbian ausgeführt wird), aber dieses Paket enthält eine gewaltige Anzahl gemeinsam genutzter Objekte, und die Servicedateien, die zur Steuerung des Servers ( /lib/systemd/system/postgresql.service) verwendet werden, müssen sich in einem anderen Paket befinden ...

Goldlöckchen
quelle
1

Die einzige Möglichkeit, PostgreSQL 10.x für Raspbian zu installieren, besteht darin, es zu kompilieren. Ich habe es auf zwei Bash-Skripte und zwei Neustarts reduziert. Wie Aurora0001 sagte, funktioniert es nicht für Stretch (nur Jesse), aber ich hoffe, es hilft trotzdem!

http://www.williammeitzen.com/compiling-postgresql-10-x-on-a-raspberry-pi/

wmeitzen
quelle