Как установить MongoDB 4.4 на Alpine 3.11

Я хочу установить MongoDB 4.4 на Alpine 3.11, но похоже, что Alpine удалила пакет MDB из-за лицензии BSD. Я должен сам построить образ, но у меня есть ошибки ...

Во-первых, я клонирую репозиторий git:

git clone --branch v4.4 --single-branch --depth 1 https://github.com/mongodb/mongo.git /tmp/mongo

Затем устанавливаю несколько пакетов:

apk add --no-cache --virtual build-pack \
        boost-build=1.69.0-r1 \
        boost-filesystem=1.71.0-r1 \
        boost-iostreams=1.71.0-r1 \
        boost-program_options=1.71.0-r1 \
        boost-python3=1.71.0-r1 \
        boost-system=1.71.0-r1 \
        build-base=0.5-r1 \
        busybox=1.31.1-r9 \
        curl-dev=7.67.0-r0 \
        cmake=3.15.5-r0 \
        db=5.3.28-r1 \
        isl=0.18-r0 \
        libbz2=1.0.8-r1 \
        libc-dev=0.7.2-r0 \
        libgcc=9.2.0-r4
        libpcrecpp=8.43-r0 \
        libsasl=2.1.27-r5 \
        libssl1.1=1.1.1d-r3 \
        libstdc++=9.2.0-r4 \
        linux-headers=4.19.36-r0 \
        g++=9.2.0-r4 \
        gcc=9.2.0-r4 \
        gmp=6.1.2-r1 \
        jsoncpp=1.9.2-r0  \
        jsoncpp-dev=1.9.2-r0 \
        mpc1=1.1.0-r1 \
        mpfr4=4.0.2-r1 \
        musl=1.1.24-r2 \
        musl-dev=1.1.24-r2 \
        openssl-dev=1.1.1d-r3 \
        pcre=8.43-r0 \
        pkgconf=1.6.3-r0 \
        python3=3.8.2-r0 \
        py3-cheetah=3.2.4-r1 \
        py3-crypto=2.6.1-r5 \
        py3-openssl=19.1.0-r0 \
        py3-psutil=5.6.7-r0 \
        py3-yaml=5.3.1-r0 \
        scons=3.1.1-r0 \
        snappy=1.1.7-r1 \
        xz-libs=5.2.4-r0 \
        yaml-cpp=0.6.3-r0 \
        yaml-cpp-dev=0.6.3-r0 \
        zlib=1.2.11-r3

У меня возникает эта ошибка, когда я использую эту команду python3 buildscripts/scons.py MONGO_VERSION=4.4 --prefix=/opt/mongo mongod --disable-warnings-as-errors:

src/mongo/util/processinfo_linux.cpp:50:10: fatal error: gnu/libc-version.h: No such file or directory
...
scons: building terminated because of errors.
build/opt/mongo/util/processinfo_linux.o failed: Error 1

Любая идея ?

Спасибо.

РЕДАКТИРОВАТЬ: Я пробовал версию 4.2.5, у меня есть это сообщение об ошибке и:

In file included from src/third_party/mozjs-60/platform/x86_64/linux/build/Unified_cpp_js_src29.cpp:11:
src/third_party/mozjs-60/extract/js/src/threading/posix/Thread.cpp: In function 'void js::ThisThread::GetName(char*, size_t)':
src/third_party/mozjs-60/extract/js/src/threading/posix/Thread.cpp:210:8: error: 'pthread_getname_np' was not declared in this scope; did you mean 'pthread_setname_np'?
 210 |   rv = pthread_getname_np(pthread_self(), nameBuffer, len);
     |        ^~~~~~~~~~~~~~~~~~
     |        pthread_setname_np
scons: *** [build/opt/third_party/mozjs-60/platform/x86_64/linux/build/Unified_cpp_js_src29.o] Error 1
scons: building terminated because of errors.
build/opt/third_party/mozjs-60/platform/x86_64/linux/build/Unified_cpp_js_src29.o failed: Error 1

С этими пакетами:

apk add --no-cache --virtual build-pack \
        build-base=0.5-r1 \
        cmake=3.15.5-r0 \
        curl-dev=7.67.0-r0 \
        libgcc=9.2.0-r4 \
        libssl1.1=1.1.1d-r3 \
        libstdc++=9.2.0-r4 \
        linux-headers=4.19.36-r0 \
        g++=9.2.0-r4 \
        gcc=9.2.0-r4 \
        openssl-dev=1.1.1d-r3 \
        musl=1.1.24-r2
        python3=3.8.2-r0 \
        py3-cheetah=3.2.4-r1 \
        py3-crypto=2.6.1-r5 \
        py3-openssl=19.1.0-r0 \
        py3-psutil=5.6.7-r0 \
        py3-yaml=5.3.1-r0 \
        scons=3.1.1-r0 \
        libc-dev=0.7.2-r0

person M4kn4sh    schedule 25.03.2020    source источник
comment
вам не хватает каких-то пакетов для разработки ... не знаю Alpine, но предположить, что это будет что-то libc-dev или glibc-dev. Или ... это установлено, но каким-то образом не удается выбрать правильный env - в pthread.h эта функция защищена #ifdef __USE_GNU   -  person Mats Wichmann    schedule 25.03.2020
comment
Спасибо @MatsWichmann. Я пробовал использовать libc-dev 0.7.2-r0, но он не работает. Нет пакетов для glibc-dev на Alpine pkgs.alpinelinux.org/packages?name= * glibc * & ветка = v3.11 & arch = x86_64   -  person M4kn4sh    schedule 25.03.2020
comment
Я добавил несколько новых журналов после добавления libc-dev = 0.7.2-r0   -  person M4kn4sh    schedule 25.03.2020
comment
v4.4 - это ветвь разработки, а не тег выпуска. Вам, вероятно, повезет больше с последним выпуском под тегом r4.2.5   -  person Joe    schedule 25.03.2020
comment
Хорошо, я пробовал версию 4.2.5, но у меня всегда возникает ошибка. Я отредактировал свой вопрос.   -  person M4kn4sh    schedule 26.03.2020
comment
Я не знаком с этой ошибкой. Вы можете найти некоторую информацию из этого вопроса: stackoverflow.com/questions/30346649/.   -  person Joe    schedule 26.03.2020
comment
Спасибо, @Joe, когда я пытаюсь getconf GNU_LIBC_VERSION, у меня появляется это сообщение: getconf: GNU_LIBC_VERSION: unknown variable, но я установил musl.   -  person M4kn4sh    schedule 26.03.2020
comment
Хорошо, я нашел этот stackoverflow.com/a/52841405, но когда я устанавливаю glibc-2.31, у меня появляется эта ошибка :( pastebin.com/ig3PRCjn   -  person M4kn4sh    schedule 26.03.2020
comment
Хорошо, это действительно будет непросто, Alpine не использует glibc (Alpine Linux построен на musl libc и busybox). Либо найдите старый mongo pkg для Alpine до того, как он был удален, и используйте эти инструкции для создания собственного порта, либо запланируйте запуск его на виртуальной машине - при условии, что любой из предварительно упакованных пакетов будет работать - можно проверить Vagrant / Bitnami, но виртуальный бокс бегать по альпайну? Может быть, тоже не стартер.   -  person Mats Wichmann    schedule 27.03.2020
comment
Привет, @MatsWichmann, я использую только Docker и хочу последнюю версию MongoDB. Поэтому мне невозможно использовать Alpine и MongoDB :(   -  person M4kn4sh    schedule 28.03.2020
comment
Есть ли альпийское сообщество, в котором вы могли бы спросить об этом? Похоже, что цели этой ОС могут немного отличаться от целей массово масштабируемой базы данных nosql, но я ничего о них не знаю, так что это просто предположение. Но пока не сдавайтесь.   -  person Mats Wichmann    schedule 03.04.2020