web-dev-qa-db-fra.com

Utiliser update-alternatives uniquement pour le shell actuel

J'utilise Ubuntu 15.10, la version par défaut de g ++ est donc 5.2.1. Comme je dois souvent le changer en 4.7, j'utilise update-alternatives; J'ai toutefois remarqué que le compilateur par défaut n'est pas restauré à la fermeture du terminal. cela peut poser problème car il est possible de mélanger des codes compilés avec différents compilateurs. Existe-t-il un moyen de forcer le shell à restaurer les paramètres par défaut lors de la fermeture? Merci dans les conseils.

Edit: je tiens à remercier the_Seppi pour son aide précieuse

2
Matteo S.

Le système alternatif ne fonctionne que globalement. Donc, vous pouvez utiliser quelque chose comme

trap 'Sudo update-alternatives ....' EXIT

Cependant, ceci vous demanderait votre mot de passe et le réinitialiserait pour tous les autres shells actifs. Donc, je doute que c'est ce que vous voulez.


Ma suggestion: commencez par définir l’alternative à la version "par défaut" de g ++. Créez quelque chose comme ce qui suit dans votre fichier ~/.bashrc (ou ce que votre shell utilise, lorsque vous n'utilisez pas bash):

function oldg++() {
    alias g++=/path/to/older/g++
}
function newg++() {
    unalias g++
}

Donc maintenant, vous utiliserez le plus récent g ++ par défaut, jusqu’à ce que vous exécutiez la commande oldg++ Ceci basculera vers l’ancienne version de la session en cours ou jusqu’à ce que vous exécutiez newg++, qui supprime l’alias et revient donc à la version par défaut.

1
s3lph