
현재 Android 5.0.2를 배포하는 Linux에서 첫 번째 PostgreSQL 9.5 클러스터를 생성하려고 하는데 이는 공유 메모리 오류인 것 같습니다.
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.5/main"
Error: initdb failed
누구든지 도와줄 수 있나요?
답변1
Android는 POSIX 또는 System V 공유 메모리를 지원하지 않습니다.자체 비표준 API인 ashmem이 있습니다..
PostgreSQL은 ashmem을 지원하지 않습니다. Android에서 PostgreSQL 서버를 실행하려면 POSIX 또는 System V 공유 메모리를 지원하는 사용자 정의 커널을 사용하거나 PostgreSQL에 ashmem에 대한 지원을 추가해야 할 것으로 예상됩니다.
가지다또한 패키징 도구인 android-shmem직접 연결을 통해 또는 ashmem을 사용하여 투명하게 System V 공유 메모리를 에뮬레이트합니다 LD_PRELOAD
. 시도해 볼 수 있습니다.