dragonflydb / dragonfly

A modern replacement for Redis and Memcached
https://www.dragonflydb.io/
Other
25.21k stars 908 forks source link

install dragonfly-0.9.1 by source code, happend problems (glibc install and dragonfly startup) #442

Closed tiandong19860806 closed 1 year ago

tiandong19860806 commented 1 year ago

Discussed in https://github.com/dragonflydb/dragonfly/discussions/441

Originally posted by **tiandong19860806** October 27, 2022 Hi all, Do you have some problem about install the dragonfly-0.9.1 by source code building? Below content, it's my installation of dragonfly-0.9.1. I take many time, the last step (glibc-2.29 build install) is failed and difficulty. **Part I : enviroment as below:** (1.0) OS OS : CentOS 7.9 x64 uname -a: Linux CNT7XDFLY01 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux (1.1) reference software: automake automake = 1.16.1 m4 = 1.4.18 autoconf = 2.69 gcc = 4.8.5-44.el7 gcc-c++ = 4.8.5-44.el7 (1.2) reference software: make make = 4.2.1 libtool = 2.4.2-22.el7_3 gettext-devel = 0.19.8.1-3.el7 (1.3) reference software: gcc gcc = 12.2.0 m4 = 1.4.18 gmp = 6.2.1 mpfr = 4.1.0 mpc = 1.2.1 isl = 0.24 (1.4) reference software: glibc glibc = 2.29 ( ** install failed , many times always is failed ** ) cpp = 4.8.5-44.el7 binutils = 2.27-44.base.el7_9.1 python3 = 3.6.8-18.el7 bison = 3.0.4-2.el7 (1.5) Startup dragonfly or execute --help: DragonFly : 0.9.1 **Part II : installation happened problem.** (2.1) glibc-2.29 execute command 'make', happened error as below: **step 4 install glibc** [root@CNT7XDFLY01 build]# pwd /home/soft/glibc/glibc-2.29/build [root@CNT7XDFLY01 build]# [root@CNT7XDFLY01 build]# ../configure --prefix=/usr/local/glibc --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for gcc... gcc checking for suffix of object files... configure: error: in `/home/soft/glibc/glibc-2.29/build': configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details [root@CNT7XDFLY01 build]# (2.2) dragonfly startup or execute '--help' command, happened error as below: **step 5 startup dragonfly** ./dragonfly --help ( or ./dragonfly # other starup command ) [root@CNT7XDFLY01 ~]# export DRAGONFLY_HOME=/home/app/dragonfly/dragonfly-0.9.1 [root@CNT7XDFLY01 ~]# cd $DRAGONFLY_HOME/ [root@CNT7XDFLY01 dragonfly-0.9.1]# ./dragonfly --help ./dragonfly: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./dragonfly) ./dragonfly: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./dragonfly) ./dragonfly: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./dragonfly) ./dragonfly: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./dragonfly) ./dragonfly: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by ./dragonfly) ./dragonfly: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./dragonfly) ./dragonfly: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.28' not found (required by ./dragonfly) ./dragonfly: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by ./dragonfly) ./dragonfly: /lib64/libc.so.6: version `GLIBC_2.30' not found (required by ./dragonfly) ./dragonfly: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./dragonfly) [root@CNT7XDFLY01 dragonfly-0.9.1]#
tiandong19860806 commented 1 year ago

I execute the installation step and command ,as below files:

step 1: 01-intall-automake.txt

step 2: 02-install-make.txt

step 3: 03-install-gcc.txt

step 4: 04-install-glibc.txt

step 5: 05-install-dragonfly.txt

romange commented 1 year ago

@tiandong19860806 this linux it too old. Try running via docker - maybe it will work.

tiandong19860806 commented 1 year ago

Hi @romange ,

Thanks, I know deploy dragonfly by using docker is easy and success, Because I want deploy dragonfly by binary file in machine to use less hardware resources.

comment : such as database or queue, use docker to deploy, it maybe consumes more hard disk IO and memory

tiandong19860806 commented 1 year ago

And I use high version CentOS-8.5 to deploy dragonfly, also happened prblem at the steps 'install gcc-12.2.0 / glibc-2.29'

tiandong19860806 commented 1 year ago

After I modify step 4, add gcc libary path as below:

export LD_LIBRARY_PATH=/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/isl/lib

then execute glibc build command 'make -j8', the new result happened problem as below:

MT /home/soft/glibc/glibc-2.29/build/csu/dso_handle.os libc-tls.c: In function ‘__libc_setup_tls’: libc-tls.c:209:30: error: array subscript 1 is outside the bounds of an interior zero-length array ‘struct dtv_slotinfo[0]’ [-Werror=zero-length-bounds] 209 | static_slotinfo.si.slotinfo[1].map = main_map; | ~~~~~^ In file included from ../sysdeps/x86/ldsodefs.h:64, from ../sysdeps/gnu/ldsodefs.h:46, from ../sysdeps/unix/sysv/linux/ldsodefs.h:25, from libc-tls.c:21: ../sysdeps/generic/ldsodefs.h:411:7: note: while referencing ‘slotinfo’ 411 | } slotinfo[0]; | ^~~~ gcc ../sysdeps/gnu/unwind-resume.c -c -std=gnu11 -fgnu89-inline -g -O2 -Wall -Wwrite-strings -Wundef -Werror -fmerge-all-constants -frounding-math -fno-stack-protector -Wstrict-prototypes -Wold-style-definition -fmath-errno -fPIC -fno-stack-protector -DSTACK_PROTECTOR_LEVEL=0 -fexceptions -fasynchronous-unwind-tables -ftls-model=initial-exec -I../include -I/home/soft/glibc/glibc-2.29/build/csu -I/home/soft/glibc/glibc-2.29/build -I../sysdeps/unix/sysv/linux/x86_64/64 -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/x86/include -I../sysdeps/unix/sysv/linux/x86 -I../sysdeps/x86/nptl -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/x86_64/nptl -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux -I../sysdeps/nptl -I../sysdeps/pthread -I../sysdeps/gnu -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/64 -I../sysdeps/x86_64/fpu/multiarch -I../sysdeps/x86_64/fpu -I../sysdeps/x86/fpu/include -I../sysdeps/x86/fpu -I../sysdeps/x86_64/multiarch -I../sysdeps/x86_64 -I../sysdeps/x86 -I../sysdeps/ieee754/float128 -I../sysdeps/ieee754/ldbl-96/include -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64/wordsize-64 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754 -I../sysdeps/generic -I.. -I../libio -I. -D_LIBC_REENTRANT -include /home/soft/glibc/glibc-2.29/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h -DPIC -DSHARED -DTOP_NAMESPACE=glibc -o /home/soft/glibc/glibc-2.29/build/csu/unwind-resume.os -MD -MP -MF /home/soft/glibc/glibc-2.29/build/csu/unwind-resume.os.dt -MT /home/soft/glibc/glibc-2.29/build/csu/unwind-resume.os cc1: all warnings being treated as errors make[2]: [../o-iterator.mk:9: /home/soft/glibc/glibc-2.29/build/csu/libc-tls.o] Error 1 make[2]: Waiting for unfinished jobs.... make[2]: Leaving directory '/home/soft/glibc/glibc-2.29/csu' make[1]: [Makefile:258: csu/subdir_lib] Error 2 make[1]: Leaving directory '/home/soft/glibc/glibc-2.29' make: [Makefile:9: all] Error 2 [root@CNT7XDFLY01 build]#

image

romange commented 1 year ago

compiling glibc is outside of core specialty of this project :)

tiandong19860806 commented 1 year ago

Hi @romange ,

Could you give us a suggest, the list of software name and version about source code installing dragonfly.

because we want install dragonfly in machine not docker at some scene.

Thanks.