Forçando Homebrew e Macports a coexistirem?

10

Eu tenho um sistema MacOSX que tenho usado há vários anos e, durante esse período, instalei alguns pacotes via Macports.

Eu agora quero experimentar o Homebrew, mas fica claro pelo que li aqui e em outros lugares que as instalações padrão do Homebrew e do Macport não podem coexistir facilmente.

Não é uma opção viável desinstalar o Macports, já que grande parte do meu trabalho diário no MacOSX envolve o uso de vários utilitários instalados no Macports. Além disso, muitos dos meus próprios utilitários domésticos são agora interdependentes com os Macports. E, finalmente, muitos executáveis e bibliotecas compartilhadas que eu uso rotineiramente estão agora instalados em / usr / local, e meu sistema rapidamente se tornaria inutilizável se eu limpasse essa árvore de diretório.

Então, a minha pergunta é a seguinte: alguém inventou uma maneira alternativa de instalar o Homebrew, que pode coexistir com Macports? Especificamente, alguém descobriu como fazer o Homebrew utilizar uma árvore de diretórios como / usr / local / homebrew em vez de / usr / local?

Agradecemos antecipadamente por quaisquer sugestões ou sugestões para documentos.

    
por HippoMan 28.01.2012 / 22:08

2 respostas

2

Você pode dizer ao Homebrew para usar seu próprio diretório e adicioná-lo ao caminho. Embora não seja para o mesmo propósito, este trecho do guia de instalação diz:

Multiple installations

Create a Homebrew installation wherever you extract the tarball. Whichever brew command is called is where the packages will be installed. You can use this as you see fit, e.g. a system set of libs in /usr/local and tweaked formulae for development in ~/homebrew

Fonte: link

    
por 29.01.2012 / 01:33
1

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.

    
por 17.11.2013 / 20:04