Acho que alias
funcionaria perfeitamente para sua situação. Você pode adicionar o seguinte ao seu .profile
ou .bash_profile
:
alias mympicc='/usr/local/MPICH/bin/mpicc'
Uma solução mais permanente (mas ainda reversível) é adicionar a localização MPICH
ao seu caminho ANTES da localização OPENMPI
. Feito facilmente adicionando o seguinte, seu .profile
ou .bash_profile
:
export PATH="/usr/local/MPICH/bin:$PATH"
Quando você digita um comando como mpicc
, se não estiver em seu diretório atual, seu shell pesquisará o PATH
, em ordem, portanto, é importante que posição você coloque para definir precedência.
Se você quiser ter um tipo de switch que possa ser usado para alternar facilmente entre os dois, poderá fazer algum tipo de função e adicioná-lo ao seu .bashrc
(ou .profile
/ .bash_profile
? ):
use_mpicc () {
shopt -s nocasematch
case "$1" in
mpich) export PATH="...:/usr/local/MPICH/bin:/usr/local/OPENMPI/bin:..." ;;
openmpi) export PATH="...:/usr/local/OPENMPI/bin:/usr/local/MPICH/bin:..." ;;
*) return 1 ;;
esac
shopt -u nocasematch
}
Neste exemplo, usei reticências no lugar do caminho real. Eu recomendo, na verdade, especificar o caminho completo nesta função (se usado) em vez de usar o método: PATH="Stuff_I_Need_added:$PATH"
, pois isso só vai aumentar o seu PATH
toda vez que você chamar a função, fazendo com que ela se torne obnóxiamente longa. / p>
Você chamaria assim:
$ use_mpicc mpich
$ # OR
$ use_mpicc openmpi
Mais informações sobre a configuração do seu caminho