Próbowałem wielu rozwiązań, aby zainstalować aktualizację mojego kompilatora gcc na serwerze debian. Żaden z nich nie działał. Potrzebuję aktualizacji kompilatora, aby korzystać z nowych funkcji c ++ 11, ponieważ zapewnia to stabilną bibliotekę ABI libcxx11 i stabilną obsługę C ++ 11 (patrz tutaj ). W szczególności pobieranie wersji `GLIBCXX_3.4.21 ', która nie jest zawarta w moim obecnym kompilatorze gcc w wersji 4.9.2 (Debian 4.9.2-10).
Pomocne będą niektóre wskaźniki do rozwiązania. Z góry dziękuję.
Niektóre linki do forum związane z moim problemem, który już próbowałem:
1 2 3 (nie do końca spokrewnione rozwiązanie jest dla Ubuntu, ale nie mogłem znaleźć gcc-5 na serwerze ftp Debiana)
testing
, ale prawdopodobnie nie jest to dobry pomysł na serwerze (w zależności od tego, co rozumiesz przez serwer). Zmiana z gcc 4.9 na gcc 5 wymagała przejścia z biblioteki, więc czeka cię świat bólu, jeśli spróbujesz to zrobić sam!testing
(używanych samodzielnie): pakiety są czasami tymczasowo usuwane (więc konfiguracja, którą właśnie sprawdziłeś w testowej maszynie wirtualnej, może nie być już łatwo dostępna) , a poprawki zabezpieczeń mogą być opóźnione (czasami przez długi czas, jeślitesting
przechodzi duże przejście do biblioteki, chociaż istniejątesting-security
takie przypadki).Odpowiedzi:
Potrzebowałem GCC 5+ zainstalowanego na Debianie Jessie, a ponieważ jest dostępny do testowania Debiana (przynajmniej na 16 czerwca), możesz użyć apt-Pinning do zainstalowania dostępnych pakietów (patrz https://wiki.debian.org/AptPreferences ) .
Aby zainstalować GCC 5+ z testowania Debiana Jessie przy użyciu apt-pinning:
Dodaj repozytorium testowe Debiana do swoich źródeł apt, tworząc plik w katalogu
/etc/apt/sources.list.d
zawierającym liniędeb http://ftp.us.debian.org/debian testing main contrib non-free
Poinstruuj debiana, aby używał źródeł testowych w niektórych pakietach, tworząc plik
/etc/apt/preferences.d
zawierający następujące elementy:Zaktualizuj bazę danych apt:
sudo apt-get update
Zainstaluj gcc z testowania:
sudo apt-get install -t testing gcc
Zauważ, że używając polecenia
-t testing
, powiedz apt-get, aby zainstalował gcc ze źródeł testowych skonfigurowanych wcześniej.Zdecydowanie sugeruję wyczyścić każdą kompilację i ponownie skompilować dowolną zależność przed ponowną kompilacją źródeł.
Baw się dobrze!
źródło
pip
) , ale myślę, że ta procedura jest najmniej inwazyjna, ponieważapt
śledziłaby, które pakiety zależą od GCC i instaluje kompatybilne wersje w razie potrzeby (o ile pamiętam).Pin-Priority
pakiet otrzyma, tym bardziej będzie on preferencyjny w stosunku do innych pakietów o niższej liczbie. Tak więc, jak w stanach strony AptPrefences Debiana ,testing
domyślnie pobiera się instalowaniePin-Priority: 900
wszystkich pakietówtesting
. Tak, określając, żetesting
będzie miałPin-Priority: 100
obniżatesting
pakiety priorytet czyniąc je instalowalnego tylko wtedy, gdy żądanie określając cel wapt-get install -t testing ...
Package: gcc
uaktualnia cały system do testowania. Dokumentacja na tematapt-prefences
jest niejasna, więc przypuszczam, że tego jest to, co się dzieje: 1: Jak pakiety z testów mają większe wersje, domyślnie mają pierwszeństwo w stosunku do standardowych 2: Określanie opakowaniu:gcc
zPin-priority: 100
marek wszystkie pakiety z testowania mieć domyślny priorytet (wyższy niż standard) z wyjątkiemgcc
. Dokładnie odwrotnie, niż chcieliśmy. Zaktualizowałem odpowiedź, aby uniknąć tego błęduAby połączyć 2 poprzednie odpowiedzi w jedną, która działa:
ALE!!! Użyj tego na własne ryzyko, instalując pakiety z niestabilnej. Możesz także chcieć usunąć
/etc/apt/sources.list.d/unstable.list
po zainstalowaniu pakietów.Jeśli to możliwe, zainstaluj pod Dockerem, aby nie popsuć systemu operacyjnego. Twój przebieg może się różnić.
źródło
Od 19.02.2017 gcc-5 został usunięty z testów:
https://tracker.debian.org/pkg/gcc-5
Możesz,
apt-get install gcc-5
jeśli najpierw wykonasz tę linię jako root:Następnie prawdopodobnie będziesz chciał zmienić priorytet tego źródła
/etc/apt/preferences.d
zgodnie z odpowiedzią Llekna.źródło
W zeszłym tygodniu miałem problemy; wygląda na to, że od 23.01.2019 gcc-5 został całkowicie usunięty z repozytoriów. (Zobacz https://tracker.debian.org/pkg/gcc-5 )
Jeśli naprawdę tego potrzebujesz, to możesz go skompilować ze źródła. Zamierzam znaleźć sposób na usunięcie zależności z mojego systemu.
źródło