postgresql 9.4 instalação no GNURoot Debian v0.6.7_armhf

1

instalação do postgresql 9.4 no GNURoot Debian v0.6.7 _armhf

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

Tentou resolver usando dpkg-reconfigure locales e selecionando locale e depois

#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

Ao tentar criar um usuário, eu também tentei alterar o mesmo número de porta do postgresql com um número de porta diferente.

#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"?

saída netstat

#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                  :::*                                        -
    
por harrymc 19.01.2017 / 06:44

1 resposta

0

O Android intencionalmente não suporta a memória compartilhada do SysV shmem ou POSIX /dev/shm e, em vez disso, criou /dev/ashmem (link ). Mas o Postgresql precisa que a memória compartilhada do SysV funcione.

Este projeto do github pode ser uma solução: link

Esta biblioteca permite o uso de memória compartilhada no Android em processos independentes usando as APIs shmget (), shmat () e shmdt () de forma transparente.

Leia as notas da versão para usar o pacote. Embora namorando há dois anos ainda é relatado como funcionando .

Se as notas de lançamento não forem suficientes, também encontrei este conselho :

To install (in chroot environment):

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

To start a program :

env LD_PRELOAD="/lib/libandroid-shmem-gnueabihf.so" program %u
    
por 22.01.2017 / 11:10