Trước khi cập nhật gcc, bạn cần xác định phiên bản gcc mong muốn và tham khảo bảng tương thích C++ từ trang chủ GCC: https://gcc.gnu.org/projects/cxx-status.html.
Trang chủ GCC: https://gcc.gnu.org.
Địa chỉ tải nguồn gcc: https://ftp.gnu.org/gnu/gcc/.
Môi trường thí nghiệm
CPU: 4 lõi xử lý, RAM: 8GB, Hệ điều hành: CentOS 7.9.2009.
Đã cấu hình nguồn yum từ Aliyun và nguồn epel từ Aliyun, tắt firewall và SELinux.
Cập nhật bằng yum (được khuyên dùng)
Do CentOS 7 đã停止维护 từ ngày 30/6/2024 nên không thể truy cập nguồn phần mềm chính thức (mirrorlist.centos.org). Bạn cần chuyển sang sử dụng nguồn镱像 trong nước như Aliyun hoặc Tsinghua.
Ở đây chúng ta sẽ sử dụng kho yum SCL từ Aliyun.
[root@localhost ~]# cd /etc/yum.repos.d/
# Nếu có file CentOS-SCLo-scl.repo,备份 lại để phòng trường hợp cần khôi phục
[root@localhost yum.repos.d]# mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak 2>/dev/null
[root@localhost yum.repos.d]# mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak 2>/dev/null
# Tạo file yum源 mới hướng đến kho SCL của Aliyun
[root@localhost yum.repos.d]# vim CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
[root@localhost yum.repos.d]# vim CentOS-SCLo-scl-rh.repo
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
# Tải và thêm khóa GPG
[root@localhost yum.repos.d]# curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-SCLo
[root@localhost yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
# Làm mới và tải lại cache yum
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecacheTruy cập https://mirrors.aliyun.com/centos/7/sclo/x86_64/ để xem các phiên bản gcc được hỗ trợ, từ devtoolset-7 đến devtoolset-11.
# Cài đặt gcc và gcc-c++ phiên bản devtoolset-11
[root@localhost yum.repos.d]# yum -y install devtoolset-11-gcc devtoolset-11-gcc-c++Phiên bản gcc và gcc-c++ chưa được kích hoạt mặc định. Để kiểm tra phiên bản mới:
[root@localhost yum.repos.d]# scl enable devtoolset-11 bash
[root@localhost yum.repos.d]# gcc --version
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
[root@localhost yum.repos.d]# g++ --version
g++ (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)Kích hoạt lâu dài
[root@localhost yum.repos.d]# echo "source /opt/rh/devtoolset-11/enable" >> /etc/profileCập nhật từ nguồn mã nguồn
Nếu muốn cài đặt gcc phiên bản 11.3.0 trở lên, bạn cần compila từ nguồn. Trước đó, hãy cài đặt gcc phiên bản cao hơn thông qua yum để đảm bảo môi trường compila được hỗ trợ.
Bước 1: Tải và cài đặt các gói phụ thuộc
[root@localhost ~]# yum -y groupinstall "Development Tools"Bước 2: Compila và cài đặt gcc
[root@localhost ~]# tar xvf gcc-15.2.0.tar.xz
[root@localhost ~]# cd gcc-15.2.0
# Tách các gói phụ thuộc và đặt tên thư mục phù hợp
[root@localhost gcc-15.2.0]# tar xvf gmp-6.3.0.tar.xz
[root@localhost gcc-15.2.0]# mv gmp-6.3.0 gmp
[root@localhost gcc-15.2.0]# tar xvf mpfr-4.2.2.tar.xz
[root@localhost gcc-15.2.0]# mv mpfr-4.2.2 mpfr
# ... các bước tương tự cho các gói phụ thuộc khácBước 3: Cấu hình biến môi trường
[root@localhost ~]# echo "export PATH=/usr/local/gcc-15.2.0/bin${PATH:+:${PATH}}" >> /etc/profile
[root@localhost ~]# echo "export MANPATH=/usr/local/gcc-15.2.0/share/man${MANPATH:+:${MANPATH}}" >> /etc/profile
[root@localhost ~]# echo "export INFOPATH=/usr/local/gcc-15.2.0/share/info${INFOPATH:+:${INFOPATH}}" >> /etc/profile
[root@localhost ~]# echo "export LD_LIBRARY_PATH=/usr/local/gcc-15.2.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" >> /etc/profile
[root@localhost ~]# echo "export PKG_CONFIG_PATH=/usr/local/gcc-15.2.0/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}" >> /etc/profile
[root@localhost ~]# source /etc/profilePhương pháp compila từ nguồn này đã được kiểm chứng với phiên bản gcc-11.5.0 để cài đặt Ruby 4.0.1.