Tôi đang sử dụng CentOS 7.2
Khi tôi sử dụng yum groupinstall "Development Tools"
, phiên bản gcc là 4.8.5, như sau:
Tôi muốn cài đặt gcc 5.3
Làm thế nào để tiếp cận điều này với yum
?
yum
tài nguyên ở đâu không?
Câu trả lời:
Cập nhật:
Thường thì mọi người muốn phiên bản gcc mới nhất và devtoolset đang được cập nhật, vì vậy có thể bạn muốn devtoolset-N trong đó N = {4,5,6,7 ...}, hãy kiểm tra mới nhất hiện có trên hệ thống của bạn). Đã cập nhật cmd bên dưới cho N = 7.
Có một gói gcc-7.2.1 cho devtoolset-7 làm ví dụ. Trước tiên, bạn cần bật Bộ sưu tập phần mềm , sau đó nó có sẵn trong devtoolset-7:
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
which gcc
gcc --version
scl enable devtoolset-6 bash
hoặc . /opt/rh/devtoolset-6/bin/enable
liên kết được cập nhật để các phần mềm công cụ tài liệu
yum install devtoolset-4-binutils
có thể hữu ích để có được chuỗi công cụ GCC hoàn chỉnh.
source scl_source enable devtoolset-4
để chuyển đổi gcc hiện tại của mình bằng một gcc được cài đặt bởidevtoolset-4
Cập nhật: Cài đặt phiên bản mới nhất của gcc 9: ( gcc 9.3.0 ) - phát hành ngày 12 tháng 3 năm 2020 :
Phương pháp tương tự có thể được áp dụng cho gcc 10 ( gcc 10.1.0 ) - phát hành ngày 7 tháng 5 năm 2020
Tải xuống tệp: gcc-9.3.0.tar.gz hoặc gcc-10.1.0.tar.gz
Biên dịch và cài đặt:
//required libraries: (some may already have been installed)
dnf install libmpc-devel mpfr-devel gmp-devel
//if dnf install libmpc-devel is not working try:
dnf --enablerepo=PowerTools install libmpc-devel
//install zlib
dnf install zlib-devel*
./configure --with-system-zlib --disable-multilib --enable-languages=c,c++
make -j 8 <== this may take around an hour or more to finish
(depending on your cpu speed)
make install
Đã kiểm tra theo CentOS 7.8.2003 cho gcc 9.3 và gcc 10.1
Đã kiểm tra theo CentOS 8.1.1911 cho gcc 10.1 (có thể mất nhiều thời gian hơn để biên dịch)
Kết quả: gcc / g ++ 9.3.0 / 10.1.0
Cài đặt gcc 7.4 (gcc 7.4.0) - phát hành ngày 6 tháng 12 năm 2018 :
Tải xuống tệp: https://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz
Biên dịch và cài đặt:
//required libraries:
yum install libmpc-devel mpfr-devel gmp-devel
./configure --with-system-zlib --disable-multilib --enable-languages=c,c++
make -j 8 <== this may take around 50 minutes or less to finish with 8 threads
(depending on your cpu speed)
make install
Kết quả:
Ghi chú:
1. Câu trả lời Stack Overflow này sẽ giúp biết cách xác minh tệp nguồn đã tải xuống.
2. Sử dụng tùy chọn --prefix
để cài đặt gcc vào một thư mục khác với thư mục mặc định. Thư mục cài đặt toplevel mặc định là / usr / local. Đọc về các tùy chọn cài đặt gcc
.sig
tệp tương ứng (chữ ký pgp).
make -j $(nproc)
make && make install
mà không có --prefix
? Nếu làm như vậy, tất cả mọi thứ đã được cài đặt vào /usr/
thậm chí không /usr/local
, kiểm tra config.log
:Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info ...
Bạn có thể sử dụng đại diện thử nghiệm centos-sclo-rh để cài đặt GCC v7 mà không cần phải biên dịch mãi mãi, cũng có thể bật V7 theo mặc định và cho phép bạn chuyển đổi giữa các phiên bản khác nhau nếu cần.
sudo yum install -y yum-utils centos-release-scl;
sudo yum -y --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc;
echo "source /opt/rh/devtoolset-7/enable" | sudo tee -a /etc/profile;
source /opt/rh/devtoolset-7/enable;
gcc --version;
/usr/lib64/libstdc++.so
tệp để có các ký hiệu mới hơn.
Cách tốt nhất để sử dụng yum và cập nhật devtoolset của bạn là sử dụng kho lưu trữ Thử nghiệm CentOS SCLo RH.
yum install centos-release-scl-rh
yum --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc devtoolset-7-gcc-c++
Nhiều gói bổ sung cũng có sẵn, để xem tất cả
yum --enablerepo=centos-sclo-rh-testing list devtoolset-7*
Bạn có thể sử dụng phương pháp này để cài đặt bất kỳ phiên bản công cụ phát triển nào, chỉ cần hoán đổi 7 cho phiên bản mong muốn của bạn. devtoolset-6-gcc, devtoolset-5-gcc, v.v.
Lệnh cài đặt GCC và Công cụ phát triển trên máy chủ CentOS / RHEL 7
Nhập lệnh yum sau với tư cách là người dùng root:
HOẶC LÀ
Nếu lệnh trên không thành công, hãy thử: