当前位置:   article > 正文

内网节点编译redis6.0之升级GCC版本至9.3_redis 6.0对gcc版本要求

redis 6.0对gcc版本要求

起源:

要部署redis6.0哨兵环境,但是6.0又需要gcc版本大于4.9.而阿里云的linux系统自带的是4.8.5。不能满足编译需求

公司大部分阿里云服务器节点都是内网形式,没有办法通过yum方式更新gcc

(亦或者我不知道?希望有大佬留言)

遂网上一顿搜索。

有看到通过下载gcc 阿里云服务器升级gcc_阿趟哥的博客-CSDN博客_服务器gcc升级

但是这种二进制方式,操作不当很容易出现各种问题。

(这类方式我自己在虚拟机上也实验过,特别浪费时间,适合摸鱼,一装一下午没了。)

其实还有一种更为简单、省时的办法,使用rpm离线包安装。遂分享出来,方便大家处理这个问题。

gcc9.3rpm离线安装包-Linux文档类资源-CSDN文库

下面是操作流程:

  1. 将压缩包下载后上传到目标节点。
  2. 解压
  3. tar xvf gcc9.3rpm.tar.gz
  4. cd gcc
  5. rpm -ivh *.rpm --nodeps --force
  6. 输出内容如下:
  7. warning: audit-2.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
  8. warning: devtoolset-9-binutils-2.32-16.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
  9. Preparing... ################################# [100%]
  10. Updating / installing...
  11. 1:libsepol-2.5-10.el7 ################################# [ 3%]
  12. 2:libselinux-2.5-15.el7 ################################# [ 5%]
  13. 3:audit-libs-2.8.5-4.el7 ################################# [ 8%]
  14. 4:libsemanage-2.5-14.el7 ################################# [ 10%]
  15. 5:libquadmath-4.8.5-44.el7 ################################# [ 13%]
  16. 6:libgfortran5-8.3.1-2.1.1.el7 ################################# [ 15%]
  17. 7:libsemanage-python-2.5-14.el7 ################################# [ 18%]
  18. 8:audit-libs-python-2.8.5-4.el7 ################################# [ 21%]
  19. 9:libselinux-python-2.5-15.el7 ################################# [ 23%]
  20. 10:libselinux-utils-2.5-15.el7 ################################# [ 26%]
  21. 11:policycoreutils-2.5-34.el7 ################################# [ 28%]
  22. 12:setools-libs-3.3.8-4.el7 ################################# [ 31%]
  23. 13:scl-utils-20130529-19.el7 ################################# [ 33%]
  24. 14:python-IPy-0.75-6.el7 ################################# [ 36%]
  25. 15:libicu-50.2-4.el7_7 ################################# [ 38%]
  26. 16:boost-regex-1.53.0-28.el7 ################################# [ 41%]
  27. 17:libcgroup-0.41-21.el7 ################################# [ 44%]
  28. 18:ctags-5.8-13.el7 ################################# [ 46%]
  29. 19:source-highlight-3.1.6-6.el7 ################################# [ 49%]
  30. 20:checkpolicy-2.5-8.el7 ################################# [ 51%]
  31. 21:policycoreutils-python-2.5-34.el7################################# [ 54%]
  32. 22:devtoolset-9-runtime-9.1-0.el7 ################################# [ 56%]
  33. 23:devtoolset-9-binutils-2.32-16.el7################################# [ 59%]
  34. 24:devtoolset-9-elfutils-libelf-0.17################################# [ 62%]
  35. 25:devtoolset-9-elfutils-libs-0.176-################################# [ 64%]
  36. 26:devtoolset-9-elfutils-0.176-6.el7################################# [ 67%]
  37. 27:devtoolset-9-dwz-0.12-1.1.el7 ################################# [ 69%]
  38. 28:devtoolset-9-gdb-8.3-3.el7 ################################# [ 72%]
  39. 29:devtoolset-9-libstdc++-devel-9.3.################################# [ 74%]
  40. 30:devtoolset-9-ltrace-0.7.91-2.el7 ################################# [ 77%]
  41. 31:devtoolset-9-make-1:4.2.1-2.el7 ################################# [ 79%]
  42. 32:devtoolset-9-memstomp-0.1.5-5.el7################################# [ 82%]
  43. 33:devtoolset-9-strace-5.1-7.el7 ################################# [ 85%]
  44. 34:audit-2.8.5-4.el7 ################################# [ 87%]
  45. 35:devtoolset-9-gcc-9.3.1-2.el7 ################################# [ 90%]
  46. 36:devtoolset-9-gcc-c++-9.3.1-2.el7 ################################# [ 92%]
  47. 37:devtoolset-9-libquadmath-devel-9.################################# [ 95%]
  48. 38:devtoolset-9-gcc-gfortran-9.3.1-2################################# [ 97%]
  49. 39:devtoolset-9-toolchain-9.1-0.el7 ################################# [100%]
  50. gcc -version
  51. #此时查看版本还会是旧版本。
  52. scl enable devtoolset-9 bash
  53. #启用新安装的9版本
  54. gcc -v #再次查询,已经是新版本了。
  55. Using built-in specs.
  56. COLLECT_GCC=gcc
  57. COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
  58. Target: x86_64-redhat-linux
  59. Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-9/root/usr --mandir=/opt/rh/devtoolset-9/root/usr/share/man --infodir=/opt/rh/devtoolset-9/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-9.3.1-20200408/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
  60. Thread model: posix
  61. gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)

永久生效

  1. echo "source /opt/rh/devtoolset-9/enable" >> /etc/bashrc
  2. source /etc/bashrc

编译redis6.0

  1. tar xvf redis-6.0.0.tar.gz -C /usr/local/
  2. mv redis-6.0.0/ redis6
  3. cd redis6
  4. make install PREFIX=/usr/local/redis6
  5. #部分输出内容:
  6. cd src && make all
  7. make[1]: Entering directory '/usr/local/redis6/src'
  8. CC Makefile.dep
  9. rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
  10. rm -f adlist.d quicklist.d ae.d anet.d dict.d server.d sds.d zmalloc.d lzf_c.d lzf_d.d pqsort.d zipmap.d sha1.d ziplist.d release.d networking.d util.d object.d db.d replication.d rdb.d t_string.d t_list.d t_set.d t_zset.d t_hash.d config.d aof.d pubsub.d multi.d debug.d sort.d intset.d syncio.d cluster.d crc16.d endianconv.d slowlog.d scripting.d bio.d rio.d rand.d memtest.d crcspeed.d crc64.d bitops.d sentinel.d notify.d setproctitle.d blocked.d hyperloglog.d latency.d sparkline.d redis-check-rdb.d redis-check-aof.d geo.d lazyfree.d module.d evict.d expire.d geohash.d geohash_helper.d childinfo.d defrag.d siphash.d rax.d t_stream.d listpack.d localtime.d lolwut.d lolwut5.d lolwut6.d acl.d gopher.d tracking.d connection.d tls.d sha256.d timeout.d anet.d adlist.d dict.d redis-cli.d zmalloc.d release.d ae.d crcspeed.d crc64.d siphash.d crc16.d ae.d anet.d redis-benchmark.d adlist.d dict.d zmalloc.d siphash.d
  11. (cd ../deps && make distclean)
  12. ..
  13. ....
  14. .....
  15. ......
  16. Hint: It's a good idea to run 'make test' ;)
  17. make[1]: Leaving directory '/usr/local/redis6/src'

余下的就是修改配置等操作了。这里不表。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/331918?site
推荐阅读
相关标签
  

闽ICP备14008679号