Probé muchas soluciones para instalar la actualización de mi compilador gcc en el servidor Debian. Ninguno de ellos funcionó. Necesito la actualización del compilador para usar nuevas características de c++11, ya que esto proporciona una ABI de libcxx11 estable y soporte estable para C++11 (consulteaquí). Específicamente obteniendo la versión `GLIBCXX_3.4.21' que no está incluida en mi compilador actual gcc versión 4.9.2 (Debian 4.9.2-10).
Algunos consejos para la solución serán útiles. Gracias de antemano.
Algunos enlaces al foro relacionado con mi problema que ya probé:
1 2 3(La solución no completamente relacionada es para ubuntu, pero todavía no pude encontrar gcc-5 en el servidor ftp de Debian)
Respuesta1
Necesitaba GCC 5+ instalado en Debian Jessie y, como está disponible para las pruebas de Debian (al menos el 16 de junio), puedes usar apt-pinning para instalar los paquetes disponibles allí (verhttps://wiki.debian.org/AptPreferences).
Para instalar GCC 5+ desde la prueba en Debian jessie usando apt-pinning:
Agregue el repositorio de pruebas de Debian a sus fuentes apt creando un archivo en el directorio
/etc/apt/sources.list.d
que contiene la líneadeb http://ftp.us.debian.org/debian testing main contrib non-free
Indique a Debian que utilice fuentes de prueba en ciertos paquetes creando un archivo que
/etc/apt/preferences.d
contenga lo siguiente:Package: * Pin: release a=testing Pin-Priority: 100
Actualizar la base de datos de apt:
sudo apt-get update
Instale gcc desde la prueba:
sudo apt-get install -t testing gcc
Tenga en cuenta que al utilizar
-t testing
le indica a apt-get que instale gcc desde fuentes de prueba como se configuró anteriormente.
Le recomiendo encarecidamente limpiar cualquier compilación y volver a compilar cualquier dependencia antes de volver a compilar sus fuentes.
¡Divertirse!
Respuesta2
A partir del 19 de febrero de 2017, gcc-5 ha sidoremotode las pruebas:
https://tracker.debian.org/pkg/gcc-5
Puedes hacerlo apt-get install gcc-5
si primero ejecutas esta línea como root:
echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/unstable.list
Entonces, probablemente querrás cambiar la prioridad de esa fuente /etc/apt/preferences.d
según la respuesta de Llekn.
Respuesta3
Para combinar las 2 respuestas anteriores en una que funcione:
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
¡¡¡PERO!!! Utilice esto bajo su propio riesgo ya que está instalando paquetes desde inestable. Es posible que también desee eliminarlos /etc/apt/sources.list.d/unstable.list
una vez que haya instalado los paquetes.
Si es posible, instálelo en Docker para no estropear su sistema operativo. Su experiencia puede ser diferente.
Respuesta4
Pude instalar gcc-5
desde los repositorios de Ubuntu en Debian 10.13 "buster". Es una muy mala práctica pero no tenía otra opción.
Aquí están los comandos (compatibles con CI)
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++