Używam CentOS 7.2
Kiedy używam yum groupinstall "Development Tools"
, wersja gcc to 4.8.5, na przykład:
Chciałbym zainstalować gcc 5.3
Jak do tego podejść yum
?
yum
gdziekolwiek jest zasób?
Odpowiedzi:
Aktualizacja:
Często ludzie chcą najnowszej wersji gcc, a devtoolset jest aktualizowany, więc może chcesz devtoolset-N, gdzie N = {4,5,6,7 ...}, sprawdź yum dla najnowszy dostępny w Twoim systemie). Zaktualizowano poniższe cmds dla N = 7.
Przykładem jest pakiet dla gcc-7.2.1 dla devtoolset-7. Najpierw musisz włączyć kolekcje oprogramowania , a następnie jest dostępne w 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
lub . /opt/rh/devtoolset-6/bin/enable
zaktualizowanym linkiem do dokumentacji narzędzi programowych
yum install devtoolset-4-binutils
może być również pomocne w uzyskaniu pełnego zestawu narzędzi GCC.
source scl_source enable devtoolset-4
przełączałem mój obecny gcc na ten zainstalowany przezdevtoolset-4
Aktualizacja: instalowanie najnowszej wersji gcc 9: ( gcc 9.3.0 ) - wydana 12 marca 2020 r . :
Tę samą metodę można zastosować do gcc 10 ( gcc 10.1.0 ) - wydanego 7 maja 2020 r
Pobierz plik: gcc-9.3.0.tar.gz lub gcc-10.1.0.tar.gz
Skompiluj i zainstaluj:
//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
Testowane pod CentOS 7.8.2003 dla gcc 9.3 i gcc 10.1
Przetestowano pod CentOS 8.1.1911 dla gcc 10.1 (kompilacja może zająć więcej czasu)
Wyniki: gcc / g ++ 9.3.0 / 10.1.0
Instalowanie gcc 7.4 (gcc 7.4.0) - wydany 6 grudnia 2018 r . :
Pobierz plik: https://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz
Skompiluj i zainstaluj:
//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
Wynik:
Uwagi:
1. Ta odpowiedź Stack Overflow pomoże zobaczyć, jak zweryfikować pobrany plik źródłowy.
2. Użyj opcji, --prefix
aby zainstalować gcc w innym katalogu niż domyślny. Katalog instalacyjny najwyższego poziomu domyślnie to / usr / local. Przeczytaj o opcjach instalacji gcc
.sig
plik (podpis pgp).
make -j $(nproc)
make && make install
bez --prefix
? Jeśli to zrobić, wszystko jest zainstalowane na /usr/
nie nawet /usr/local
sprawdzić config.log
:Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info ...
Możesz użyć repozytorium centos-sclo-rh-testing, aby zainstalować GCC v7 bez konieczności kompilowania go na zawsze, a także domyślnie włączyć V7 i przełączać się między różnymi wersjami w razie potrzeby.
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
pliku tak, aby miał nowsze symbole.
Najlepszym podejściem do korzystania z yum i aktualizacji devtoolset jest wykorzystanie repozytorium CentOS SCLo RH Testing.
yum install centos-release-scl-rh
yum --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc devtoolset-7-gcc-c++
Dostępnych jest również wiele dodatkowych pakietów, aby zobaczyć je wszystkie
yum --enablerepo=centos-sclo-rh-testing list devtoolset-7*
Możesz użyć tej metody, aby zainstalować dowolną wersję narzędzia deweloperskiego, po prostu zamień 7 na żądaną wersję. devtoolset-6-gcc, devtoolset-5-gcc itp.
Polecenie do zainstalowania GCC i narzędzi programistycznych na serwerze CentOS / RHEL 7
Wpisz następujące polecenie yum jako użytkownik root:
LUB
Jeśli powyższe polecenie nie powiodło się, spróbuj: