美文网首页我爱编程
redis集群3.3.3搭配redis软件3.2.8在cento

redis集群3.3.3搭配redis软件3.2.8在cento

作者: 读或写 | 来源:发表于2017-02-28 09:07 被阅读0次

    说明
    本次redis集群安装在rhel6.8 64位机器上,redis版本为3.2.8,redis的gem文件版本为3.3.3,ruby版本为2.4.0,gem版本为2.6.10,zlib版本为1.2.11,没有升级openssl,使用的系统自带的openssl,版本为OpenSSL 1.0.1e-fips。

    操作系统安装
    安装rhel6.8 64bit时,选择basisc server,注意正确选择时区,由于内存是2G,swap给了4G,剩余的全为root分区。

    配置网络
    [root@rdb4 ~]# more /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    HWADDR=00:15:5D:65:09:74
    TYPE=Ethernet
    ONBOOT=yes
    IPADDR=192.168.102.244
    NETMASK=255.255.255.0
    GATEWAY=192.168.102.1

    service networkrestart

    配置yum
    1、在虚拟机上挂载上安装镜像文件
    2、mount /dev/cdrom /mnt
    3、编辑/etc/yum.repos.d/rhel-source.repo,加入以下内容:
    [rhel-source]
    name=Red Hat Enterprise Linux $releasever - $basearch - Source
    baseurl=file:///mnt
    enabled=1
    gpgcheck=0
    gpgkey=file:///mnt/RPM-GPG-KEY-redhat-release

    4、rpm --import /mnt/RPM-GPG-KEY-redhat-release
    5、yum clean all
    6、yum list

    安装编译环境
    yum install -y gcc-c++.x86_64 libgcc.i686 libgcc.x86_64 compat-gcc-34.x86_64 compat-gcc-34-c++.x86_64 compat-gcc-34-g77.x86_64 gcc.x86_64

    关闭防火墙和selinux
    chkconfig --level 2345 iptables off
    chkconfig --level 2345 ip6tables off
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    重启一下服务器shutdown -r now

    创建redis用户
    groupadd -g 600 rdb
    useradd -g rdb -u 600 rdb
    passwd rdb

    下载软件
    1、ruby
    下载的最新稳定版本的ruby 2.4.0
    http://www.ruby-lang.org/en/downloads/
    2、gem
    进入网站后点击下载zip或者tgz包格式的gem,这个版本是2.6.10
    https://rubygems.org/pages/download
    3、zlib
    下载的1.2.11版本你的
    http://www.zlib.net/
    4、下载gem的redis
    最新版本为3.3.3,下载最新版本,注意选择正确的版本,在右下角有下载链接
    https://rubygems.org/gems/redis
    如果不行可以直接进入这个连接下载https://rubygems.org/downloads/redis-3.3.3.gem

    5、redis
    进入官网选择下载最新稳定版本,3.2.8
    https://redis.io/

    创建目录
    mkdir /soft
    chmod 777 /soft
    mkdir -p /u01/redis
    chown rdb:rdb /u01/redis
    chmod 775 /u01/redis
    用redis用户rdb上传安装软件至soft目录

    root用户安装ruby
    1、解压
    tar -zxf ruby-2.4.0.tar.gz
    cd ruby-2.4.0
    ======================================================================================================


    ======================================================================================================
    2、执行configure
    打算将ruby安装在/usr/local/src/ruby下面,这个目录可以不用创建,他安装时会自动创建
    ./configure --prefix=/usr/local/src/ruby
    [root@rdb4 ruby-2.4.0]# ./configure --prefix=/usr/local/src/ruby
    checking for ruby... false
    checking build system type... x86_64-pc-linux-gnu
    checking host system type... x86_64-pc-linux-gnu
    checking target system type... x86_64-pc-linux-gnu
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking for g++... g++
    checking whether we are using the GNU C++ compiler... yes
    checking whether g++ accepts -g... yes
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking whether gcc needs -traditional... no
    checking for ld... ld
    checking whether the linker is GNU ld... yes
    checking whether gcc -E accepts -o... yes
    checking for ranlib... ranlib
    checking for ar... ar
    checking for ar D option... yes
    checking for as... as
    checking for objdump... objdump
    checking for objcopy... objcopy
    checking for nm... nm
    checking whether ln -s works... yes
    checking whether make sets $(MAKE)... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for dtrace... no
    checking for dot... no
    checking for doxygen... no
    checking for pkg-config... pkg-config
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking minix/config.h usability... no
    checking minix/config.h presence... no
    checking for minix/config.h... no
    checking whether it is safe to define EXTENSIONS... yes
    checking for cd using physical directory... cd -P
    checking whether CFLAGS is valid... yes
    checking whether LDFLAGS is valid... yes
    checking whether -Wno-unused-parameter is accepted as CFLAGS... yes
    checking whether -Wno-parentheses is accepted as CFLAGS... yes
    checking whether -Wno-long-long is accepted as CFLAGS... yes
    checking whether -diag-disable=2259 is accepted as CFLAGS... no
    checking whether -Wno-missing-field-initializers is accepted as CFLAGS... yes
    checking whether -Wno-tautological-compare is accepted as CFLAGS... yes
    checking whether -Wno-parentheses-equality is accepted as CFLAGS... yes
    checking whether -Wno-constant-logical-operand is accepted as CFLAGS... yes
    checking whether -Wno-self-assign is accepted as CFLAGS... yes
    checking whether -Wunused-variable is accepted as CFLAGS... yes
    checking whether -Wimplicit-int is accepted as CFLAGS... yes
    checking whether -Wpointer-arith is accepted as CFLAGS... yes
    checking whether -Wwrite-strings is accepted as CFLAGS... yes
    checking whether -Wdeclaration-after-statement is accepted as CFLAGS... yes
    checking whether -Wshorten-64-to-32 is accepted as CFLAGS... no
    checking whether -Wimplicit-function-declaration is accepted as CFLAGS... yes
    checking whether -Wdivision-by-zero is accepted as CFLAGS... no
    checking whether -Wdeprecated-declarations is accepted as CFLAGS... yes
    checking whether -Wno-packed-bitfield-compat is accepted as CFLAGS... yes
    checking whether -Wsuggest-attribute=noreturn is accepted as CFLAGS... no
    checking whether -Wsuggest-attribute=format is accepted as CFLAGS... no
    checking whether -Wimplicit-fallthrough=0 is accepted as CFLAGS... no
    checking whether -Wextra-tokens is accepted as CFLAGS... no
    checking whether -Wall -Wextra is accepted as CFLAGS... yes
    checking whether -Qunused-arguments is accepted as CFLAGS... no
    checking whether INFINITY is available without C99 option... yes
    checking whether NAN is available without C99 option... yes
    checking whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS... yes
    checking whether -fstack-protector is accepted as CFLAGS... yes
    checking whether -fstack-protector is accepted as LDFLAGS... yes
    checking whether -Wl,--compress-debug-sections=zlib is accepted as LDFLAGS... no
    checking whether -std=gnu99 is accepted as CFLAGS... yes
    checking whether -fno-strict-overflow is accepted as CFLAGS... yes
    checking whether -ggdb3 is accepted as CFLAGS... yes
    checking whether -fvisibility=hidden is accepted as CFLAGS... yes
    checking whether -fno-fast-math is accepted as CFLAGS... yes
    checking whether -fexcess-precision=standard is accepted as CFLAGS... no
    checking whether -fp-model precise is accepted as CFLAGS... no
    checking for crypt in -lcrypt... yes
    checking for dlopen in -ldl... yes
    checking for shl_load in -ldld... no
    checking for shutdown in -lsocket... no
    checking for dirent.h that defines DIR... yes
    checking for library containing opendir... none required
    checking for stdbool.h that conforms to C99... yes
    checking for _Bool... yes
    checking for sys/wait.h that is POSIX.1 compatible... yes
    checking a.out.h usability... yes
    checking a.out.h presence... yes
    checking for a.out.h... yes
    checking atomic.h usability... no
    checking atomic.h presence... no
    checking for atomic.h... no
    checking direct.h usability... no
    checking direct.h presence... no
    checking for direct.h... no
    checking grp.h usability... yes
    checking grp.h presence... yes
    checking for grp.h... yes
    checking fcntl.h usability... yes
    checking fcntl.h presence... yes
    checking for fcntl.h... yes
    checking float.h usability... yes
    checking float.h presence... yes
    checking for float.h... yes
    checking ieeefp.h usability... no
    checking ieeefp.h presence... no
    checking for ieeefp.h... no
    checking intrinsics.h usability... no
    checking intrinsics.h presence... no
    checking for intrinsics.h... no
    checking langinfo.h usability... yes
    checking langinfo.h presence... yes
    checking for langinfo.h... yes
    checking limits.h usability... yes
    checking limits.h presence... yes
    checking for limits.h... yes
    checking locale.h usability... yes
    checking locale.h presence... yes
    checking for locale.h... yes
    checking malloc.h usability... yes
    checking malloc.h presence... yes
    checking for malloc.h... yes
    checking malloc/malloc.h usability... no
    checking malloc/malloc.h presence... no
    checking for malloc/malloc.h... no
    checking malloc_np.h usability... no
    checking malloc_np.h presence... no
    checking for malloc_np.h... no
    checking net/socket.h usability... no
    checking net/socket.h presence... no
    checking for net/socket.h... no
    checking process.h usability... no
    checking process.h presence... no
    checking for process.h... no
    checking pwd.h usability... yes
    checking pwd.h presence... yes
    checking for pwd.h... yes
    checking setjmpex.h usability... no
    checking setjmpex.h presence... no
    checking for setjmpex.h... no
    checking sys/attr.h usability... no
    checking sys/attr.h presence... no
    checking for sys/attr.h... no
    checking sys/fcntl.h usability... yes
    checking sys/fcntl.h presence... yes
    checking for sys/fcntl.h... yes
    checking sys/file.h usability... yes
    checking sys/file.h presence... yes
    checking for sys/file.h... yes
    checking sys/id.h usability... no
    checking sys/id.h presence... no
    checking for sys/id.h... no
    checking sys/ioctl.h usability... yes
    checking sys/ioctl.h presence... yes
    checking for sys/ioctl.h... yes
    checking sys/mkdev.h usability... no
    checking sys/mkdev.h presence... no
    checking for sys/mkdev.h... no
    checking sys/param.h usability... yes
    checking sys/param.h presence... yes
    checking for sys/param.h... yes
    checking sys/prctl.h usability... yes
    checking sys/prctl.h presence... yes
    checking for sys/prctl.h... yes
    checking sys/resource.h usability... yes
    checking sys/resource.h presence... yes
    checking for sys/resource.h... yes
    checking sys/select.h usability... yes
    checking sys/select.h presence... yes
    checking for sys/select.h... yes
    checking sys/sendfile.h usability... yes
    checking sys/sendfile.h presence... yes
    checking for sys/sendfile.h... yes
    checking sys/socket.h usability... yes
    checking sys/socket.h presence... yes
    checking for sys/socket.h... yes
    checking sys/syscall.h usability... yes
    checking sys/syscall.h presence... yes
    checking for sys/syscall.h... yes
    checking sys/sysmacros.h usability... yes
    checking sys/sysmacros.h presence... yes
    checking for sys/sysmacros.h... yes
    checking sys/time.h usability... yes
    checking sys/time.h presence... yes
    checking for sys/time.h... yes
    checking sys/times.h usability... yes
    checking sys/times.h presence... yes
    checking for sys/times.h... yes
    checking sys/uio.h usability... yes
    checking sys/uio.h presence... yes
    checking for sys/uio.h... yes
    checking sys/utime.h usability... no
    checking sys/utime.h presence... no
    checking for sys/utime.h... no
    checking syscall.h usability... yes
    checking syscall.h presence... yes
    checking for syscall.h... yes
    checking time.h usability... yes
    checking time.h presence... yes
    checking for time.h... yes
    checking ucontext.h usability... yes
    checking ucontext.h presence... yes
    checking for ucontext.h... yes
    checking utime.h usability... yes
    checking utime.h presence... yes
    checking for utime.h... yes
    checking gmp.h usability... no
    checking gmp.h presence... no
    checking for gmp.h... no
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking whether byte ordering is bigendian... no
    checking for an ANSI C-conforming const... yes
    checking whether char is unsigned... no
    checking for inline... inline
    checking for working volatile... yes
    checking for typeof syntax and keyword spelling... typeof
    checking for long long... yes
    checking for off_t... yes
    checking char bit... 8
    checking size of int... 4
    checking size of short... 2
    checking size of long... 8
    checking size of long long... 8
    checking size of __int64... 0
    checking size of __int128... 0
    checking size of off_t... 8
    checking size of void*... 8
    checking size of float... 4
    checking size of double... 8
    checking size of time_t... 8
    checking size of clock_t... 8
    checking packed struct attribute... x attribute((packed))
    checking for printf prefix for long long... ll
    checking for pid_t... yes
    checking for convertible type of pid_t... INT
    checking for uid_t... yes
    checking for convertible type of uid_t... UINT
    checking for gid_t... yes
    checking for convertible type of gid_t... UINT
    checking for time_t... yes
    checking for convertible type of time_t... LONG
    checking for dev_t... yes
    checking for convertible type of dev_t... ULONG
    checking for mode_t... yes
    checking for convertible type of mode_t... UINT
    checking for rlim_t... yes
    checking for convertible type of rlim_t... ULONG
    checking for off_t... (cached) yes
    checking for convertible type of off_t... LONG
    checking for clockid_t... yes
    checking for convertible type of clockid_t... INT
    checking for prototypes... yes
    checking token paste string... ansi
    checking stringization... #expr
    checking string literal concatenation... yes
    checking for variable length prototypes and stdarg.h... yes
    checking for variable length macro... yes
    checking for CONSTFUNC function attribute... attribute ((const)) x
    checking for PUREFUNC function attribute... attribute ((pure)) x
    checking for NORETURN function attribute... attribute ((noreturn)) x
    checking for DEPRECATED function attribute... attribute ((deprecated)) x
    checking for DEPRECATED_BY function attribute... x
    checking for DEPRECATED_TYPE type attribute... attribute ((deprecated mesg)) x
    checking for NOINLINE function attribute... attribute ((noinline)) x
    checking for ALWAYS_INLINE function attribute... attribute ((always_inline)) x
    checking for WARN_UNUSED_RESULT function attribute... attribute ((warn_unused_result)) x
    checking for MAYBE_UNUSED function attribute... attribute ((unused)) x
    checking for ERRORFUNC function attribute... attribute ((error mesg)) x
    checking for WARNINGFUNC function attribute... attribute ((warning mesg)) x
    checking for WEAK function attribute... attribute ((weak)) x
    checking for FUNC_STDCALL function attribute... x
    checking for FUNC_CDECL function attribute... x
    checking for FUNC_FASTCALL function attribute... x
    checking for FUNC_UNOPTIMIZED function attribute... attribute ((optimize("O0"))) x
    checking for FUNC_MINIMIZED function attribute... attribute ((optimize("-Os","-fomit-frame-pointer"))) x
    checking for function alias... alias
    checking for __atomic builtins... no
    checking for __sync builtins... yes
    checking for __builtin_unreachable... yes
    checking for exported function attribute... attribute ((visibility("default")))
    checking for function name string predefined identifier... func
    checking if enum over int is allowed... yes
    checking whether sys_nerr is declared... yes
    checking whether getenv is declared... yes
    checking for size_t... yes
    checking size of size_t... 8
    checking size of ptrdiff_t... 8
    checking for printf prefix for size_t... z
    checking for printf prefix for ptrdiff_t... t
    checking for struct stat.st_blksize... yes
    checking for struct stat.st_blocks... yes
    checking for struct stat.st_rdev... yes
    checking size of struct stat.st_size... SIZEOF_OFF_T
    checking size of struct stat.st_blocks... SIZEOF_OFF_T
    checking size of struct stat.st_ino... SIZEOF_LONG
    checking for struct stat.st_atim... yes
    checking for struct stat.st_atimespec... no
    checking for struct stat.st_atimensec... no
    checking for struct stat.st_mtim... yes
    checking for struct stat.st_mtimespec... no
    checking for struct stat.st_mtimensec... no
    checking for struct stat.st_ctim... yes
    checking for struct stat.st_ctimespec... no
    checking for struct stat.st_ctimensec... no
    checking for struct stat.st_birthtimespec... no
    checking for struct timeval... yes
    checking size of struct timeval.tv_sec... SIZEOF_TIME_T
    checking for struct timespec... yes
    checking for struct timezone... yes
    checking for clockid_t... (cached) yes
    checking for fd_mask... yes
    checking for int8_t... yes
    checking size of int8_t... 1
    checking for uint8_t... yes
    checking size of uint8_t... 1
    checking for int16_t... yes
    checking size of int16_t... 2
    checking for uint16_t... yes
    checking size of uint16_t... 2
    checking for int32_t... yes
    checking size of int32_t... 4
    checking for uint32_t... yes
    checking size of uint32_t... 4
    checking for int64_t... yes
    checking size of int64_t... 8
    checking for uint64_t... yes
    checking size of uint64_t... 8
    checking for int128_t... no
    checking for uint128_t... no
    checking for intptr_t... yes
    checking size of intptr_t... 8
    checking for uintptr_t... yes
    checking size of uintptr_t... 8
    checking for ssize_t... yes
    checking size of ssize_t... 8
    checking for stack end address... __libc_stack_end
    checking for uid_t in sys/types.h... (cached) yes
    checking type of array argument to getgroups... gid_t
    checking return type of signal handlers... void
    checking for working alloca.h... yes
    checking for alloca... yes
    checking for dynamic size alloca... ok
    checking for working memcmp... yes
    checking for broken erfc of glibc-2.3.6 on IA64... no
    checking for acosh... yes
    checking for cbrt... yes
    checking for crypt... yes
    checking for dup2... yes
    checking for erf... yes
    checking for explicit_bzero... no
    checking for ffs... yes
    checking for finite... yes
    checking for flock... yes
    checking for hypot... yes
    checking for isinf... yes
    checking for isnan... yes
    checking for lgamma_r... yes
    checking for memmove... yes
    checking for nextafter... yes
    checking for setproctitle... no
    checking for strchr... yes
    checking for strerror... yes
    checking for strlcat... no
    checking for strlcpy... no
    checking for strstr... yes
    checking for tgamma... yes
    checking sys/pstat.h usability... no
    checking sys/pstat.h presence... no
    checking for sys/pstat.h... no
    checking for signbit... yes
    checking for broken memmem... no
    checking for pid_t... (cached) yes
    checking vfork.h usability... no
    checking vfork.h presence... no
    checking for vfork.h... no
    checking for fork... yes
    checking for vfork... yes
    checking for working fork... yes
    checking for working vfork... (cached) yes
    checking for __syscall... no
    checking for _longjmp... yes
    checking for arc4random_buf... no
    checking for atan2l... yes
    checking for atan2f... yes
    checking for chroot... yes
    checking for chsize... no
    checking for clock_gettime... no
    checking for cosh... yes
    checking for crypt_r... yes
    checking for daemon... (cached) no
    checking for dirfd... yes
    checking for dl_iterate_phdr... yes
    checking for dlopen... yes
    checking for dladdr... yes
    checking for dup... yes
    checking for dup3... yes
    checking for eaccess... yes
    checking for endgrent... yes
    checking for fchmod... yes
    checking for fchown... yes
    checking for fcntl... yes
    checking for fdatasync... yes
    checking for fgetattrlist... no
    checking for fmod... yes
    checking for fsync... yes
    checking for ftruncate... yes
    checking for ftruncate64... yes
    checking for getattrlist... no
    checking for getcwd... yes
    checking for getgidx... no
    checking for getgrnam... yes
    checking for getgrnam_r... yes
    checking for getgroups... yes
    checking for getpgid... yes
    checking for getpgrp... yes
    checking for getpriority... yes
    checking for getpwnam_r... yes
    checking for getresgid... yes
    checking for getresuid... yes
    checking for getrlimit... yes
    checking for getsid... yes
    checking for gettimeofday... yes
    checking for getuidx... no
    checking for gmtime_r... yes
    checking for initgroups... yes
    checking for ioctl... yes
    checking for isfinite... no
    checking for issetugid... no
    checking for killpg... yes
    checking for lchmod... no
    checking for lchown... yes
    checking for link... yes
    checking for llabs... yes
    checking for lockf... yes
    checking for log2... yes
    checking for lstat... yes
    checking for malloc_usable_size... yes
    checking for malloc_size... no
    checking for mblen... yes
    checking for memalign... yes
    checking for memset_s... no
    checking for writev... yes
    checking for memrchr... yes
    checking for memmem... yes
    checking for mkfifo... yes
    checking for mknod... yes
    checking for mktime... yes
    checking for pipe2... yes
    checking for poll... yes
    checking for posix_fadvise... yes
    checking for posix_memalign... yes
    checking for ppoll... yes
    checking for pread... yes
    checking for qsort_r... yes
    checking for qsort_s... no
    checking for readlink... yes
    checking for round... yes
    checking for sched_getaffinity... yes
    checking for seekdir... yes
    checking for select_large_fdset... no
    checking for sendfile... yes
    checking for setegid... yes
    checking for setenv... yes
    checking for seteuid... yes
    checking for setgid... yes
    checking for setgroups... yes
    checking for setpgid... yes
    checking for setpgrp... yes
    checking for setregid... yes
    checking for setresgid... yes
    checking for setresuid... yes
    checking for setreuid... yes
    checking for setrgid... no
    checking for setrlimit... yes
    checking for setruid... no
    checking for setsid... yes
    checking for setuid... yes
    checking for shutdown... yes
    checking for sigaction... yes
    checking for sigaltstack... yes
    checking for sigprocmask... yes
    checking for sinh... yes
    checking for spawnv... no
    checking for symlink... yes
    checking for syscall... yes
    checking for sysconf... yes
    checking for tanh... yes
    checking for telldir... yes
    checking for timegm... yes
    checking for times... yes
    checking for truncate... yes
    checking for truncate64... yes
    checking for unsetenv... yes
    checking for utimensat... yes
    checking for utimes... yes
    checking for wait4... yes
    checking for waitpid... yes
    checking if getcwd allocates buffer if NULL is given... yes
    checking crypt.h usability... yes
    checking crypt.h presence... yes
    checking for crypt.h... yes
    checking for struct crypt_data.initialized... yes
    checking for __builtin_bswap16... no
    checking for __builtin_bswap32... yes
    checking for __builtin_bswap64... yes
    checking for __builtin_popcount... yes
    checking for __builtin_popcountll... yes
    checking for __builtin_clz... yes
    checking for __builtin_clzl... yes
    checking for __builtin_clzll... yes
    checking for __builtin_ctz... yes
    checking for __builtin_ctzll... yes
    checking for __builtin_constant_p... yes
    checking for __builtin_choose_expr... yes
    checking for __builtin_choose_expr_constant_p... no
    checking for __builtin_types_compatible_p... yes
    checking whether qsort_r is GNU version... yes
    checking whether qsort_r is BSD version... no
    checking whether atan2 handles Inf as C99... yes
    checking whether lgamma_r handles +0.0 and -0.0... yes
    checking for clock_gettime in -lrt... yes
    checking for clock_getres... yes
    checking for unsetenv returns a value... yes
    checking whether struct tm is in sys/time.h or time.h... time.h
    checking for struct tm.tm_zone... yes
    checking for struct tm.tm_gmtoff... yes
    checking for external int daylight... yes
    checking for external timezone... long
    checking for external altzone... no
    checking for timezone... yes
    checking whether timezone requires zero arguments... yes
    checking for negative time_t for gmtime(3)... yes
    checking for localtime(3) overflow correctly... yes
    checking for sig_t... yes
    checking whether right shift preserve sign bit... yes
    checking whether _SC_CLK_TCK is supported... yes
    checking stack growing direction on x86_64... -1
    checking for pthread_kill in -lthr... no
    checking for pthread_kill in -lpthread... yes
    checking for pthread_np.h... no
    checking whether pthread_t is scalar type... yes
    checking for sched_yield... yes
    checking for pthread_attr_setinheritsched... yes
    checking for pthread_attr_get_np... no
    checking for pthread_attr_getstack... yes
    checking for pthread_get_stackaddr_np... no
    checking for pthread_get_stacksize_np... no
    checking for thr_stksegment... no
    checking for pthread_stackseg_np... no
    checking for pthread_getthrds_np... no
    checking for pthread_cond_init... yes
    checking for pthread_condattr_setclock... yes
    checking for pthread_condattr_init... yes
    checking for pthread_sigmask... yes
    checking for pthread_setname_np... yes
    checking for pthread_set_name_np... no
    checking for pthread_getattr_np... yes
    checking for pthread_attr_init... yes
    checking arguments of pthread_setname_np... (pthread_self(), name)
    checking if mcontext_t is a pointer... no
    checking for getcontext... yes
    checking for setcontext... yes
    checking if fork works with pthread... yes
    checking whether ELF binaries are produced... yes
    checking elf.h usability... yes
    checking elf.h presence... yes
    checking for elf.h... yes
    checking elf_abi.h usability... no
    checking elf_abi.h presence... no
    checking for elf_abi.h... no
    checking whether OS depend dynamic link works... yes
    checking whether -Wl,-R. is accepted as LDFLAGS... yes
    checking for backtrace... yes
    checking for broken backtrace... no
    checking valgrind/memcheck.h usability... no
    checking valgrind/memcheck.h presence... no
    checking for valgrind/memcheck.h... no
    checking for strip... strip
    checking whether -fPIE is accepted as CFLAGS... yes
    checking whether -pie is accepted as LDFLAGS... yes
    checking whether wrapper for LD_LIBRARY_PATH is needed... no
    checking whether dtrace USDT is available... no
    checking for __builtin_setjmp... yes with cast ()
    checking for _setjmpex as a macro or function... no
    checking for _setjmp as a macro or function... yes
    checking for sigsetjmp as a macro or function... no
    checking for setjmp type... __builtin_setjmp
    checking for prefix of external symbols... NONE
    checking pthread.h usability... yes
    checking pthread.h presence... yes
    checking for pthread.h... yes
    checking if make is GNU make... yes
    checking for nroff... /usr/bin/nroff
    .ext/include/x86_64-linux/ruby/config.h updated
    configure: ruby library version = 2.4.0
    configure: creating ./config.status
    config.status: creating GNUmakefile
    config.status: creating Makefile
    config.status: creating ruby-2.4.pc


    Configuration summary for ruby version 2.4.0

    • Installation prefix: /usr/local/src/ruby
    • exec prefix: ${prefix}
    • arch: x86_64-linux
    • site arch: ${arch}
    • RUBY_BASE_NAME: ruby
    • ruby lib prefix: ${libdir}/${RUBY_BASE_NAME}
    • site libraries path: ${rubylibprefix}/${sitearch}
    • vendor path: ${rubylibprefix}/vendor_ruby
    • target OS: linux
    • compiler: gcc
    • with pthread: yes
    • enable shared libs: no
    • dynamic library ext: so
    • CFLAGS: ${optflags} ${debugflags} ${warnflags}
    • LDFLAGS: -L. -fstack-protector -rdynamic
      -Wl,-export-dynamic
    • optflags: -O3 -fno-fast-math
    • debugflags: -ggdb3
    • warnflags: -Wall -Wextra -Wno-unused-parameter
      -Wno-parentheses -Wno-long-long
      -Wno-missing-field-initializers
      -Wno-tautological-compare
      -Wno-parentheses-equality
      -Wno-constant-logical-operand -Wno-self-assign
      -Wunused-variable -Wimplicit-int -Wpointer-arith
      -Wwrite-strings -Wdeclaration-after-statement
      -Wimplicit-function-declaration
      -Wdeprecated-declarations
      -Wno-packed-bitfield-compat
    • strip command: strip -S -x
    • install doc: yes
    • man page type: doc

    [root@rdb4 ruby-2.4.0]#


    ======================================================================================================
    3、执行make
    [root@rdb4 ruby-2.4.0]# make
    CC = gcc
    LD = ld
    LDSHARED = gcc -shared
    CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -std=gnu99
    XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE
    CPPFLAGS = -I. -I.ext/include/x86_64-linux -I./include -I. -I./enc/unicode/9.0.0
    DLDFLAGS = -fstack-protector -pie
    SOLIBS =
    gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17)
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    making dummy probes.h
    compiling main.c
    compiling dmydln.c
    compiling miniinit.c
    compiling dmyext.c
    compiling miniprelude.c
    compiling array.c
    compiling bignum.c
    compiling class.c
    compiling compar.c
    compiling compile.c
    compiling complex.c
    compiling cont.c
    compiling debug.c
    compiling dir.c
    compiling dln_find.c
    compiling encoding.c
    compiling enum.c
    compiling enumerator.c
    compiling error.c
    compiling eval.c
    eval.c: In function ‘ruby_setup’:
    eval.c:58: warning: ‘_th’ may be used uninitialized in this function
    eval.c: In function ‘ruby_options’:
    eval.c:101: warning: ‘_th’ may be used uninitialized in this function
    In file included from eval.c:35:
    eval_jump.c: In function ‘rb_exec_end_proc’:
    eval_jump.c:121: warning: ‘_th’ may be used uninitialized in this function
    eval_jump.c:118: warning: ‘th’ may be used uninitialized in this function
    eval.c: In function ‘ruby_cleanup’:
    eval.c:170: warning: ‘_th’ may be used uninitialized in this function
    eval.c: In function ‘setup_exception’:
    eval.c:544: warning: ‘_th’ may be used uninitialized in this function
    eval.c:516: warning: ‘_th’ may be used uninitialized in this function
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling file.c
    compiling gc.c
    gc.c: In function ‘run_finalizer’:
    gc.c:2732: warning: ‘_th’ may be used uninitialized in this function
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling hash.c
    compiling inits.c
    compiling io.c
    compiling iseq.c
    compiling load.c
    load.c: In function ‘rb_load_internal0’:
    load.c:602: warning: ‘_th’ may be used uninitialized in this function
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling marshal.c
    compiling math.c
    compiling node.c
    compiling numeric.c
    compiling object.c
    compiling pack.c
    compiling parse.c
    compiling proc.c
    compiling process.c
    compiling random.c
    compiling range.c
    compiling rational.c
    compiling re.c
    compiling regcomp.c
    compiling regenc.c
    compiling regerror.c
    compiling regexec.c
    compiling regparse.c
    compiling regsyntax.c
    compiling ruby.c
    compiling safe.c
    compiling signal.c
    compiling sprintf.c
    In file included from sprintf.c:1266:
    vsnprintf.c: In function ‘BSD_vfprintf’:
    vsnprintf.c:830: warning: comparison of unsigned expression < 0 is always false
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling st.c
    compiling strftime.c
    strftime.c: In function ‘rb_strftime_with_timespec’:
    strftime.c:433: warning: embedded ‘\0’ in format
    strftime.c:438: warning: embedded ‘\0’ in format
    strftime.c:447: warning: embedded ‘\0’ in format
    strftime.c:452: warning: embedded ‘\0’ in format
    strftime.c:457: warning: embedded ‘\0’ in format
    strftime.c:462: warning: embedded ‘\0’ in format
    strftime.c:484: warning: embedded ‘\0’ in format
    strftime.c:486: warning: embedded ‘\0’ in format
    strftime.c:490: warning: embedded ‘\0’ in format
    strftime.c:496: warning: embedded ‘\0’ in format
    strftime.c:500: warning: embedded ‘\0’ in format
    strftime.c:505: warning: embedded ‘\0’ in format
    strftime.c:509: warning: embedded ‘\0’ in format
    strftime.c:522: warning: embedded ‘\0’ in format
    strftime.c:528: warning: embedded ‘\0’ in format
    strftime.c:531: warning: embedded ‘\0’ in format
    strftime.c:657: warning: embedded ‘\0’ in format
    strftime.c:676: warning: embedded ‘\0’ in format
    strftime.c:685: warning: embedded ‘\0’ in format
    strftime.c:699: warning: embedded ‘\0’ in format
    strftime.c:714: warning: embedded ‘\0’ in format
    strftime.c:719: warning: embedded ‘\0’ in format
    strftime.c:746: warning: embedded ‘\0’ in format
    strftime.c:749: warning: embedded ‘\0’ in format
    strftime.c:755: warning: embedded ‘\0’ in format
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling string.c
    string.c: In function ‘rb_str_enumerate_codepoints’:
    string.c:7815: warning: ‘ary’ may be used uninitialized in this function
    string.c: In function ‘rb_str_enumerate_chars’:
    string.c:7716: warning: ‘ary’ may be used uninitialized in this function
    string.c: In function ‘rb_str_enumerate_lines’:
    string.c:7430: warning: ‘ary’ may be used uninitialized in this function
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling struct.c
    compiling symbol.c
    compiling thread.c
    thread.c: In function ‘exec_recursive’:
    thread.c:4618: warning: ‘_th’ may be used uninitialized in this function
    thread.c:4583: warning: ‘sym’ may be used uninitialized in this function
    thread.c: In function ‘rb_thread_s_handle_interrupt’:
    thread.c:1846: warning: ‘_th’ may be used uninitialized in this function
    thread.c: In function ‘thread_start_func_2’:
    thread.c:583: warning: ‘_th’ may be used uninitialized in this function
    thread.c: In function ‘rb_thread_terminate_all’:
    thread.c:481: warning: ‘_th’ may be used uninitialized in this function
    thread.c: In function ‘rb_thread_fd_select’:
    thread.c:3658: warning: ‘orig_read.fdset’ may be used uninitialized in this function
    thread.c:3658: note: ‘orig_read.fdset’ was declared here
    thread.c:3658: warning: ‘orig_read.maxfd’ may be used uninitialized in this function
    thread.c:3658: note: ‘orig_read.maxfd’ was declared here
    thread.c:3659: warning: ‘orig_write.fdset’ may be used uninitialized in this function
    thread.c:3659: note: ‘orig_write.fdset’ was declared here
    thread.c:3659: warning: ‘orig_write.maxfd’ may be used uninitialized in this function
    thread.c:3659: note: ‘orig_write.maxfd’ was declared here
    thread.c:3660: warning: ‘orig_except.fdset’ may be used uninitialized in this function
    thread.c:3660: note: ‘orig_except.fdset’ was declared here
    thread.c:3660: warning: ‘orig_except.maxfd’ may be used uninitialized in this function
    thread.c:3660: note: ‘orig_except.maxfd’ was declared here
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling time.c
    compiling transcode.c
    compiling util.c
    compiling variable.c
    compiling version.c
    compiling vm.c
    In file included from vm.c:296:
    vm_eval.c: In function ‘eval_string_with_cref’:
    vm_eval.c:1372: warning: ‘_th’ may be used uninitialized in this function
    vm_eval.c: In function ‘rb_eval_cmd’:
    vm_eval.c:1538: warning: ‘safe’ may be used uninitialized in this function
    vm_eval.c:1539: warning: ‘th’ may be used uninitialized in this function
    vm_eval.c:1545: warning: ‘_th’ may be used uninitialized in this function
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling vm_backtrace.c
    vm_backtrace.c: In function ‘rb_debug_inspector_open’:
    vm_backtrace.c:1184: warning: ‘_th’ may be used uninitialized in this function
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling vm_dump.c
    compiling vm_trace.c
    vm_trace.c: In function ‘rb_suppress_tracing’:
    vm_trace.c:405: warning: ‘_th’ may be used uninitialized in this function
    vm_trace.c: In function ‘exec_hooks_protected’:
    vm_trace.c:296: warning: ‘_th’ may be used uninitialized in this function
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling enc/ascii.c
    compiling enc/us_ascii.c
    compiling enc/unicode.c
    compiling enc/utf_8.c
    compiling enc/trans/newline.c
    compiling ./missing/explicit_bzero.c
    compiling ./missing/setproctitle.c
    compiling ./missing/strlcat.c
    compiling ./missing/strlcpy.c
    compiling addr2line.c
    compiling dmyenc.c
    linking miniruby
    generating encdb.h
    encdb.h updated
    ./tool/ifchange "--timestamp=.rbconfig.time" rbconfig.rb rbconfig.tmp
    rbconfig.rb updated
    generating enc.mk
    making srcs under enc
    make[1]: Entering directory /soft/ruby-2.4.0' make[1]: Nothing to be done forsrcs'.
    make[1]: Leaving directory /soft/ruby-2.4.0' generating transdb.h transdb.h updated compiling dln.c compiling localeinit.c creating verconf.h verconf.h updated compiling loadpath.c compiling prelude.c linking static-library libruby-static.a verifying static-library libruby-static.a generating makefile exts.mk configuring -test-/array/resize configuring -test-/bignum configuring -test-/bug-3571 configuring -test-/bug-5832 configuring -test-/bug_reporter configuring -test-/class configuring -test-/debug configuring -test-/dln/empty configuring -test-/exception configuring -test-/fatal configuring -test-/file configuring -test-/float configuring -test-/funcall configuring -test-/gvl/call_without_gvl configuring -test-/hash configuring -test-/integer configuring -test-/iseq_load configuring -test-/iter configuring -test-/load/dot.dot configuring -test-/marshal/compat configuring -test-/marshal/internal_ivar configuring -test-/marshal/usr configuring -test-/memory_status configuring -test-/method configuring -test-/notimplement configuring -test-/num2int configuring -test-/path_to_class configuring -test-/popen_deadlock configuring -test-/postponed_job configuring -test-/printf configuring -test-/proc configuring -test-/rational configuring -test-/recursion configuring -test-/st/foreach configuring -test-/st/numhash configuring -test-/st/update configuring -test-/string configuring -test-/struct configuring -test-/symbol configuring -test-/time configuring -test-/tracepoint configuring -test-/typeddata configuring -test-/vm configuring -test-/wait_for_single_fd configuring bigdecimal configuring cgi/escape configuring continuation configuring coverage configuring date configuring dbm header: db.h library: db configuring digest configuring digest/bubblebabble configuring digest/md5 configuring digest/rmd160 configuring digest/sha1 configuring digest/sha2 configuring etc configuring fcntl configuring fiber configuring fiddle configuring gdbm configuring io/console configuring io/nonblock configuring io/wait configuring json configuring json/generator configuring json/parser configuring mathn/complex configuring mathn/rational configuring nkf configuring objspace configuring openssl configuring pathname configuring psych configuring pty configuring racc/cparse configuring rbconfig/sizeof configuring readline configuring ripper configuring rubyvm configuring sdbm configuring socket configuring stringio configuring strscan configuring syslog configuring zlib make[1]: Entering directory/soft/ruby-2.4.0'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/array/resize' compiling resize.c linking shared-object -test-/array/resize.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/array/resize'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bignum' compiling str2big.c compiling div.c compiling bigzero.c compiling init.c compiling big2str.c compiling intpack.c compiling mul.c linking shared-object -test-/bignum.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bignum'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bug-3571' compiling bug.c linking shared-object -test-/bug_3571.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bug-3571'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bug-5832' compiling bug.c linking shared-object -test-/bug_5832.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bug-5832'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bug_reporter' compiling bug_reporter.c linking shared-object -test-/bug_reporter.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bug_reporter'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/class' compiling class2name.c compiling init.c linking shared-object -test-/class.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/class'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/debug' compiling inspector.c compiling profile_frames.c compiling init.c linking shared-object -test-/debug.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/debug'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/dln/empty' compiling empty.c linking shared-object -test-/dln/empty.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/dln/empty'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/exception' compiling ensured.c compiling enc_raise.c compiling dataerror.c compiling init.c linking shared-object -test-/exception.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/exception'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/fatal' compiling rb_fatal.c linking shared-object -test-/fatal/rb_fatal.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/fatal'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/file' compiling stat.c compiling init.c compiling fs.c linking shared-object -test-/file.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/file'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/float' compiling nextafter.c compiling init.c linking shared-object -test-/float.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/float'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/funcall' compiling passing_block.c linking shared-object -test-/funcall.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/funcall'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/gvl/call_without_gvl' compiling call_without_gvl.c linking shared-object -test-/gvl/call_without_gvl.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/gvl/call_without_gvl'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/hash' compiling delete.c compiling init.c linking shared-object -test-/hash.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/hash'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/integer' compiling core_ext.c compiling init.c compiling my_integer.c linking shared-object -test-/integer.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/integer'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/iseq_load' compiling iseq_load.c linking shared-object -test-/iseq_load.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/iseq_load'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/iter' compiling yield.c compiling break.c compiling init.c linking shared-object -test-/iter.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/iter'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/load/dot.dot' compiling dot.dot.c linking shared-object -test-/load/dot.dot.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/load/dot.dot'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/marshal/compat' compiling usrcompat.c linking shared-object -test-/marshal/compat.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/marshal/compat'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/marshal/internal_ivar' compiling internal_ivar.c linking shared-object -test-/marshal/internal_ivar.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/marshal/internal_ivar'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/marshal/usr' compiling usrmarshal.c linking shared-object -test-/marshal/usr.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/marshal/usr'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/memory_status' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/memory_status'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/method' compiling arity.c compiling init.c linking shared-object -test-/method.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/method'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/notimplement' compiling bug.c linking shared-object -test-/notimplement.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/notimplement'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/num2int' compiling num2int.c linking shared-object -test-/num2int.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/num2int'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/path_to_class' compiling path_to_class.c linking shared-object -test-/path_to_class.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/path_to_class'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/popen_deadlock' compiling infinite_loop_dlsym.c linking shared-object -test-/popen_deadlock/infinite_loop_dlsym.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/popen_deadlock'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/postponed_job' compiling postponed_job.c linking shared-object -test-/postponed_job.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/postponed_job'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/printf' compiling printf.c linking shared-object -test-/printf.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/printf'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/proc' compiling super.c compiling receiver.c compiling init.c linking shared-object -test-/proc.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/proc'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/rational' compiling rat.c linking shared-object -test-/rational.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/rational'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/recursion' compiling recursion.c linking shared-object -test-/recursion.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/recursion'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/st/foreach' compiling foreach.c linking shared-object -test-/st/foreach.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/st/foreach'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/st/numhash' compiling numhash.c linking shared-object -test-/st/numhash.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/st/numhash'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/st/update' compiling update.c linking shared-object -test-/st/update.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/st/update'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/string' compiling modify.c compiling ellipsize.c compiling qsort.c compiling set_len.c compiling cstr.c compiling enc_str_buf_cat.c compiling coderange.c compiling nofree.c compiling init.c compiling enc_associate.c compiling capacity.c compiling normalize.c compiling fstring.c linking shared-object -test-/string.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/string'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/struct' compiling member.c compiling duplicate.c compiling init.c linking shared-object -test-/struct.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/struct'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/symbol' compiling init.c compiling type.c linking shared-object -test-/symbol.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/symbol'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/time' compiling new.c compiling init.c linking shared-object -test-/time.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/time'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/tracepoint' compiling gc_hook.c compiling tracepoint.c linking shared-object -test-/tracepoint.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/tracepoint'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/typeddata' compiling typeddata.c linking shared-object -test-/typeddata.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/typeddata'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/vm' compiling at_exit.c linking shared-object -test-/vm/at_exit.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/vm'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/wait_for_single_fd' compiling wait_for_single_fd.c linking shared-object -test-/wait_for_single_fd.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/wait_for_single_fd'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/bigdecimal' compiling bigdecimal.c linking shared-object bigdecimal.so installing default bigdecimal libraries make[2]: Leaving directory/soft/ruby-2.4.0/ext/bigdecimal'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/cgi/escape' compiling escape.c linking shared-object cgi/escape.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/cgi/escape'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/continuation' compiling continuation.c linking shared-object continuation.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/continuation'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/coverage' compiling coverage.c linking shared-object coverage.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/coverage'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/date' compiling date_core.c compiling date_parse.c compiling date_strftime.c compiling date_strptime.c linking shared-object date_core.so installing default date_core libraries make[2]: Leaving directory/soft/ruby-2.4.0/ext/date'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/dbm' compiling dbm.c linking shared-object dbm.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/dbm'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest' compiling digest.c linking shared-object digest.so installing digest libraries installing default digest libraries make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/bubblebabble' compiling bubblebabble.c linking shared-object digest/bubblebabble.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/bubblebabble'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/md5' compiling md5init.c compiling md5.c linking shared-object digest/md5.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/md5'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/rmd160' compiling rmd160init.c compiling rmd160.c linking shared-object digest/rmd160.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/rmd160'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/sha1' compiling sha1init.c compiling sha1.c linking shared-object digest/sha1.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/sha1'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/sha2' compiling sha2init.c compiling sha2.c linking shared-object digest/sha2.so installing default sha2 libraries make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/sha2'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/etc' generating constant definitions compiling etc.c linking shared-object etc.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/etc'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/fcntl' compiling fcntl.c linking shared-object fcntl.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/fcntl'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/fiber' compiling fiber.c linking shared-object fiber.so make[2]: Leaving directory/soft/ruby-2.4.0/ext/fiber'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/fiddle' compiling closure.c compiling conversions.c compiling fiddle.c compiling function.c compiling handle.c compiling pointer.c make[3]: Entering directory/soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1'
    make 'AR_FLAGS=' 'CC_FOR_BUILD=' 'CFLAGS=-O3 -fno-fast-math -ggdb3 -Wall -fexceptions' 'CXXFLAGS=-O3 -fno-fast-math -ggdb3 ' 'CFLAGS_FOR_BUILD=' 'CFLAGS_FOR_TARGET=' 'INSTALL=/usr/bin/install -c' 'INSTALL_DATA=/usr/bin/install -c -m 644' 'INSTALL_PROGRAM=/usr/bin/install -c' 'INSTALL_SCRIPT=/usr/bin/install -c' 'JC1FLAGS=' 'LDFLAGS=-L. -fstack-protector -rdynamic -Wl,-export-dynamic -L../../.. ' 'LIBCFLAGS=' 'LIBCFLAGS_FOR_TARGET=' 'MAKE=make' 'MAKEINFO=/bin/sh /soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1/missing makeinfo ' 'PICFLAG=' 'PICFLAG_FOR_TARGET=' 'RUNTESTFLAGS=' 'SHELL=/bin/sh' 'exec_prefix=/usr/local' 'infodir=/usr/local/share/info' 'libdir=/usr/local/src/ruby/lib' 'mandir=/usr/local/share/man' 'prefix=/usr/local' 'AR=ar' 'AS=as' 'CC=gcc' 'CXX=g++' 'LD=ld -m elf_x86_64' 'NM=nm' 'RANLIB=ranlib' 'DESTDIR=' all-recursive
    make[4]: Entering directory /soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1' Making all in include make[5]: Entering directory/soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1/include'
    make[5]: Nothing to be done for all'. make[5]: Leaving directory/soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1/include'
    Making all in testsuite
    make[5]: Entering directory /soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1/testsuite' make[5]: Nothing to be done forall'.
    make[5]: Leaving directory /soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1/testsuite' Making all in man make[5]: Entering directory/soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1/man'
    make[5]: Nothing to be done for all'. make[5]: Leaving directory/soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1/man'
    make[5]: Entering directory /soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1' CC src/prep_cif.lo CC src/types.lo CC src/raw_api.lo CC src/java_raw_api.lo CC src/closures.lo CC src/x86/ffi64.lo CPPAS src/x86/unix64.lo CC src/x86/ffi.lo CPPAS src/x86/sysv.lo CCLD libffi_convenience.la CCLD libffi.la make[5]: Leaving directory/soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1'
    make[4]: Leaving directory /soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1' make[3]: Leaving directory/soft/ruby-2.4.0/ext/fiddle/libffi-3.2.1'
    linking shared-object fiddle.so
    installing default fiddle libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/fiddle' make[2]: Entering directory/soft/ruby-2.4.0/ext/gdbm'
    compiling gdbm.c
    linking shared-object gdbm.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/gdbm' make[2]: Entering directory/soft/ruby-2.4.0/ext/io/console'
    compiling console.c
    linking shared-object io/console.so
    installing default console libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/io/console' make[2]: Entering directory/soft/ruby-2.4.0/ext/io/nonblock'
    compiling nonblock.c
    linking shared-object io/nonblock.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/io/nonblock' make[2]: Entering directory/soft/ruby-2.4.0/ext/io/wait'
    compiling wait.c
    linking shared-object io/wait.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/io/wait' make[2]: Entering directory/soft/ruby-2.4.0/ext/json'
    installing default libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/json' make[2]: Entering directory/soft/ruby-2.4.0/ext/json/generator'
    compiling generator.c
    linking shared-object json/ext/generator.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/json/generator' make[2]: Entering directory/soft/ruby-2.4.0/ext/json/parser'
    compiling parser.c
    linking shared-object json/ext/parser.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/json/parser' make[2]: Entering directory/soft/ruby-2.4.0/ext/mathn/complex'
    compiling complex.c
    linking shared-object mathn/complex.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/mathn/complex' make[2]: Entering directory/soft/ruby-2.4.0/ext/mathn/rational'
    compiling rational.c
    linking shared-object mathn/rational.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/mathn/rational' make[2]: Entering directory/soft/ruby-2.4.0/ext/nkf'
    compiling nkf.c
    linking shared-object nkf.so
    installing default nkf libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/nkf' make[2]: Entering directory/soft/ruby-2.4.0/ext/objspace'
    compiling object_tracing.c
    compiling objspace.c
    compiling objspace_dump.c
    linking shared-object objspace.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/objspace' make[2]: Entering directory/soft/ruby-2.4.0/ext/openssl'
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/openssl' make[2]: Entering directory/soft/ruby-2.4.0/ext/pathname'
    compiling pathname.c
    linking shared-object pathname.so
    installing default pathname libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/pathname' make[2]: Entering directory/soft/ruby-2.4.0/ext/psych'
    compiling psych_emitter.c
    compiling psych_to_ruby.c
    compiling psych_yaml_tree.c
    compiling psych.c
    compiling psych_parser.c
    compiling ../.././ext/psych/yaml/writer.c
    compiling ../.././ext/psych/yaml/reader.c
    compiling ../.././ext/psych/yaml/emitter.c
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_document_start’:
    ../.././ext/psych/yaml/emitter.c:595: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:603: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:605: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:617: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:637: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:654: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_document_end’:
    ../.././ext/psych/yaml/emitter.c:699: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_flow_sequence_item’:
    ../.././ext/psych/yaml/emitter.c:734: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:746: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:751: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:759: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_flow_mapping_key’:
    ../.././ext/psych/yaml/emitter.c:783: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:795: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:800: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:808: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:826: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_flow_mapping_value’:
    ../.././ext/psych/yaml/emitter.c:845: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:853: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_block_sequence_item’:
    ../.././ext/psych/yaml/emitter.c:886: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_block_mapping_key’:
    ../.././ext/psych/yaml/emitter.c:930: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_emit_block_mapping_value’:
    ../.././ext/psych/yaml/emitter.c:949: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:955: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_process_anchor’:
    ../.././ext/psych/yaml/emitter.c:1247: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char * const’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_process_tag’:
    ../.././ext/psych/yaml/emitter.c:1277: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:1282: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:223: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_write_single_quoted_scalar’:
    ../.././ext/psych/yaml/emitter.c:1967: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:1786: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:2011: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:1786: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_write_double_quoted_scalar’:
    ../.././ext/psych/yaml/emitter.c:2029: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:1786: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c:2167: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:1786: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_write_block_scalar_hints’:
    ../.././ext/psych/yaml/emitter.c:2196: warning: assignment discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:2205: warning: assignment discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:2209: warning: assignment discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:2219: warning: assignment discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_write_literal_scalar’:
    ../.././ext/psych/yaml/emitter.c:2243: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:1786: note: expected ‘char *’ but argument is of type ‘const char *’
    ../.././ext/psych/yaml/emitter.c: In function ‘yaml_emitter_write_folded_scalar’:
    ../.././ext/psych/yaml/emitter.c:2283: warning: passing argument 2 of ‘yaml_emitter_write_indicator’ discards qualifiers from pointer target type
    ../.././ext/psych/yaml/emitter.c:1786: note: expected ‘char *’ but argument is of type ‘const char *’
    At top level:
    cc1: warning: unrecognized command line option "-Wno-self-assign"
    cc1: warning: unrecognized command line option "-Wno-constant-logical-operand"
    cc1: warning: unrecognized command line option "-Wno-parentheses-equality"
    cc1: warning: unrecognized command line option "-Wno-tautological-compare"
    compiling ../.././ext/psych/yaml/parser.c
    compiling ../.././ext/psych/yaml/api.c
    compiling ../.././ext/psych/yaml/dumper.c
    compiling ../.././ext/psych/yaml/scanner.c
    compiling ../.././ext/psych/yaml/loader.c
    linking shared-object psych.so
    installing default psych libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/psych' make[2]: Entering directory/soft/ruby-2.4.0/ext/pty'
    compiling pty.c
    linking shared-object pty.so
    installing default pty libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/pty' make[2]: Entering directory/soft/ruby-2.4.0/ext/racc/cparse'
    compiling cparse.c
    linking shared-object racc/cparse.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/racc/cparse' make[2]: Entering directory/soft/ruby-2.4.0/ext/rbconfig/sizeof'
    compiling sizes.c
    linking shared-object rbconfig/sizeof.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/rbconfig/sizeof' make[2]: Entering directory/soft/ruby-2.4.0/ext/readline'
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/readline' make[2]: Entering directory/soft/ruby-2.4.0/ext/ripper'
    compiling ripper.c
    linking shared-object ripper.so
    installing default ripper libraries
    checking ../.././parse.y and ../.././ext/ripper/eventids2.c
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/ripper' make[2]: Entering directory/soft/ruby-2.4.0/ext/rubyvm'
    installing default libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/rubyvm' make[2]: Entering directory/soft/ruby-2.4.0/ext/sdbm'
    compiling _sdbm.c
    compiling init.c
    linking shared-object sdbm.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/sdbm' make[2]: Entering directory/soft/ruby-2.4.0/ext/socket'
    compiling init.c
    compiling constants.c
    compiling basicsocket.c
    compiling socket.c
    compiling ipsocket.c
    compiling tcpsocket.c
    compiling tcpserver.c
    compiling sockssocket.c
    compiling udpsocket.c
    compiling unixsocket.c
    compiling unixserver.c
    compiling option.c
    compiling ancdata.c
    compiling raddrinfo.c
    compiling ifaddr.c
    linking shared-object socket.so
    installing default socket libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/socket' make[2]: Entering directory/soft/ruby-2.4.0/ext/stringio'
    compiling stringio.c
    linking shared-object stringio.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/stringio' make[2]: Entering directory/soft/ruby-2.4.0/ext/strscan'
    compiling strscan.c
    linking shared-object strscan.so
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/strscan' make[2]: Entering directory/soft/ruby-2.4.0/ext/syslog'
    compiling syslog.c
    linking shared-object syslog.so
    installing default syslog libraries
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/syslog' make[2]: Entering directory/soft/ruby-2.4.0/ext/zlib'
    make[2]: Leaving directory /soft/ruby-2.4.0/ext/zlib' *** Following extensions failed to configure: ../.././ext/openssl/extconf.rb:0: Failed to configure openssl. It will not be installed. ../.././ext/readline/extconf.rb:62: Neither readline nor libedit was found ../.././ext/zlib/extconf.rb:0: Failed to configure zlib. It will not be installed. *** Fix the problems, then remove these directories and try again if you want. make[2]: Entering directory/soft/ruby-2.4.0'
    linking ruby
    make[2]: Leaving directory /soft/ruby-2.4.0' make[1]: Leaving directory/soft/ruby-2.4.0'
    making enc
    make[1]: Entering directory /soft/ruby-2.4.0' compiling ./enc/encdb.c linking encoding encdb.so compiling ./enc/big5.c linking encoding big5.so compiling ./enc/cp949.c linking encoding cp949.so compiling ./enc/emacs_mule.c linking encoding emacs_mule.so compiling ./enc/euc_jp.c linking encoding euc_jp.so compiling ./enc/euc_kr.c linking encoding euc_kr.so compiling ./enc/euc_tw.c linking encoding euc_tw.so compiling ./enc/gb2312.c linking encoding gb2312.so compiling ./enc/gb18030.c linking encoding gb18030.so compiling ./enc/gbk.c linking encoding gbk.so compiling ./enc/iso_8859_1.c linking encoding iso_8859_1.so compiling ./enc/iso_8859_2.c linking encoding iso_8859_2.so compiling ./enc/iso_8859_3.c linking encoding iso_8859_3.so compiling ./enc/iso_8859_4.c linking encoding iso_8859_4.so compiling ./enc/iso_8859_5.c linking encoding iso_8859_5.so compiling ./enc/iso_8859_6.c linking encoding iso_8859_6.so compiling ./enc/iso_8859_7.c linking encoding iso_8859_7.so compiling ./enc/iso_8859_8.c linking encoding iso_8859_8.so compiling ./enc/iso_8859_9.c linking encoding iso_8859_9.so compiling ./enc/iso_8859_10.c linking encoding iso_8859_10.so compiling ./enc/iso_8859_11.c linking encoding iso_8859_11.so compiling ./enc/iso_8859_13.c linking encoding iso_8859_13.so compiling ./enc/iso_8859_14.c linking encoding iso_8859_14.so compiling ./enc/iso_8859_15.c linking encoding iso_8859_15.so compiling ./enc/iso_8859_16.c linking encoding iso_8859_16.so compiling ./enc/koi8_r.c linking encoding koi8_r.so compiling ./enc/koi8_u.c linking encoding koi8_u.so compiling ./enc/shift_jis.c linking encoding shift_jis.so compiling ./enc/utf_16be.c linking encoding utf_16be.so compiling ./enc/utf_16le.c linking encoding utf_16le.so compiling ./enc/utf_32be.c linking encoding utf_32be.so compiling ./enc/utf_32le.c linking encoding utf_32le.so compiling ./enc/windows_31j.c linking encoding windows_31j.so compiling ./enc/windows_1250.c linking encoding windows_1250.so compiling ./enc/windows_1251.c linking encoding windows_1251.so compiling ./enc/windows_1252.c linking encoding windows_1252.so compiling ./enc/windows_1253.c linking encoding windows_1253.so compiling ./enc/windows_1254.c linking encoding windows_1254.so compiling ./enc/windows_1257.c linking encoding windows_1257.so make[1]: Leaving directory/soft/ruby-2.4.0'
    making trans
    make[1]: Entering directory /soft/ruby-2.4.0' compiling ./enc/trans/transdb.c linking transcoder transdb.so compiling ./enc/trans/big5.c linking transcoder big5.so compiling ./enc/trans/chinese.c linking transcoder chinese.so compiling ./enc/trans/ebcdic.c linking transcoder ebcdic.so compiling ./enc/trans/emoji.c linking transcoder emoji.so compiling ./enc/trans/emoji_iso2022_kddi.c linking transcoder emoji_iso2022_kddi.so compiling ./enc/trans/emoji_sjis_docomo.c linking transcoder emoji_sjis_docomo.so compiling ./enc/trans/emoji_sjis_kddi.c linking transcoder emoji_sjis_kddi.so compiling ./enc/trans/emoji_sjis_softbank.c linking transcoder emoji_sjis_softbank.so compiling ./enc/trans/escape.c linking transcoder escape.so compiling ./enc/trans/gb18030.c linking transcoder gb18030.so compiling ./enc/trans/gbk.c linking transcoder gbk.so compiling ./enc/trans/iso2022.c linking transcoder iso2022.so compiling ./enc/trans/japanese.c linking transcoder japanese.so compiling ./enc/trans/japanese_euc.c linking transcoder japanese_euc.so compiling ./enc/trans/japanese_sjis.c linking transcoder japanese_sjis.so compiling ./enc/trans/korean.c linking transcoder korean.so compiling ./enc/trans/single_byte.c linking transcoder single_byte.so compiling ./enc/trans/utf8_mac.c linking transcoder utf8_mac.so compiling ./enc/trans/utf_16_32.c linking transcoder utf_16_32.so make[1]: Leaving directory/soft/ruby-2.4.0'
    making encs
    make[1]: Entering directory /soft/ruby-2.4.0' make[1]: Nothing to be done forencs'.
    make[1]: Leaving directory `/soft/ruby-2.4.0'
    Generating RDoc documentation
    Parsing sources...
    100% [889/889] vsnprintf.c

    Generating RI format into /soft/ruby-2.4.0/.ext/rdoc...

    Files: 889

    Classes: 1312 ( 556 undocumented)
    Modules: 274 ( 110 undocumented)
    Constants: 2143 ( 589 undocumented)
    Attributes: 1064 ( 248 undocumented)
    Methods: 9916 (2135 undocumented)

    Total: 14709 (3638 undocumented)
    75.27% documented

    Elapsed: 74.7s

    [root@rdb4 ruby-2.4.0]#


    ======================================================================================================
    4、执行make install
    [root@rdb4 ruby-2.4.0]# make install
    CC = gcc
    LD = ld
    LDSHARED = gcc -shared
    CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -std=gnu99
    XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE
    CPPFLAGS = -I. -I.ext/include/x86_64-linux -I./include -I. -I./enc/unicode/9.0.0
    DLDFLAGS = -fstack-protector -pie
    SOLIBS =
    gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17)
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    generating enc.mk
    making srcs under enc
    make[1]: Entering directory /soft/ruby-2.4.0' make[1]: Nothing to be done forsrcs'.
    make[1]: Leaving directory /soft/ruby-2.4.0' generating transdb.h transdb.h unchanged generating makefile exts.mk make[1]: Entering directory/soft/ruby-2.4.0'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/array/resize' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/array/resize'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bignum' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bignum'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bug-3571' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bug-3571'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bug-5832' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bug-5832'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/bug_reporter' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/bug_reporter'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/class' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/class'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/debug' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/debug'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/dln/empty' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/dln/empty'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/exception' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/exception'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/fatal' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/fatal'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/file' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/file'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/float' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/float'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/funcall' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/funcall'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/gvl/call_without_gvl' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/gvl/call_without_gvl'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/hash' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/hash'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/integer' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/integer'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/iseq_load' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/iseq_load'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/iter' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/iter'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/load/dot.dot' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/load/dot.dot'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/marshal/compat' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/marshal/compat'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/marshal/internal_ivar' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/marshal/internal_ivar'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/marshal/usr' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/marshal/usr'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/memory_status' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/memory_status'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/method' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/method'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/notimplement' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/notimplement'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/num2int' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/num2int'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/path_to_class' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/path_to_class'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/popen_deadlock' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/popen_deadlock'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/postponed_job' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/postponed_job'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/printf' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/printf'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/proc' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/proc'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/rational' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/rational'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/recursion' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/recursion'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/st/foreach' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/st/foreach'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/st/numhash' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/st/numhash'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/st/update' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/st/update'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/string' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/string'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/struct' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/struct'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/symbol' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/symbol'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/time' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/time'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/tracepoint' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/tracepoint'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/typeddata' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/typeddata'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/vm' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/vm'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/-test-/wait_for_single_fd' make[2]: Leaving directory/soft/ruby-2.4.0/ext/-test-/wait_for_single_fd'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/bigdecimal' make[2]: Leaving directory/soft/ruby-2.4.0/ext/bigdecimal'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/cgi/escape' make[2]: Leaving directory/soft/ruby-2.4.0/ext/cgi/escape'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/continuation' make[2]: Leaving directory/soft/ruby-2.4.0/ext/continuation'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/coverage' make[2]: Leaving directory/soft/ruby-2.4.0/ext/coverage'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/date' make[2]: Leaving directory/soft/ruby-2.4.0/ext/date'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/dbm' make[2]: Leaving directory/soft/ruby-2.4.0/ext/dbm'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest' make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/bubblebabble' make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/bubblebabble'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/md5' make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/md5'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/rmd160' make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/rmd160'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/sha1' make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/sha1'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/digest/sha2' make[2]: Leaving directory/soft/ruby-2.4.0/ext/digest/sha2'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/etc' make[2]: Leaving directory/soft/ruby-2.4.0/ext/etc'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/fcntl' make[2]: Leaving directory/soft/ruby-2.4.0/ext/fcntl'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/fiber' make[2]: Leaving directory/soft/ruby-2.4.0/ext/fiber'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/fiddle' make[2]: Leaving directory/soft/ruby-2.4.0/ext/fiddle'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/gdbm' make[2]: Leaving directory/soft/ruby-2.4.0/ext/gdbm'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/io/console' make[2]: Leaving directory/soft/ruby-2.4.0/ext/io/console'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/io/nonblock' make[2]: Leaving directory/soft/ruby-2.4.0/ext/io/nonblock'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/io/wait' make[2]: Leaving directory/soft/ruby-2.4.0/ext/io/wait'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/json' make[2]: Leaving directory/soft/ruby-2.4.0/ext/json'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/json/generator' make[2]: Leaving directory/soft/ruby-2.4.0/ext/json/generator'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/json/parser' make[2]: Leaving directory/soft/ruby-2.4.0/ext/json/parser'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/mathn/complex' make[2]: Leaving directory/soft/ruby-2.4.0/ext/mathn/complex'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/mathn/rational' make[2]: Leaving directory/soft/ruby-2.4.0/ext/mathn/rational'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/nkf' make[2]: Leaving directory/soft/ruby-2.4.0/ext/nkf'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/objspace' make[2]: Leaving directory/soft/ruby-2.4.0/ext/objspace'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/openssl' make[2]: Leaving directory/soft/ruby-2.4.0/ext/openssl'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/pathname' make[2]: Leaving directory/soft/ruby-2.4.0/ext/pathname'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/psych' make[2]: Leaving directory/soft/ruby-2.4.0/ext/psych'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/pty' make[2]: Leaving directory/soft/ruby-2.4.0/ext/pty'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/racc/cparse' make[2]: Leaving directory/soft/ruby-2.4.0/ext/racc/cparse'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/rbconfig/sizeof' make[2]: Leaving directory/soft/ruby-2.4.0/ext/rbconfig/sizeof'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/readline' make[2]: Leaving directory/soft/ruby-2.4.0/ext/readline'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/ripper' make[2]: Leaving directory/soft/ruby-2.4.0/ext/ripper'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/rubyvm' make[2]: Leaving directory/soft/ruby-2.4.0/ext/rubyvm'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/sdbm' make[2]: Leaving directory/soft/ruby-2.4.0/ext/sdbm'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/socket' make[2]: Leaving directory/soft/ruby-2.4.0/ext/socket'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/stringio' make[2]: Leaving directory/soft/ruby-2.4.0/ext/stringio'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/strscan' make[2]: Leaving directory/soft/ruby-2.4.0/ext/strscan'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/syslog' make[2]: Leaving directory/soft/ruby-2.4.0/ext/syslog'
    make[2]: Entering directory /soft/ruby-2.4.0/ext/zlib' make[2]: Leaving directory/soft/ruby-2.4.0/ext/zlib'
    *** Following extensions failed to configure:
    ../.././ext/openssl/extconf.rb:0: Failed to configure openssl. It will not be installed.
    ../.././ext/readline/extconf.rb:0: Failed to configure readline. It will not be installed.
    ../.././ext/zlib/extconf.rb:0: Failed to configure zlib. It will not be installed.
    *** Fix the problems, then remove these directories and try again if you want.
    make[2]: Entering directory /soft/ruby-2.4.0' make[2]:ruby' is up to date.
    make[2]: Leaving directory /soft/ruby-2.4.0' make[1]: Leaving directory/soft/ruby-2.4.0'
    making enc
    make[1]: Entering directory /soft/ruby-2.4.0' make[1]: Nothing to be done forenc'.
    make[1]: Leaving directory /soft/ruby-2.4.0' making trans make[1]: Entering directory/soft/ruby-2.4.0'
    make[1]: Nothing to be done for ./enc/trans'. make[1]: Leaving directory/soft/ruby-2.4.0'
    making encs
    make[1]: Entering directory /soft/ruby-2.4.0' make[1]: Nothing to be done forencs'.
    make[1]: Leaving directory `/soft/ruby-2.4.0'
    Generating RDoc documentation

    No newer files.

    Files: 0

    Classes: 0 (0 undocumented)
    Modules: 0 (0 undocumented)
    Constants: 0 (0 undocumented)
    Attributes: 0 (0 undocumented)
    Methods: 0 (0 undocumented)

    Total: 0 (0 undocumented)
    0.00% documented

    Elapsed: 0.0s

    generating x86_64-linux-fake.rb
    x86_64-linux-fake.rb updated
    ./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext -- --disable-gems -r./x86_64-linux-fake ./tool/rbinstall.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="doc" --install=all --rdoc-output=".ext/rdoc"
    installing binary commands: /usr/local/src/ruby/bin
    installing base libraries: /usr/local/src/ruby/lib
    installing arch files: /usr/local/src/ruby/lib/ruby/2.4.0/x86_64-linux
    installing pkgconfig data: /usr/local/src/ruby/lib/pkgconfig
    installing command scripts: /usr/local/src/ruby/bin
    installing library scripts: /usr/local/src/ruby/lib/ruby/2.4.0
    installing common headers: /usr/local/src/ruby/include/ruby-2.4.0
    installing manpages: /usr/local/src/ruby/share/man/man1
    installing extension objects: /usr/local/src/ruby/lib/ruby/2.4.0/x86_64-linux
    installing extension objects: /usr/local/src/ruby/lib/ruby/site_ruby/2.4.0/x86_64-linux
    installing extension objects: /usr/local/src/ruby/lib/ruby/vendor_ruby/2.4.0/x86_64-linux
    installing extension headers: /usr/local/src/ruby/include/ruby-2.4.0/x86_64-linux
    installing extension scripts: /usr/local/src/ruby/lib/ruby/2.4.0
    installing extension scripts: /usr/local/src/ruby/lib/ruby/site_ruby/2.4.0
    installing extension scripts: /usr/local/src/ruby/lib/ruby/vendor_ruby/2.4.0
    installing extension headers: /usr/local/src/ruby/include/ruby-2.4.0/ruby
    installing default gems: /usr/local/src/ruby/lib/ruby/gems/2.4.0 (build_info, cache, doc, extensions, gems, specifications)
    bigdecimal 1.3.0
    io-console 0.4.6
    json 2.0.2
    psych 2.2.2
    rdoc 5.0.0
    installing bundle gems: /usr/local/src/ruby/lib/ruby/gems/2.4.0 (build_info, cache, doc, extensions, gems, specifications)
    power_assert 0.4.1
    test-unit 3.2.3
    net-telnet 0.1.1
    xmlrpc 0.2.1
    minitest 5.10.1
    did_you_mean 1.1.0
    rake 12.0.0
    installing rdoc: /usr/local/src/ruby/share/ri/2.4.0/system
    installing capi-docs: /usr/local/src/ruby/share/doc/ruby
    [root@rdb4 ruby-2.4.0]#
    ======================================================================================================


    ======================================================================================================
    配置环境变量
    需要在root用户和redis的rdb用户配置ruby的环境变量
    [root@rdb4 ruby-2.4.0]# vi ~/.bash_profile
    添加ruby路径:PATH=$PATH:$HOME/bin:/usr/local/src/ruby/bin
    [root@rdb4 ruby-2.4.0]# source ~/.bash_profile
    [root@rdb4 ruby-2.4.0]# which ruby
    /usr/local/src/ruby/bin/ruby
    [root@rdb4 ruby-2.4.0]# ruby --version
    ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
    [root@rdb4 ruby-2.4.0]# which gem
    /usr/local/src/ruby/bin/gem
    [root@rdb4 ruby-2.4.0]# gem --version
    2.6.8
    [root@rdb4 ruby-2.4.0]#

    root用户安装gem
    unzip rubygems-2.6.10.zip
    cd rubygems-2.6.10
    [root@rdb4 rubygems-2.6.10]# ruby setup.rb
    RubyGems 2.6.10 installed
    Parsing documentation for rubygems-2.6.10
    Installing ri documentation for rubygems-2.6.10

    === 2.6.10 / 2017-01-23

    Bug fixes:

    • Fix require calling the wrong gem method when it is overridden.
      Pull request #1822 by Samuel Giddins.

    === 2.6.9 / 2017-01-20

    Bug fixes:

    • Allow initializing versions with empty strings. Pull request #1767 by
      Luis Sagastume.
    • Fix TypeError on 2.4. Pull request #1788 by Nobuyoshi Nakada.
    • Don't output mkmf.log message if compilation didn't fail. Pull request

      1808 by Jeremy Evans.

    • Fixed broken links and overzealous URL encoding in gem server. Pull
      request #1809 by Nicole Orchard.
    • Update vendored Molinillo to 0.5.5. Pull request #1812 by Samuel
      Giddins.
    • RakeBuilder: avoid frozen string issue. Pull request #1819 by Olle
      Jonsson.

    === 2.6.8 / 2016-10-29

    Bug fixes:

    • Improve SSL verification failure message. Pull request #1751
      by Eric Hodel.
    • Ensure to_spec falls back on prerelease specs. Pull request

      1755 by André Arko.

    • Update vendored Molinillo to 0.5.3. Pull request #1763 by
      Samuel Giddins.

    === 2.6.7 / 2016-09-26

    Bug fixes:

    • Install native extensions in the correct location when using the
      --user-install flag. Pull request #1683 by Noah Kantrowitz.
    • When calling Gem.sources, load sources from configuration
      if present, else use the default sources. Pull request #1699
      by Luis Sagastume.
    • Fail gracefully when attempting to redirect without a Location.
      Pull request #1711 by Samuel Giddins.
    • Update vendored Molinillo to 0.5.1. Pull request #1714 by
      Samuel Giddins.

    === 2.6.6 / 2016-06-22

    Bug fixes:

    • Sort installed versions to make sure we install the latest version when
      running gem update --system. As a one-time fix, run
      gem update --system=2.6.6. Pull request #1601 by David Radcliffe.

    === 2.6.5 / 2016-06-21

    Minor enhancements:

    • Support for unified Integer in Ruby 2.4. Pull request #1618
      by SHIBATA Hiroshi.
    • Update vendored Molinillo to 0.5.0 for performance improvements.
      Pull request #1638 by Samuel Giddins.

    Bug fixes:

    • Raise an explicit error if Signer#sign is called with no certs. Pull
      request #1605 by Daniel Berger.
    • Update update_bundled_ca_certificates utility script for directory
      nesting. Pull request #1583 by James Wen.
    • Fix broken symlink support in tar writer (+ fix broken test). Pull
      request #1578 by Cezary Baginski.
    • Remove extension directory before (re-)installing. Pull request #1576
      by Jeremy Hinegardner.
    • Regenerate test CA certificates with appropriate extensions. Pull
      request #1611 by rhenium.
    • Rubygems does not terminate on failed file lock when not superuser. Pull
      request #1582 by Ellen Marie Dash.
    • Fix tar headers with a 101 character name. Pull request #1612 by Paweł
      Tomulik.
    • Add Gem.platform_defaults to allow implementations to override defaults.
      Pull request #1644 by Charles Oliver Nutter.
    • Run Bundler tests on TravisCI. Pull request #1650 by Samuel Giddins.

    === 2.6.4 / 2016-04-26

    Minor enhancements:

    • Use Gem::Util::NULL_DEVICE instead of hard coded strings. Pull request #1588
      by Chris Charabaruk.
    • Use File.symlink on MS Windows if supported. Pull request #1418
      by Nobuyoshi Nakada.

    Bug fixes:

    • Redact uri password from error output when gem fetch fails. Pull request

      1565 by Brian Fletcher.

    • Suppress warnings. Pull request #1594 by Nobuyoshi Nakada.
    • Escape user-supplied content served on web pages by gem server to avoid
      potential XSS vulnerabilities. Samuel Giddins.

    === 2.6.3 / 2016-04-05

    Minor enhancements:

    • Lazily calculate Gem::LoadError exception messages. Pull request #1550
      by Aaron Patterson.
    • New fastly cert. Pull request #1548 by David Radcliffe.
    • Organize and cleanup SSL certs. Pull request #1555 by James Wen.
    • [RubyGems] Make deprecation message for paths= more helpful. Pull
      request #1562 by Samuel Giddins.
    • Show default gems when using "gem list". Pull request #1570 by Luis
      Sagastume.

    Bug fixes:

    • Stub ordering should be consistent regardless of how cache is populated.
      Pull request #1552 by Aaron Patterson.
    • Handle cases when the @@stubs variable contains non-stubs. Pull request

      1558 by Per Lundberg.

    • Fix test on Windows for inconsistent temp path. Pull request #1554 by
      Hiroshi Shirosaki.
    • Fix Gem.find_spec_for_exe picks oldest gem. Pull request #1566 by
      Shinichi Maeshima.
    • [Owner] Fallback to email and userid when owner email is missing. Pull
      request #1569 by Samuel Giddins.
    • [Installer] Handle nil existing executable. Pull request #1561 by Samuel
      Giddins.
    • Allow two digit version numbers in the tests. Pull request #1575 by unak.

    === 2.6.2 / 2016-03-12

    Bug fixes:

    • Fix wrong version of gem activation for bin stub. Pull request #1527 by
      Aaron Patterson.
    • Speed up gem activation failures. Pull request #1539 by Aaron Patterson.
    • Fix platform sorting in the resolver. Pull request #1542 by Samuel E.
      Giddins.
    • Ensure we unlock the monitor even if try_activate throws. Pull request

      1538 by Charles Oliver Nutter.

    === 2.6.1 / 2016-02-28

    Bug fixes:

    • Ensure default_path and home are set for paths. Pull request #1513
      by Aaron Patterson.
    • Restore but deprecate support for Array values on Gem.paths=. Pull
      request #1514 by Aaron Patterson.
    • Fix invalid gem file preventing gem install from working. Pull request

      1499 by Luis Sagastume.

    === 2.6.0 / 2016-02-26

    Minor enhancements:

    • RubyGems now defaults the gem push to the gem's "allowed_push_host"
      metadata setting. Pull request #1486 by Josh Lane.
    • Update bundled Molinillo to 0.4.3. Pull request #1493 by Samuel E. Giddins.
    • Add version option to gem open command. Pull request #1483 by Hrvoje
      Šimić.
    • Feature/add silent flag. Pull request #1455 by Luis Sagastume.
    • Allow specifying gem requirements via env variables. Pull request #1472
      by Samuel E. Giddins.

    Bug fixes:

    • RubyGems now stores gem push credentials under the host you signed-in for.
      Pull request #1485 by Josh Lane.
    • Move coding location to first line. Pull request #1471 by SHIBATA
      Hiroshi.
    • [PathSupport] Handle a regexp path separator. Pull request #1469 by
      Samuel E. Giddins.
    • Clean up the PathSupport object. Pull request #1094 by Aaron Patterson.
    • Join with File::PATH_SEPARATOR in Gem.use_paths. Pull request #1476 by
      Samuel E. Giddins.
    • Handle when the gem home and gem path arent set in the config file. Pull
      request #1478 by Samuel E. Giddins.
    • Terminate TimeoutHandler. Pull request #1479 by Nobuyoshi Nakada.
    • Remove redundant cache. Pull request #1482 by Eileen M. Uchitelle.
    • Freeze Gem::Version@segments instance variable. Pull request #1487 by
      Ben Dean.
    • Gem cleanup is trying to uninstall gems outside GEM_HOME and reporting
      an error after it tries. Pull request #1353 by Luis Sagastume.
    • Avoid duplicated sources. Pull request #1489 by Luis Sagastume.
    • Better description for quiet flag. Pull request #1491 by Luis Sagastume.
    • Raise error if find_by_name returns with nil. Pull request #1494 by
      Zoltán Hegedüs.
    • Find_files only from loaded_gems when using gemdeps. Pull request #1277
      by Michal Papis.

    RubyGems installed the following executables:
    /usr/local/src/ruby/bin/gem

    Ruby Interactive (ri) documentation was installed. ri is kind of like man
    pages for ruby libraries. You may access it like this:
    ri Classname
    ri Classname.class_method
    ri Classname#instance_method
    If you do not wish to install this documentation in the future, use the
    --no-document flag, or set it as the default in your ~/.gemrc file. See
    'gem help env' for details.

    [root@rdb4 rubygems-2.6.10]#


    ======================================================================================================
    [root@rdb4 rubygems-2.6.10]# which gem
    /usr/local/src/ruby/bin/gem
    [root@rdb4 rubygems-2.6.10]# gem --version
    2.6.10
    [root@rdb4 rubygems-2.6.10]#

    root用户安装zlib
    tar -zxf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    执行configure
    ./configure --prefix=/usr/local/src/zlib
    [root@rdb4 zlib-1.2.11]# ./configure --prefix=/usr/local/src/zlib
    Checking for gcc...
    Checking for shared library support...
    Building shared library libz.so.1.2.11 with gcc.
    Checking for size_t... Yes.
    Checking for off64_t... Yes.
    Checking for fseeko... Yes.
    Checking for strerror... Yes.
    Checking for unistd.h... Yes.
    Checking for stdarg.h... Yes.
    Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
    Checking for vsnprintf() in stdio.h... Yes.
    Checking for return value of vsnprintf()... Yes.
    Checking for attribute(visibility) support... Yes.
    [root@rdb4 zlib-1.2.11]#

    执行make
    [root@rdb4 zlib-1.2.11]# make
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o adler32.o adler32.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o crc32.o crc32.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o deflate.o deflate.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o infback.o infback.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inffast.o inffast.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inflate.o inflate.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inftrees.o inftrees.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o trees.o trees.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o zutil.o zutil.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o compress.o compress.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o uncompr.o uncompr.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzclose.o gzclose.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzlib.o gzlib.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzread.o gzread.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzwrite.o gzwrite.c
    ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example example.o -L. libz.a
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/adler32.o adler32.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/crc32.o crc32.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/deflate.o deflate.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/infback.o infback.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inffast.o inffast.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inflate.o inflate.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inftrees.o inftrees.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/trees.o trees.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/zutil.o zutil.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/compress.o compress.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c
    gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c
    gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.11 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc
    rm -f libz.so libz.so.1
    ln -s libz.so.1.2.11 libz.so
    ln -s libz.so.1.2.11 libz.so.1
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o examplesh example.o -L. libz.so.1.2.11
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so.1.2.11
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o example64.o test/example.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example64 example64.o -L. libz.a
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o minigzip64.o test/minigzip.c
    gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a
    [root@rdb4 zlib-1.2.11]#
    ======================================================================================================


    ======================================================================================================
    执行make install
    [root@rdb4 zlib-1.2.11]# make install
    rm -f /usr/local/src/zlib/lib/libz.a
    cp libz.a /usr/local/src/zlib/lib
    chmod 644 /usr/local/src/zlib/lib/libz.a
    cp libz.so.1.2.11 /usr/local/src/zlib/lib
    chmod 755 /usr/local/src/zlib/lib/libz.so.1.2.11
    rm -f /usr/local/src/zlib/share/man/man3/zlib.3
    cp zlib.3 /usr/local/src/zlib/share/man/man3
    chmod 644 /usr/local/src/zlib/share/man/man3/zlib.3
    rm -f /usr/local/src/zlib/lib/pkgconfig/zlib.pc
    cp zlib.pc /usr/local/src/zlib/lib/pkgconfig
    chmod 644 /usr/local/src/zlib/lib/pkgconfig/zlib.pc
    rm -f /usr/local/src/zlib/include/zlib.h /usr/local/src/zlib/include/zconf.h
    cp zlib.h zconf.h /usr/local/src/zlib/include
    chmod 644 /usr/local/src/zlib/include/zlib.h /usr/local/src/zlib/include/zconf.h
    [root@rdb4 zlib-1.2.11]#

    root用户在ruby扩展中安装zlib
    进入ruby源码目录
    cd /soft/ruby-2.4.0/ext/zlib/
    ruby extconf.rb --with-zlib-include=/usr/local/src/zlib/include/ --with-zlib-lib=/usr/local/src/zlib/lib
    [root@rdb4 zlib]# ruby extconf.rb --with-zlib-include=/usr/local/src/zlib/include/ --with-zlib-lib=/usr/local/src/zlib/lib
    checking for deflateReset() in -lz... yes
    checking for zlib.h... yes
    checking for crc32_combine() in zlib.h... yes
    checking for adler32_combine() in zlib.h... yes
    checking for z_crc_t in zlib.h... yes
    creating Makefile
    [root@rdb4 zlib]#

    此时直接执行make和make install均会报错,需要将源码的include文件软连接到/
    错误信息:不能在/include中找到ruby.h文件,执行软连接后就可以了
    make: *** No rule to make target /include/ruby.h', needed byzlib.o'. Stop.

    [root@rdb4 zlib]# ln -s /soft/ruby-2.4.0/include /
    [root@rdb4 zlib]# make
    compiling zlib.c
    linking shared-object zlib.so
    [root@rdb4 zlib]# make install
    /usr/bin/install -c -m 0755 zlib.so /usr/local/src/ruby/lib/ruby/site_ruby/2.4.0/x86_64-linux
    [root@rdb4 zlib]#

    root用户安装redis.gem
    进入soft目录
    gem install -l redis-3.3.3.gem
    [root@rdb4 soft]# gem install -l redis-3.3.3.gem
    Successfully installed redis-3.3.3
    Parsing documentation for redis-3.3.3
    Installing ri documentation for redis-3.3.3
    Done installing documentation for redis after 1 seconds
    1 gem installed
    [root@rdb4 soft]#

    [root@rdb4 soft]# gem list

    *** LOCAL GEMS ***

    bigdecimal (default: 1.3.0)
    did_you_mean (1.1.0)
    io-console (default: 0.4.6)
    json (default: 2.0.2)
    minitest (5.10.1)
    net-telnet (0.1.1)
    power_assert (0.4.1)
    psych (default: 2.2.2)
    rake (12.0.0)
    rdoc (default: 5.0.0)
    redis (3.3.3)
    test-unit (3.2.3)
    xmlrpc (0.2.1)
    [root@rdb4 soft]#

    rdb用户安装redis
    tar -zxf redis-3.2.8.tar.gz
    cd redis-3.2.8
    执行make
    [rdb@rdb4 redis-3.2.8]$ make
    cd src && make all
    make[1]: Entering directory /soft/redis-3.2.8/src' rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html (cd ../deps && make distclean) make[2]: Entering directory/soft/redis-3.2.8/deps'
    (cd hiredis && make clean) > /dev/null || true
    (cd linenoise && make clean) > /dev/null || true
    (cd lua && make clean) > /dev/null || true
    (cd geohash-int && make clean) > /dev/null || true
    (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
    (rm -f .make-)
    make[2]: Leaving directory /soft/redis-3.2.8/deps' (rm -f .make-*) echo STD=-std=c99 -pedantic -DREDIS_STATIC='' >> .make-settings echo WARN=-Wall -W >> .make-settings echo OPT=-O2 >> .make-settings echo MALLOC=jemalloc >> .make-settings echo CFLAGS= >> .make-settings echo LDFLAGS= >> .make-settings echo REDIS_CFLAGS= >> .make-settings echo REDIS_LDFLAGS= >> .make-settings echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -O2 -g -ggdb -I../deps/geohash-int -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings echo PREV_FINAL_LDFLAGS= -g -ggdb -rdynamic >> .make-settings (cd ../deps && make hiredis linenoise lua geohash-int jemalloc) make[2]: Entering directory/soft/redis-3.2.8/deps'
    (cd hiredis && make clean) > /dev/null || true
    (cd linenoise && make clean) > /dev/null || true
    (cd lua && make clean) > /dev/null || true
    (cd geohash-int && make clean) > /dev/null || true
    (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
    (rm -f .make-
    )
    (echo "" > .make-ldflags)
    (echo "" > .make-cflags)
    MAKE hiredis
    cd hiredis && make static
    make[3]: Entering directory /soft/redis-3.2.8/deps/hiredis' cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c ar rcs libhiredis.a net.o hiredis.o sds.o async.o make[3]: Leaving directory/soft/redis-3.2.8/deps/hiredis'
    MAKE linenoise
    cd linenoise && make
    make[3]: Entering directory /soft/redis-3.2.8/deps/linenoise' cc -Wall -Os -g -c linenoise.c make[3]: Leaving directory/soft/redis-3.2.8/deps/linenoise'
    MAKE lua
    cd lua/src && make all CFLAGS="-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' " MYLDFLAGS="" AR="ar rcu"
    make[3]: Entering directory /soft/redis-3.2.8/deps/lua/src' cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lapi.o lapi.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lcode.o lcode.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ldebug.o ldebug.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ldo.o ldo.c ldo.c: In function ‘f_parser’: ldo.c:496: warning: unused variable ‘c’ cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ldump.o ldump.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lfunc.o lfunc.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lgc.o lgc.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o llex.o llex.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lmem.o lmem.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lobject.o lobject.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lopcodes.o lopcodes.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lparser.o lparser.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lstate.o lstate.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lstring.o lstring.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ltable.o ltable.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ltm.o ltm.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lundump.o lundump.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lvm.o lvm.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lzio.o lzio.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o strbuf.o strbuf.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o fpconv.o fpconv.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lauxlib.o lauxlib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lbaselib.o lbaselib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ldblib.o ldblib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o liolib.o liolib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lmathlib.o lmathlib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o loslib.o loslib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o ltablib.o ltablib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lstrlib.o lstrlib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o loadlib.o loadlib.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o linit.o linit.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lua_cjson.o lua_cjson.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lua_struct.o lua_struct.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lua_cmsgpack.o lua_cmsgpack.c cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lua_bit.o lua_bit.c ar rcu liblua.a lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o strbuf.o fpconv.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o lua_cjson.o lua_struct.o lua_cmsgpack.o lua_bit.o # DLL needs all object files ranlib liblua.a cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o lua.o lua.c cc -o lua lua.o liblua.a -lm liblua.a(loslib.o): In functionos_tmpname':
    loslib.c:(.text+0x35): warning: the use of tmpnam' is dangerous, better usemkstemp'
    cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o luac.o luac.c
    cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -DREDIS_STATIC='' -c -o print.o print.c
    cc -o luac luac.o print.o liblua.a -lm
    make[3]: Leaving directory /soft/redis-3.2.8/deps/lua/src' MAKE geohash-int cd geohash-int && make make[3]: Entering directory/soft/redis-3.2.8/deps/geohash-int'
    cc -Wall -O2 -g -c geohash.c
    cc -Wall -O2 -g -c geohash_helper.c
    make[3]: Leaving directory `/soft/redis-3.2.8/deps/geohash-int'
    MAKE jemalloc
    cd jemalloc && ./configure --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS=""
    checking for xsltproc... /usr/bin/xsltproc
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking whether byte ordering is bigendian... no
    checking size of void ... 8
    checking size of int... 4
    checking size of long... 8
    checking size of intmax_t... 8
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking whether pause instruction is compilable... yes
    checking for ar... ar
    checking malloc.h usability... yes
    checking malloc.h presence... yes
    checking for malloc.h... yes
    checking whether malloc_usable_size definition can use const argument... no
    checking whether attribute syntax is compilable... yes
    checking whether compiler supports -fvisibility=hidden... yes
    checking whether compiler supports -Werror... yes
    checking whether tls_model attribute is compilable... yes
    checking whether compiler supports -Werror... yes
    checking whether alloc_size attribute is compilable... yes
    checking whether compiler supports -Werror... yes
    checking whether format(gnu_printf, ...) attribute is compilable... yes
    checking whether compiler supports -Werror... yes
    checking whether format(printf, ...) attribute is compilable... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking for ranlib... ranlib
    checking for ld... /usr/bin/ld
    checking for autoconf... false
    checking for memalign... yes
    checking for valloc... yes
    checking configured backtracing method... N/A
    checking for sbrk... yes
    checking whether utrace(2) is compilable... no
    checking whether valgrind is compilable... no
    checking whether a program using __builtin_ffsl is compilable... yes
    checking LG_PAGE... 12
    checking pthread.h usability... yes
    checking pthread.h presence... yes
    checking for pthread.h... yes
    checking for pthread_create in -lpthread... yes
    checking for library containing clock_gettime... -lrt
    checking for secure_getenv... no
    checking for issetugid... no
    checking for _malloc_thread_cleanup... no
    checking for _pthread_mutex_init_calloc_cb... no
    checking for TLS... yes
    checking whether C11 atomics is compilable... no
    checking whether atomic(9) is compilable... no
    checking whether Darwin OSAtomic
    () is compilable... no
    checking whether madvise(2) is compilable... yes
    checking whether to force 32-bit _sync{add,sub}_and_fetch()... no
    checking whether to force 64-bit _sync{add,sub}_and_fetch()... no
    checking for __builtin_clz... yes
    checking whether Darwin OSSpin*() is compilable... no
    checking whether glibc malloc hook is compilable... yes
    checking whether glibc memalign hook is compilable... yes
    checking whether pthreads adaptive mutexes is compilable... yes
    checking for stdbool.h that conforms to C99... yes
    checking for _Bool... yes
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating jemalloc.pc
    config.status: creating doc/html.xsl
    config.status: creating doc/manpages.xsl
    config.status: creating doc/jemalloc.xml
    config.status: creating include/jemalloc/jemalloc_macros.h
    config.status: creating include/jemalloc/jemalloc_protos.h
    config.status: creating include/jemalloc/jemalloc_typedefs.h
    config.status: creating include/jemalloc/internal/jemalloc_internal.h
    config.status: creating test/test.sh
    config.status: creating test/include/test/jemalloc_test.h
    config.status: creating config.stamp
    config.status: creating bin/jemalloc-config
    config.status: creating bin/jemalloc.sh
    config.status: creating bin/jeprof
    config.status: creating include/jemalloc/jemalloc_defs.h
    config.status: creating include/jemalloc/internal/jemalloc_internal_defs.h
    config.status: creating test/include/test/jemalloc_test_defs.h
    config.status: executing include/jemalloc/internal/private_namespace.h commands
    config.status: executing include/jemalloc/internal/private_unnamespace.h commands
    config.status: executing include/jemalloc/internal/public_symbols.txt commands
    config.status: executing include/jemalloc/internal/public_namespace.h commands
    config.status: executing include/jemalloc/internal/public_unnamespace.h commands
    config.status: executing include/jemalloc/internal/size_classes.h commands
    config.status: executing include/jemalloc/jemalloc_protos_jet.h commands
    config.status: executing include/jemalloc/jemalloc_rename.h commands
    config.status: executing include/jemalloc/jemalloc_mangle.h commands
    config.status: executing include/jemalloc/jemalloc_mangle_jet.h commands
    config.status: executing include/jemalloc/jemalloc.h commands
    ===============================================================================
    jemalloc version : 4.0.3-0-ge9192eacf8935e29fc62fddc2701f7942b1cc02c
    library revision : 2

    CONFIG : --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence 'CFLAGS=-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops ' LDFLAGS=
    CC : gcc
    CFLAGS : -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -fvisibility=hidden
    CPPFLAGS : -D_GNU_SOURCE -D_REENTRANT
    LDFLAGS :
    EXTRA_LDFLAGS :
    LIBS : -lpthread
    TESTLIBS : -lrt
    RPATH_EXTRA :

    XSLTPROC : /usr/bin/xsltproc
    XSLROOT :

    PREFIX : /usr/local
    BINDIR : /usr/local/bin
    DATADIR : /usr/local/share
    INCLUDEDIR : /usr/local/include
    LIBDIR : /usr/local/lib
    MANDIR : /usr/local/share/man

    srcroot :
    abs_srcroot : /soft/redis-3.2.8/deps/jemalloc/
    objroot :
    abs_objroot : /soft/redis-3.2.8/deps/jemalloc/

    JEMALLOC_PREFIX : je_
    JEMALLOC_PRIVATE_NAMESPACE
    : je_
    install_suffix :
    autogen : 0
    cc-silence : 1
    debug : 0
    code-coverage : 0
    stats : 1
    prof : 0
    prof-libunwind : 0
    prof-libgcc : 0
    prof-gcc : 0
    tcache : 1
    fill : 1
    utrace : 0
    valgrind : 0
    xmalloc : 0
    munmap : 0
    lazy_lock : 0
    tls : 1
    cache-oblivious : 1
    ===============================================================================
    cd jemalloc && make CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS="" lib/libjemalloc.a
    make[3]: Entering directory /soft/redis-3.2.8/deps/jemalloc' gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/jemalloc.o src/jemalloc.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/arena.o src/arena.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/atomic.o src/atomic.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/base.o src/base.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/bitmap.o src/bitmap.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk.o src/chunk.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk_dss.o src/chunk_dss.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/chunk_mmap.o src/chunk_mmap.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ckh.o src/ckh.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/ctl.o src/ctl.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/extent.o src/extent.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/hash.o src/hash.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/huge.o src/huge.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mb.o src/mb.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/mutex.o src/mutex.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/pages.o src/pages.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/prof.o src/prof.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/quarantine.o src/quarantine.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/rtree.o src/rtree.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/stats.o src/stats.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tcache.o src/tcache.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/util.o src/util.c gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -c -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -o src/tsd.o src/tsd.c ar crus lib/libjemalloc.a src/jemalloc.o src/arena.o src/atomic.o src/base.o src/bitmap.o src/chunk.o src/chunk_dss.o src/chunk_mmap.o src/ckh.o src/ctl.o src/extent.o src/hash.o src/huge.o src/mb.o src/mutex.o src/pages.o src/prof.o src/quarantine.o src/rtree.o src/stats.o src/tcache.o src/util.o src/tsd.o make[3]: Leaving directory/soft/redis-3.2.8/deps/jemalloc'
    make[2]: Leaving directory `/soft/redis-3.2.8/deps'
    CC adlist.o
    CC quicklist.o
    CC ae.o
    In file included from ae.c:53:
    ae_epoll.c: In function ‘aeApiAddEvent’:
    ae_epoll.c:75: warning: missing initializer
    ae_epoll.c:75: warning: (near initialization for ‘ee.data’)
    ae_epoll.c: In function ‘aeApiDelEvent’:
    ae_epoll.c:92: warning: missing initializer
    ae_epoll.c:92: warning: (near initialization for ‘ee.data’)
    CC anet.o
    anet.c: In function ‘anetSockName’:
    anet.c:640: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
    anet.c:638: note: initialized from here
    anet.c:644: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
    anet.c:642: note: initialized from here
    anet.c: In function ‘anetPeerToString’:
    anet.c:584: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
    anet.c:582: note: initialized from here
    anet.c:588: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
    anet.c:586: note: initialized from here
    anet.c: In function ‘anetTcpAccept’:
    anet.c:555: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
    anet.c:553: note: initialized from here
    anet.c:559: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
    anet.c:557: note: initialized from here
    CC dict.o
    CC server.o
    CC sds.o
    CC zmalloc.o
    CC lzf_c.o
    CC lzf_d.o
    CC pqsort.o
    CC zipmap.o
    CC sha1.o
    CC ziplist.o
    CC release.o
    CC networking.o
    CC util.o
    CC object.o
    CC db.o
    CC replication.o
    CC rdb.o
    CC t_string.o
    CC t_list.o
    CC t_set.o
    CC t_zset.o
    CC t_hash.o
    CC config.o
    CC aof.o
    CC pubsub.o
    CC multi.o
    CC debug.o
    CC sort.o
    CC intset.o
    CC syncio.o
    CC cluster.o
    CC crc16.o
    CC endianconv.o
    CC slowlog.o
    CC scripting.o
    CC bio.o
    CC rio.o
    CC rand.o
    CC memtest.o
    CC crc64.o
    CC bitops.o
    CC sentinel.o
    CC notify.o
    CC setproctitle.o
    CC blocked.o
    CC hyperloglog.o
    CC latency.o
    CC sparkline.o
    CC redis-check-rdb.o
    CC geo.o
    LINK redis-server
    INSTALL redis-sentinel
    CC redis-cli.o
    LINK redis-cli
    CC redis-benchmark.o
    LINK redis-benchmark
    INSTALL redis-check-rdb
    CC redis-check-aof.o
    LINK redis-check-aof

    Hint: It's a good idea to run 'make test' ;)

    make[1]: Leaving directory `/soft/redis-3.2.8/src'
    [rdb@rdb4 redis-3.2.8]$
    ======================================================================================================


    ======================================================================================================
    执行make install PREFIX=/u01/redis/3.2.8,3.2.8的目录可以不用创建,安装时会自动创建
    [rdb@rdb4 redis-3.2.8]$ make install PREFIX=/u01/redis/3.2.8
    cd src && make install
    make[1]: Entering directory `/soft/redis-3.2.8/src'

    Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    

    make[1]: Leaving directory `/soft/redis-3.2.8/src'
    [rdb@rdb4 redis-3.2.8]$

    在rdb用户上配置redis环境变量
    RDB_HOME=/u01/redis/3.2.8
    PATH=$PATH:$HOME/bin:/usr/local/src/ruby/bin:$RDB_HOME/bin

    export PATH RDB_HOME

    创建redis目录
    mkdir -p /u01/redis/3.2.8/conf
    mkdir -p /u01/redis/3.2.8/log
    mkdir -p /u01/redis/3.2.8/data
    mkdir -p /u01/redis/3.2.8/data/16963
    mkdir -p /u01/redis/3.2.8/data/16964

    创建redis配置文件
    从网站https://raw.githubusercontent.com/antirez/redis/3.2.8/redis.conf下载来更改
    更改的参数如下,参考http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20682147&id=5557566
    bind 192.168.102.241
    port 6379
    cluster-config-file nodes-6379.conf
    pidfile /var/run/redis-6379.pid
    dir /data/redis/data/6379
    dbfilename dump-6379.rdb
    appendfilename "appendonly-6379.aof"
    logfile /data/redis/log/redis-6379.log
    loglevel verbose
    ======================================
    cluster-enabled yes
    cluster-node-timeout 3000
    cluster-slave-validity-factor 0
    repl-ping-slave-period 1
    repl-timeout 10
    slave-read-only yes
    slave-serve-stale-data yes
    slave-priority 100
    appendonly yes
    daemonize yes
    protected-mode no
    tcp-backlog 32767
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    no-appendfsync-on-rewrite yes
    cluster-require-full-coverage no

    启动redis
    redis-server redis-6379.conf
    redis-server redis-6380.conf
    通过ps查看redis启动后的进程,可以看到是cluster模式启动的
    [rdb@rdb4 conf]$ ps -ef|grep redis|grep -v grep
    rdb 1486 1 0 09:26 ? 00:00:00 redis-server 192.168.102.244:16963 [cluster]
    rdb 1491 1 0 09:26 ? 00:00:00 redis-server 192.168.102.244:16964 [cluster]

    创建redis集群
    redis-trib.rb create --replicas 1 192.168.102.241:16963 192.168.102.242:16963 192.168.102.243:16963 192.168.102.241:16964 192.168.102.242:16964 192.168.102.243:16964
    他默认会尽量选取不同的机器来作为master和slave,但是实验中证明其还不够智能,尝试过很多机器顺序组合,但是总有一个机器master和slave在同一个机器。
    create表名是创建redis cluster集群
    --replicas表示为集群中每一个主节点指定一个从节点;看有解析redis-trib.rb代码的网页说,如果有多余master节点的slave,一样会进行第二次分配,也就是第一次给每个master分配replicas数目的从节点,然后剩余的在进行第二次分配,直到分配完。有待实验证明
    [rdb@rdb1 16964]$ redis-trib.rb create --replicas 1 192.168.102.241:16963 192.168.102.242:16963 192.168.102.243:16963 192.168.102.241:16964 192.168.102.242:16964 192.168.102.243:16964

    Creating cluster
    Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    192.168.102.241:16963
    192.168.102.242:16963
    192.168.102.243:16963
    Adding replica 192.168.102.242:16964 to 192.168.102.241:16963
    Adding replica 192.168.102.241:16964 to 192.168.102.242:16963
    Adding replica 192.168.102.243:16964 to 192.168.102.243:16963
    M: 03ee8d295608c478d63a4c028e820a3a9829e377 192.168.102.241:16963
    slots:0-5460 (5461 slots) master
    M: 7a337a2d085c8db159ff56a416b1bf3ebed515fc 192.168.102.242:16963
    slots:5461-10922 (5462 slots) master
    M: fb373c45b704ceaf00e1455954089e243d397e23 192.168.102.243:16963
    slots:10923-16383 (5461 slots) master
    S: 33d3fbaffd70a88c7fedb52d1e98403448df6636 192.168.102.241:16964
    replicates 7a337a2d085c8db159ff56a416b1bf3ebed515fc
    S: 2289826fe42a40565f5116f856a0c684e26a0944 192.168.102.242:16964
    replicates 03ee8d295608c478d63a4c028e820a3a9829e377
    S: 3e6c163a8c86ab30a2173f1ae2e693f5a7853c16 192.168.102.243:16964
    replicates fb373c45b704ceaf00e1455954089e243d397e23
    Can I set the above configuration? (type 'yes' to accept): yes《《《《========此处输入是否接受以上的集群分配方式,yes为接受,no为不接受,会*** Aborting...
    Nodes configuration updated
    Assign a different config epoch to each node
    Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join.
    Performing Cluster Check (using node 192.168.102.241:16963)
    M: 03ee8d295608c478d63a4c028e820a3a9829e377 192.168.102.241:16963
    slots:0-5460 (5461 slots) master
    1 additional replica(s)
    M: fb373c45b704ceaf00e1455954089e243d397e23 192.168.102.243:16963
    slots:10923-16383 (5461 slots) master
    1 additional replica(s)
    M: 7a337a2d085c8db159ff56a416b1bf3ebed515fc 192.168.102.242:16963
    slots:5461-10922 (5462 slots) master
    1 additional replica(s)
    S: 2289826fe42a40565f5116f856a0c684e26a0944 192.168.102.242:16964
    slots: (0 slots) slave
    replicates 03ee8d295608c478d63a4c028e820a3a9829e377
    S: 33d3fbaffd70a88c7fedb52d1e98403448df6636 192.168.102.241:16964
    slots: (0 slots) slave
    replicates 7a337a2d085c8db159ff56a416b1bf3ebed515fc
    S: 3e6c163a8c86ab30a2173f1ae2e693f5a7853c16 192.168.102.243:16964
    slots: (0 slots) slave
    replicates fb373c45b704ceaf00e1455954089e243d397e23
    [OK] All nodes agree about slots configuration.
    Check for open slots...
    Check slots coverage...
    [OK] All 16384 slots covered.
    [rdb@rdb1 16964]$

    检查集群
    连接上集群中任意一个几点执行检查。
    [rdb@rdb1 soft]$ redis-trib.rb check 192.168.102.241:16963

    Performing Cluster Check (using node 192.168.102.241:16963)
    M: 03ee8d295608c478d63a4c028e820a3a9829e377 192.168.102.241:16963
    slots:0-5460 (5461 slots) master
    1 additional replica(s)
    M: fb373c45b704ceaf00e1455954089e243d397e23 192.168.102.243:16963
    slots:10923-16383 (5461 slots) master
    1 additional replica(s)
    S: 33d3fbaffd70a88c7fedb52d1e98403448df6636 192.168.102.241:16964
    slots: (0 slots) slave
    replicates 7a337a2d085c8db159ff56a416b1bf3ebed515fc
    S: 3e6c163a8c86ab30a2173f1ae2e693f5a7853c16 192.168.102.243:16964
    slots: (0 slots) slave
    replicates fb373c45b704ceaf00e1455954089e243d397e23
    M: 7a337a2d085c8db159ff56a416b1bf3ebed515fc 192.168.102.242:16963
    slots:5461-10922 (5462 slots) master
    1 additional replica(s)
    S: 2289826fe42a40565f5116f856a0c684e26a0944 192.168.102.242:16964
    slots: (0 slots) slave
    replicates 03ee8d295608c478d63a4c028e820a3a9829e377
    [OK] All nodes agree about slots configuration.
    Check for open slots...
    Check slots coverage...
    [OK] All 16384 slots covered.
    [rdb@rdb1 soft]$

    [rdb@rdb1 soft]$ redis-cli -c -p 16963 -h 192.168.102.241
    192.168.102.241:16963> cluster nodes
    fb373c45b704ceaf00e1455954089e243d397e23 192.168.102.243:16963 master - 0 1487814812689 3 connected 10923-16383
    33d3fbaffd70a88c7fedb52d1e98403448df6636 192.168.102.241:16964 slave 7a337a2d085c8db159ff56a416b1bf3ebed515fc 0 1487814811685 4 connected
    3e6c163a8c86ab30a2173f1ae2e693f5a7853c16 192.168.102.243:16964 slave fb373c45b704ceaf00e1455954089e243d397e23 0 1487814812689 6 connected
    7a337a2d085c8db159ff56a416b1bf3ebed515fc 192.168.102.242:16963 master - 0 1487814812189 2 connected 5461-10922
    2289826fe42a40565f5116f856a0c684e26a0944 192.168.102.242:16964 slave 03ee8d295608c478d63a4c028e820a3a9829e377 0 1487814812189 5 connected
    03ee8d295608c478d63a4c028e820a3a9829e377 192.168.102.241:16963 myself,master - 0 0 1 connected 0-5460
    192.168.102.241:16963>

    192.168.102.241:16963> cluster info
    cluster_state:ok
    cluster_slots_assigned:16384
    cluster_slots_ok:16384
    cluster_slots_pfail:0
    cluster_slots_fail:0
    cluster_known_nodes:6
    cluster_size:3
    cluster_current_epoch:6
    cluster_my_epoch:1
    cluster_stats_messages_sent:10658
    cluster_stats_messages_received:10534
    192.168.102.241:16963>

    相关文章

      网友评论

        本文标题:redis集群3.3.3搭配redis软件3.2.8在cento

        本文链接:https://www.haomeiwen.com/subject/estxgttx.html