Usando update-alternatives apenas para o shell atual

3

Estou usando o Ubuntu 15.10, então a versão padrão do g ++ é 5.2.1. Desde que eu preciso mudá-lo para o 4.7 frequentemente, estou usando update-alternatives; Notei, no entanto, que o compilador padrão não é restaurado ao fechar o terminal; isso pode ser um problema, já que existe a possibilidade de misturar códigos compilados com compiladores diferentes. Existe uma maneira de forçar o shell a restaurar as configurações padrão ao sair? Obrigado em conselho.

Editar: Desejo agradecer ao_Seppi por sua preciosa ajuda

    
por Matteo S. 12.12.2015 / 10:59

1 resposta

2

O sistema de alternativas funciona apenas globalmente. Então você poderia usar algo como

trap 'sudo update-alternatives ....' EXIT

No entanto, isso exigiria sua senha e também a redefiniria para todos os outros shells ativos. Então duvido que isso seja o que você quer.

Minha sugestão: primeiro defina o alternativo de volta para a versão 'default' do g ++. Crie algo parecido com o seguinte no seu arquivo ~/.bashrc (ou o que seu shell usar, quando não estiver usando o bash):

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

Agora, você usará o g + + mais recente por padrão, até executar o comando oldg++ . Isso alternará para a versão mais antiga da sessão atual ou até você executar newg++ , que exclui o alias e volta para a versão padrão.

    
por s3lph 12.12.2015 / 11:54