postgresql 9.4 安装GNURoot Debianv0.6.7_armhf
#service postgresql start
[warn] No PostgreSQL clusters exist; see "man pg_createcluster" ... (warning).
尝试解决使用dpkg-reconfigure locales
和选择语言环境以及之后
#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
在尝试创建用户时,我也尝试更改 postgresql 端口号,并使用不同的端口号输出相同的输出。
#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 输出
#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 :::* -
答案1
Android 有意不支持 SysV 共享内存shmem
或 POSIX /dev/shm
,而是创建了/dev/ashmem
(关联)。但是Postgresql需要SysV共享内存才能工作。
这个 github 项目可能是一个解决方案: https://github.com/pelya/android-shmem
该库支持在 Android 中跨独立进程无缝使用 shmget()、shmat() 和 shmdt() API 的共享内存。
阅读发行说明以了解如何使用该软件包。虽然它已经是两年前了,但仍然已报告为工作。
如果发布说明还不够的话,我还发现了 这个建议:
安装(在 chroot 环境中):
cp libandroid-shmem-gnueabihf.so /lib/libandroid-shmem-gnueabihf.so
要启动程序:
env LD_PRELOAD="/lib/libandroid-shmem-gnueabihf.so" program %u