非issue,提供一个Ubuntu 20.04升级GCC和GLIBC_2.34的方法大家参考
Michaol opened this issue · comments
20.04的GCC默认9.40,而libc6最高只有GLIBC_2.30,都无法正常编译安装TCP Brutal。
升级方法如下:(root)
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt remove gcc-9 g++-9
apt autoremove
apt-get install gcc-13 g++-13
ln -sf /usr/bin/gcc-13 /usr/bin/gcc
ln -sf /usr/bin/g++-13 /usr/bin/g++
gcc -v
至此GCC应该升到13.1.0了。
(!!!以下需要在focal中使用高版本jammy源,可能会存在一定风险,请先测试后再决定是否需要增加!!!)
升级libc6:(root)
vi /etc/apt/sources.list
增加一个jammy源:deb http://mirrors.aliyun.com/ubuntu/ jammy main
apt-get update
apt install libc6
strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_
至此应该见到最高版本为GLIBC_2.35
之后就可以正常安装TCP Brutal了。AWS的lightsail, $3.5只有512M内存,22.04跑得很累,很容易爆内存,但是20.04就比较舒服了。以上AWS lightsail $3.5刀 Ubuntu 20.04测试通过。补充:内核已经升到6.6.3!
你是及时雨呀,太棒了。
感谢您的补充。
另外我这边测试了下, 只需要添加 ppa 并安装 gcc-13
就能让 brutal 正确编译了, 也就是下面的命令
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt remove gcc-9 g++-9
apt autoremove
apt-get install gcc-13
ln -sf /usr/bin/gcc-13 /usr/bin/gcc
在 Ubuntu 20.04 上添加 jammy 源然后安装软件的操作是比较危险的, 看起来添加 jammy 源和升级 libc6 这两个步骤不是必须的?
感谢您的补充。
另外我这边测试了下, 只需要添加 ppa 并安装
gcc-13
就能让 brutal 正确编译了, 也就是下面的命令add-apt-repository ppa:ubuntu-toolchain-r/test apt-get update apt remove gcc-9 g++-9 apt autoremove apt-get install gcc-13 ln -sf /usr/bin/gcc-13 /usr/bin/gcc
在 Ubuntu 20.04 上添加 jammy 源然后安装软件的操作是比较危险的, 看起来添加 jammy 源和升级 libc6 这两个步骤不是必须的?
嗯,我自己这边试的时候不行,依然出错,提示没有找到GLIBC_2.33/GLIBC_2.34。查了一下20.04默认官方的libc6只有GLIBC_2.30。具体情况可能要根据自己的服务器试试。
有没有debian的教程?
嗯,我自己这边试的时候不行,依然出错,提示没有找到GLIBC_2.33/GLIBC_2.34
你还记得是执行哪个命令时报错需要 GLIBC_2.33/GLIBC_2.34 的吗?
检查了下 gcc-13 里最高只要求到 GLIBC_2.25
41: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getentropy@GLIBC_2.25 (8)
嗯,我自己这边试的时候不行,依然出错,提示没有找到GLIBC_2.33/GLIBC_2.34
你还记得是执行哪个命令时报错需要 GLIBC_2.33/GLIBC_2.34 的吗? 检查了下 gcc-13 里最高只要求到
GLIBC_2.25
41: 0000000000000000 0 FUNC GLOBAL DEFAULT UND getentropy@GLIBC_2.25 (8)
重开了一个实例做测试,只升级到6.6.3,升级了GCC,没有升级libc6。
DKMS make.log for tcp-brutal-1.0.1 for kernel 6.6.3 (x86_64)
Thu Dec 7 14:58:10 UTC 2023
make -C /lib/modules/6.6.3/build M=/var/lib/dkms/tcp-brutal/1.0.1/build modules
make[1]: Entering directory '/usr/src/linux-headers-6.6.3'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: gcc (Debian 12.2.0-14) 12.2.0
You are using: gcc (Ubuntu 13.1.0-8ubuntu1~20.04.2) 13.1.0
CC [M] /var/lib/dkms/tcp-brutal/1.0.1/build/brutal.o
./tools/objtool/objtool: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.33' not found (required by ./tools/objtool/objtool) ./tools/objtool/objtool: /lib/x86_64-linux-gnu/libc.so.6: version
GLIBC_2.34' not found (required by ./tools/objtool/objtool)
make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/tcp-brutal/1.0.1/build/brutal.o] Error 1
make[3]: *** Deleting file '/var/lib/dkms/tcp-brutal/1.0.1/build/brutal.o'
make[2]: *** [/usr/src/linux-headers-6.6.3/Makefile:1913: /var/lib/dkms/tcp-brutal/1.0.1/build] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.6.3'
make: *** [Makefile:13: all] Error 2
不知道是否lightsail的问题,所以还是提醒大家谨慎添加jammy源吧。
有没有debian的教程?
应该跟Ubuntu大同小异吧?我没试过Debian,先查看一下现有版本,方法应该差别不大。
add-apt-repository ppa:ubuntu-toolchain-r/test
大佬,Debian怎么办,用什么源
debian好像是在/etc/apt/sources.list加上deb http://ftp.us.debian.org/debian trixie main 后安装gcc-13就能成功安装了
Is there a tutorial for Debian?
see this #18