CentOS 上修复 GCC 相关安全漏洞的正确做法
一、先判断是否需要“修复”或“升级”
二、标准修复流程(优先)
sudo yum update -y(或 dnf update -y),并建议同时安装/更新基础开发包:sudo yum groupinstall -y "Development Tools"。sudo yum install -y glibc-devel gcc make。gcc --version、g++ --version、strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX。sudo yum install -y centos-release-scl && sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ && scl enable devtoolset-9 bash;验证 gcc --version 显示为 9.x。该方式不影响系统默认 GCC,适合生产与容器场景。三、确需升级 GCC 时的安全做法(源码编译)
sudo yum groupinstall -y "Development Tools" && sudo yum install -y glibc-devel gmp-devel mpfr-devel libmpc-devel。wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz && tar -xzvf gcc-9.1.0.tar.gz && cd gcc-9.1.0。contrib/download_prerequisites。mkdir gcc-build-9.1.0 && cd gcc-build-9.1.0
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j$(nproc)
sudo make install
update-alternatives 管理多版本,或仅在需要时通过绝对路径调用。切勿覆盖 /usr/bin/gcc 与系统 libstdc++。四、验证与回退
gcc --version、g++ --version。strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 确认包含所需版本符号。exit 当前 SCL shell 或关闭终端即可回到系统默认工具链。PATH 中调整优先级回退;必要时使用 update-alternatives --config gcc 选择系统默认版本。五、常见误区与建议