赞
踩
起源:
要部署redis6.0哨兵环境,但是6.0又需要gcc版本大于4.9.而阿里云的linux系统自带的是4.8.5。不能满足编译需求
公司大部分阿里云服务器节点都是内网形式,没有办法通过yum方式更新gcc
(亦或者我不知道?希望有大佬留言)
遂网上一顿搜索。
有看到通过下载gcc 阿里云服务器升级gcc_阿趟哥的博客-CSDN博客_服务器gcc升级
但是这种二进制方式,操作不当很容易出现各种问题。
(这类方式我自己在虚拟机上也实验过,特别浪费时间,适合摸鱼,一装一下午没了。)
其实还有一种更为简单、省时的办法,使用rpm离线包安装。遂分享出来,方便大家处理这个问题。
gcc9.3rpm离线安装包-Linux文档类资源-CSDN文库
下面是操作流程:
- 将压缩包下载后上传到目标节点。
- 解压
- tar xvf gcc9.3rpm.tar.gz
- cd gcc
- rpm -ivh *.rpm --nodeps --force
- 输出内容如下:
- warning: audit-2.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
- warning: devtoolset-9-binutils-2.32-16.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f2ee9d55: NOKEY
- Preparing... ################################# [100%]
- Updating / installing...
- 1:libsepol-2.5-10.el7 ################################# [ 3%]
- 2:libselinux-2.5-15.el7 ################################# [ 5%]
- 3:audit-libs-2.8.5-4.el7 ################################# [ 8%]
- 4:libsemanage-2.5-14.el7 ################################# [ 10%]
- 5:libquadmath-4.8.5-44.el7 ################################# [ 13%]
- 6:libgfortran5-8.3.1-2.1.1.el7 ################################# [ 15%]
- 7:libsemanage-python-2.5-14.el7 ################################# [ 18%]
- 8:audit-libs-python-2.8.5-4.el7 ################################# [ 21%]
- 9:libselinux-python-2.5-15.el7 ################################# [ 23%]
- 10:libselinux-utils-2.5-15.el7 ################################# [ 26%]
- 11:policycoreutils-2.5-34.el7 ################################# [ 28%]
- 12:setools-libs-3.3.8-4.el7 ################################# [ 31%]
- 13:scl-utils-20130529-19.el7 ################################# [ 33%]
- 14:python-IPy-0.75-6.el7 ################################# [ 36%]
- 15:libicu-50.2-4.el7_7 ################################# [ 38%]
- 16:boost-regex-1.53.0-28.el7 ################################# [ 41%]
- 17:libcgroup-0.41-21.el7 ################################# [ 44%]
- 18:ctags-5.8-13.el7 ################################# [ 46%]
- 19:source-highlight-3.1.6-6.el7 ################################# [ 49%]
- 20:checkpolicy-2.5-8.el7 ################################# [ 51%]
- 21:policycoreutils-python-2.5-34.el7################################# [ 54%]
- 22:devtoolset-9-runtime-9.1-0.el7 ################################# [ 56%]
- 23:devtoolset-9-binutils-2.32-16.el7################################# [ 59%]
- 24:devtoolset-9-elfutils-libelf-0.17################################# [ 62%]
- 25:devtoolset-9-elfutils-libs-0.176-################################# [ 64%]
- 26:devtoolset-9-elfutils-0.176-6.el7################################# [ 67%]
- 27:devtoolset-9-dwz-0.12-1.1.el7 ################################# [ 69%]
- 28:devtoolset-9-gdb-8.3-3.el7 ################################# [ 72%]
- 29:devtoolset-9-libstdc++-devel-9.3.################################# [ 74%]
- 30:devtoolset-9-ltrace-0.7.91-2.el7 ################################# [ 77%]
- 31:devtoolset-9-make-1:4.2.1-2.el7 ################################# [ 79%]
- 32:devtoolset-9-memstomp-0.1.5-5.el7################################# [ 82%]
- 33:devtoolset-9-strace-5.1-7.el7 ################################# [ 85%]
- 34:audit-2.8.5-4.el7 ################################# [ 87%]
- 35:devtoolset-9-gcc-9.3.1-2.el7 ################################# [ 90%]
- 36:devtoolset-9-gcc-c++-9.3.1-2.el7 ################################# [ 92%]
- 37:devtoolset-9-libquadmath-devel-9.################################# [ 95%]
- 38:devtoolset-9-gcc-gfortran-9.3.1-2################################# [ 97%]
- 39:devtoolset-9-toolchain-9.1-0.el7 ################################# [100%]
-
- gcc -version
- #此时查看版本还会是旧版本。
-
- scl enable devtoolset-9 bash
- #启用新安装的9版本
-
- gcc -v #再次查询,已经是新版本了。
-
- Using built-in specs.
- COLLECT_GCC=gcc
- COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
- Target: x86_64-redhat-linux
- 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
- Thread model: posix
- gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)
-
永久生效
- echo "source /opt/rh/devtoolset-9/enable" >> /etc/bashrc
- source /etc/bashrc
编译redis6.0
- tar xvf redis-6.0.0.tar.gz -C /usr/local/
- mv redis-6.0.0/ redis6
- cd redis6
- make install PREFIX=/usr/local/redis6
-
-
- #部分输出内容:
- cd src && make all
- make[1]: Entering directory '/usr/local/redis6/src'
- CC Makefile.dep
- 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
- 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
- (cd ../deps && make distclean)
- ..
- ....
- .....
- ......
-
- Hint: It's a good idea to run 'make test' ;)
- make[1]: Leaving directory '/usr/local/redis6/src'
-
-
-
余下的就是修改配置等操作了。这里不表。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。