Mam serwer RHEL 6 z gcc w wersji 4.4.7. Chciałem zaktualizować wersję gcc (myślę, że bieżąca to 4.8). Aktualizacja Yum nie działa. Również odpowiedzi SO na podobne pytanie w CentOS nie działają. Postępowałem zgodnie z metodami w zaakceptowanej odpowiedzi, wynikiem jest „Błąd pobierania danych repozytorium do testowania-1.1-devtools-6, repozytorium nie znaleziono”. Nie jestem też pewien, czy powinienem stosować metody CentO.
Czy ktoś zaktualizował gcc na serwerze RHEL 6 x86_64?
Odpowiedzi:
Jak dotąd najłatwiejszą metodą jest skorzystanie z kompilacji binarnej udostępnianej przez repozytorium YUM.
Jedną z takich opcji byłoby użycie repozytorium hop5.in. W szczególności ta strona: gcc - Różne kompilatory (C, C ++, Objective-C, Java, ...) . Zapewniają wersję 4.8.2, która powinna współpracować z CentOS 6.3 lub 6.4. Przed aktualizacją możesz chcieć wykonać aktualizację:Inną opcją byłoby skorzystanie z zestawu narzędzi dla programistów , a konkretnie wersji dołączonej przez Scientific Linux.
Postępując zgodnie z instrukcjami instalacji , zasadniczo wykonasz następujące 2 kroki:
dodaj repozytoria zainstaluj devtoolsetAktualizacja nr 1
Wydaje się, że repozytorium hop5.in YUM zostało usunięte, więc jedynym wyjściem jest skorzystanie z wyżej opisanej metody devtoolset.
Dodatkowe przykłady instalacji przez devtoolset są wyróżnione w GitHub Gist: Instalowanie gcc 4.8 i Linuxbrew na CentOS 6 .
źródło
http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern
. Uwielbiam to, że strona nie ma https. Way to go scilinux. Po pobraniu (katalog tmp lub gdziekolwiek) zaimportuj go za pomocą,rpm --import RPM-GPG-KEY-cern
a następnie zróbyum install.
devtoolset-2-gcc
(przynajmniej dla mnie) zainstalowałem tuzin pakietów i pobrano 35 MB, w porównaniu z 280 pakietami i pobranymi 575 MByum install devtoolset-2
.Kolekcje oprogramowania Red Hat są dostarczane z GCC 4.9, na które możesz spojrzeć przy włączaniu tego kanału.
źródło
Zbudowałem nowsze wersje gcc dla rhel6 dla kilku wersji teraz (od 4.7.x do 5.3.1).
Proces ten jest dość łatwy dzięki kompilacjom gcc Jakuba Jelinka z Redhat znalezionym na koji
Po prostu pobierz najnowsze src rpm dla dowolnej wersji, której potrzebujesz (np. 5.3.1 ).
Zasadniczo zaczynasz od określenia wymagań kompilacji poprzez wydanie
rpm -qpR src.rpm
szukania dowolnych wymagań wersji:Teraz pojawia się żmudna część - każdy pakiet, który ma wersję wyższą niż dostarczona przez yum z twojej dystrybucji, należy pobrać z koji i powtarzać proces rekurencyjnie, aż zostaną spełnione wszystkie wymagania dotyczące zależności.
Oszukuję, btw.
Zwykle przepakowuję rpm, aby zawierał prawidłowe drzewo kompilacji za pomocą narzędzia GNU, aby użyć poprawnie umieszczonych i nazwanych wymagań, więc gmp / mpc / mpfr / isl (cloog nie jest już wymagany) są pobierane i odkładane na właściwą ścieżkę, a nowa (wzdęty) tar jest przebudowywany na nowy src rpm (z niewielkimi zmianami w pliku spec) bez zależności od ich wersji pakietowej (rpm). Ponieważ nie znam nikogo, kto używa ADA, po prostu usuwam fragmenty dotyczące komara z pliku specyfikacji, co dodatkowo upraszcza proces kompilacji, pozostawiając mi tylko binutils, o które trzeba się martwić.
Gcc może budować ze starszymi binutils, więc jeśli się spieszysz, dokonaj dalszej edycji pliku specyfikacji, aby wymagać wersji binutils, która jest już obecna w twoim systemie. Spowoduje to nieco kaleką gcc, ale w większości będzie działać wystarczająco dobrze.
Działa to całkiem dobrze głównie.
AKTUALIZACJA 1
Najprostszym sposobem na otwarcie src rpm jest prawdopodobnie yum, zainstaluj rpm i uzyskaj dostęp do wszystkiego pod ~ / rpmbuild, ale wolę
Masz również możliwość ustawienia prefiksu, aby ta rpm zainstalowała się obok siebie bez przerywania rpm dystrybucji (ale wymaga zmiany nazwy i pewnych modyfikacji wewnętrznych nazw pakietów). Zazwyczaj dodaję moduł środowiska, aby w razie potrzeby ładować i zwalniać ten gcc (podobnie jak działają kolekcje) jako część rpm (więc dodam nową zależność).
Na koniec utwórz drzewo rpmbuild i umieść pliki tam, gdzie powinien iść, i skompiluj:
AKTUALIZACJA 2
Zwykle nie powinno się używać systemu „serwerowego” do programowania - dlatego masz Fedorę, która jest już dostarczana z najnowszym gcc. Mam pewne szczególne wymagania, ale naprawdę powinieneś rozważyć użycie odpowiedniego narzędzia do zadania - rhel / centos do uruchamiania aplikacji produkcyjnych, fedora do tworzenia tych aplikacji itp.
źródło
Cześć, oto co zrobiłem (kompilacja od zera). Bez obrazy dla innej odpowiedzi Jestem pewien, że to działa, ale GCC jest szczególnie ważna dla bezpieczeństwa, więc wolę kompilować z oryginalnego i oficjalnego źródła:
Źródło: http://realtechtalk.com/GCC_5_on_Centos_6_How_To_Install-1965-articles
źródło
możesz wypróbować źródło gcc buid. GCC wymaga MPC, MPFR i GMP jako wymagań wstępnych. W przypadku GCC 4.8 zależność wersji to MPC 0.8 GMP 6.0 MPFR 2.4.2. Załaduj pakiety źródłowe i zainstaluj wszystkie pakiety w / usr / lib Kolejność instalacji to gmp, mpfr, mpc
źródło