Ich habe viele Lösungen ausprobiert, um ein Update für meinen gcc-Compiler auf dem Debian-Server zu installieren. Keine davon hat funktioniert. Ich brauche das Compiler-Update, um die neuen Funktionen von C++11 nutzen zu können, da dies eine stabile libcxx11-ABI und stabile Unterstützung für C++11 bietet (sieheHier). Insbesondere erhalte ich die Version „GLIBCXX_3.4.21“, die in meiner aktuellen Compiler-GCC-Version 4.9.2 (Debian 4.9.2-10) nicht enthalten ist.
Einige Lösungshinweise wären hilfreich. Vielen Dank im Voraus.
Einige Links zu Foren zu meinem Problem, die ich bereits ausprobiert habe:
1 2 3(eine nicht ganz verwandte Lösung ist für Ubuntu, aber ich konnte gcc-5 noch nicht auf dem FTP-Server von Debian finden)
Antwort1
Ich brauchte GCC 5+ auf Debian Jessie installiert und, wie es für Debian Testing verfügbar ist (zumindest am 16. Juni), können Sie apt-pinning verwenden, um dort verfügbare Pakete zu installieren (siehehttps://wiki.debian.org/AptPreferences).
So installieren Sie GCC 5+ aus dem Test auf Debian Jessie mit apt-pinning:
Fügen Sie das Debian-Test-Repository zu Ihren Apt-Quellen hinzu, indem Sie im Verzeichnis eine Datei
/etc/apt/sources.list.d
mit der Zeile erstellendeb http://ftp.us.debian.org/debian testing main contrib non-free
Weisen Sie Debian an, Testquellen für bestimmte Pakete zu verwenden, indem Sie eine Datei mit
/etc/apt/preferences.d
folgendem Inhalt erstellen:Package: * Pin: release a=testing Pin-Priority: 100
Apt-Datenbank aktualisieren:
sudo apt-get update
Installieren Sie gcc aus dem Test:
sudo apt-get install -t testing gcc
Beachten Sie, dass
-t testing
Sie mit apt-get angeben, dass gcc aus den zuvor konfigurierten Testquellen installiert werden soll.
Ich empfehle dringend, die Kompilierung zu bereinigen und alle Abhängigkeiten neu zu kompilieren, bevor Sie Ihre Quellen erneut kompilieren.
Viel Spaß!
Antwort2
Seit dem 19.02.2017 ist gcc-5ENTFERNTaus Tests:
https://tracker.debian.org/pkg/gcc-5
Sie können dies apt-get install gcc-5
, indem Sie zuerst diese Zeile als Root ausführen:
echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/unstable.list
Dann möchten Sie wahrscheinlich die Priorität dieser Quelle /etc/apt/preferences.d
gemäß der Antwort von llekn ändern.
Antwort3
So kombinieren Sie die beiden vorherigen Antworten zu einer einzigen, die funktioniert:
echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list.d/unstable.list
apt-get update
apt-get install -t unstable gcc-5
ABER!!! Verwenden Sie dies auf eigenes Risiko, da Sie Pakete aus Unstable installieren. Möglicherweise möchten Sie es auch entfernen, /etc/apt/sources.list.d/unstable.list
nachdem Sie die Pakete installiert haben.
Installieren Sie es wenn möglich unter Docker, damit Ihr Betriebssystem nicht durcheinander gerät. Die Ergebnisse können unterschiedlich ausfallen.
Antwort4
Ich konnte es gcc-5
aus den Ubuntu-Repositories auf Debian 10.13 „Buster“ installieren. Das ist wirklich eine schlechte Vorgehensweise, aber ich hatte keine andere Wahl.
Hier sind die Befehle (CI-freundlich)
apt-get remove -y gcc
echo "deb http://us.archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list.d/buster.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list.d/buster.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32
apt-get update
apt-get install -y gcc-5 g++-5
ln -s /usr/bin/gcc-5 /usr/bin/gcc
ln -s /usr/bin/g++-5 /usr/bin/g++