J'ai essayé de nombreuses solutions pour installer la mise à jour de mon compilateur gcc sur le serveur Debian. Aucun n'a fonctionné. J'ai besoin de la mise à jour du compilateur pour utiliser les nouvelles fonctionnalités de c ++ 11, car cela fournit une libcxx11 ABI stable et un support stable pour C ++ 11 (voir ici ). Obtenir spécifiquement la version `GLIBCXX_3.4.21 'qui n'est pas incluse dans mon compilateur actuel gcc version 4.9.2 (Debian 4.9.2-10).
Quelques conseils sur la solution seront utiles. Merci d'avance.
Quelques liens vers des forums liés à mon problème que j'ai déjà essayés:
1 2 3 (la solution n'est pas entièrement liée à Ubuntu, mais je n'ai pas encore trouvé gcc-5 dans le serveur ftp de debian)
testing
, mais ce n'est probablement pas une bonne idée sur un serveur (selon ce que vous entendez par serveur bien sûr). Le passage de gcc 4.9 à gcc 5 impliquait une transition de bibliothèque, vous êtes donc dans un monde de douleur si vous essayez de le faire vous-même!testing
(utilisé seul): les packages sont parfois temporairement supprimés (donc la configuration que vous venez de valider dans votre VM de test peut ne plus être facilement disponible) , et les correctifs de sécurité peuvent être retardés (parfois pendant une longue période s'iltesting
subit une grande transition de bibliothèque, bien qu'il y en aittesting-security
pour de tels cas).Réponses:
J'avais besoin que GCC 5+ soit installé sur Debian Jessie et, comme c'est disponible pour les tests Debian (au moins le 16 juin), vous pouvez utiliser apt-pinning pour installer les paquets disponibles là-bas (voir https://wiki.debian.org/AptPreferences ) .
Pour installer GCC 5+ à partir de tests sur Debian Jessie à l'aide d'apt-pinning:
Ajoutez le référentiel de test Debian à vos sources apt en créant un fichier dans le répertoire
/etc/apt/sources.list.d
contenant la lignedeb http://ftp.us.debian.org/debian testing main contrib non-free
Demandez à Debian d'utiliser des sources de test sur certains paquets en créant un fichier
/etc/apt/preferences.d
contenant les éléments suivants:Mettre à jour la base de données apt:
sudo apt-get update
Installez gcc à partir des tests:
sudo apt-get install -t testing gcc
Notez qu'en utilisant,
-t testing
vous dites à apt-get d'installer gcc à partir de sources de test configurées précédemment.Je suggère fortement de nettoyer toute compilation et de recompiler toute dépendance avant de compiler à nouveau vos sources.
S'amuser!
la source
pip
) , mais je pense que cette procédure est la moins invasive car elleapt
permettrait de garder une trace des packages qui dépendent de GCC et d'installer des versions compatibles selon les besoins (pour autant que je m'en souvienne).Pin-Priority
un paquet obtient, plus il aura de préférence sur d'autres paquets avec un nombre inférieur. Ainsi, comme dans les états de la page AptPrefences de Debian ,testing
par défaut,Pin-Priority: 900
tous les paquetstesting
doivent être installés par défaut. Donc, en spécifiant que la priorité des packagestesting
seraPin-Priority: 100
inférieuretesting
, les rendre installables uniquement si cela est demandé lors de la spécification de la cible auapt-get install -t testing ...
Package: gcc
met à niveau l'ensemble du système vers les tests. La documentation surapt-prefences
est déroutante donc je suppose que c'est ce qui se passe: 1: Comme les packages de testing ont des versions supérieures, par défaut ils ont priorité sur les versions standard 2: Spécification de Package:gcc
avecPin-priority: 100
fait que tous les packages de testing ont la priorité par défaut (supérieure à standard) saufgcc
. Exactement le contraire que nous voulions. J'ai mis à jour la réponse pour éviter cette erreurPour combiner les 2 réponses précédentes en une seule qui fonctionne:
MAIS!!! Utilisez-le à vos risques et périls lorsque vous installez des packages à partir d'unstable. Vous pouvez également vouloir supprimer
/etc/apt/sources.list.d/unstable.list
une fois que vous avez installé les packages.Si possible, installez-le sous Docker pour ne pas gâcher votre système d'exploitation. Votre kilométrage peut varier.
la source
Depuis le 2017-02-19, gcc-5 a été retiré des tests:
https://tracker.debian.org/pkg/gcc-5
Vous pouvez
apt-get install gcc-5
si vous exécutez d'abord cette ligne en tant que root:Ensuite, vous voudrez probablement changer la priorité de cette source
/etc/apt/preferences.d
selon la réponse de llekn.la source
J'avais des problèmes la semaine dernière; il semble qu'à compter du 2019-01-23, gcc-5 a été complètement supprimé des référentiels. (Voir https://tracker.debian.org/pkg/gcc-5 )
Si vous en avez vraiment besoin, je suppose que vous pouvez le compiler à partir de la source. Je vais trouver un moyen de supprimer la dépendance de mon système.
la source