Installation von postgresql 9.4 unter GNURoot Debian v0.6.7_armhf

1

Installation von postgresql 9.4 unter GNURoot Debian v0.6.7_armhf

#service postgresql start
[warn] No PostgreSQL clusters exist; see "man pg_createcluster" ... (warning).

Versucht, mit dpkg-reconfigure localesund Auswahl von Gebietsschema und danach zu lösen

#pg_createcluster 9.4 main --start
Creating new cluster 9.4/main ...
config /etc/postgresql/9.4/main
data   /var/lib/postgresql/9.4/main
locale en_US.UTF-8
Flags of /var/lib/postgresql/9.4/main set as -------A-----e-C
FATAL:  could not create shared memory segment: Function not implemented
DETAIL:  Failed system call was shmget(key=1, size=40, 03600).
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/9.4/main"
Error: initdb failed

Beim Versuch, einen Benutzer zu erstellen, habe ich auch versucht, die Portnummer von postgresql für dieselbe Ausgabe mit einer anderen Portnummer zu ändern.

#createuser user -P -S -R -D
Enter password for new role:
Enter it again:
createuser: could not connect to database postgres: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Netstat-Ausgabe

#netstat -plunt
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State          PID/Program name
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN         28433/sshd
tcp6       0      0 :::2222                 :::*                    LISTEN         28433/sshd
tcp6       0      0 127.0.0.1:42110         :::*                    LISTEN              -
udp6       0      0 :::546                  :::*                                        -
Harrymc
quelle

Antworten:

0

Android unterstützt absichtlich nicht SysV Shared Memory shmemoder POSIX /dev/shmund wird stattdessen erstellt /dev/ashmem( Link ). Aber Postgresql benötigt SysV Shared Memory, um zu funktionieren.

Dieses Github-Projekt könnte eine Lösung sein: https://github.com/pelya/android-shmem

Diese Bibliothek ermöglicht die nahtlose Verwendung von Shared Memory in Android über unabhängige Prozesse hinweg unter Verwendung der APIs shmget (), shmat () und shmdt ().

Lesen Sie die Versionshinweise zur Verwendung des Pakets. Obwohl es aus dem Jahr vor zwei Jahren stammt, wird es immer noch als funktionierend gemeldet .

Wenn die Release Notes nicht ausreichen, habe ich auch diesen Rat gefunden :

So installieren Sie (in einer Chroot-Umgebung):

cp libandroid-shmem-gnueabihf.so /lib/libandroid-shmem-gnueabihf.so

So starten Sie ein Programm:

env LD_PRELOAD="/lib/libandroid-shmem-gnueabihf.so" program %u
Harrymc
quelle