Minha maneira de forçá-los a coexistir é tornar o MacPorts invisível por padrão, mas visível ao invocar qualquer programa do MacPorts. Ou seja, envolva programas do MacPorts com algum script como:
if [ "$#" -le 0 ]; then
echo "Usage: $0 command [arg1, arg2, ...]" >&2
exit 1
fi
if [[ -z $MACPORTS_PREFIX ]]; then
MACPORTS_PREFIX='/opt/local'
fi
export PATH="$MACPORTS_PREFIX/bin:$MACPORTS_PREFIX/sbin:$PATH"
export DYLD_LIBRARY_PATH="$MACPORTS_PREFIX/lib:$DYLD_LIBRARY_PATH"
export CPATH="$MACPORTS_PREFIX/include:$CPATH"
command=$1
shift
exec $command $*
Se você nomear este script como macports.sh
, poderá fazer o agrupamento por macports.sh macports_bin
, como macports.sh port
executará port
wrapped.
Por conveniência, você pode colocar macports.sh something
em alguns scripts com o mesmo nome dos próprios comandos e colocá-los em seu diretório HOME, como ~/bin
, ~/.local/bin
, etc.
Eu escrevi uma postagem no blog sobre isso há um mês. Você pode lê-lo se precisar dar uma olhada nos detalhes.