Como posso integrar Homebrew com software não gerenciado em / usr / local?

5

Estou prestes a mudar para o sistema de gerenciamento de pacotes Homebrew , e quase tudo parece muito simples. No entanto, eu tenho usado este computador por um tempo, então eu já tenho um monte de coisas /usr/local. Eu estou bem em deletar quase tudo isso, já que existem fórmulas para quase tudo lá. No entanto, é o "quase" que está levando à minha atual confusão. Existem alguns executáveis ​​- incluindo os publicados, pequenos scripts pessoais e até mesmo a mateferramenta TextMate - /usr/local/binque não estão disponíveis no Homebrew. A página Truques de Dicas do Homebrew 'N' sugere o uso ./configure --prefix=/usr/local/Cellar/foo/1.2 && make && make install && brew link foo, mas esta é apenas uma sugestão útil se houver algo que eu ', em vez de um simples binário ou um link simbólico para algo local.

Minha pergunta, então, é como lidar com o software não gerenciado e o Homebrew simultaneamente. Eu vejo algumas abordagens possíveis:

  1. Misture os dois livremente. Eu não posso dizer se o Homebrew vai me tolerar jogando binários e links simbólicos não gerenciados /usr/local/bin; Meu palpite é que isso vai funcionar por enquanto, mas apenas leva a problemas na estrada. No entanto, também vejo que o Homebrew deveria ser flexível com as hierarquias de arquivos existentes. Eu ficaria curioso para saber qual é a linha oficial sobre isso. No entanto, não está claro que seja uma abordagem atraente.
  2. (Ab?) Use o sistema oficial. Crie /usr/local/Cellar/foo/1.0 diretórios vazios , copie os binários / links simbólicos nele e depois brew link foo. Isso fará com que os links simbólicos sejam duas vezes indiretos, mas isso não parece ser um problema real. Esta parece ser a melhor abordagem para mim, mas não tendo usado o Homebrew, não tenho certeza sobre as desvantagens. Isso vai causar problemas a longo prazo quando, por exemplo, atualizar fórmulas, ou quando novas fórmulas sobrepostas são criadas?
  3. Apenas não misture os dois. Existem duas abordagens aqui:
    1. Coloque meus binários pessoais / links simbólicos em outro diretório. Eu não tenho certeza qual é a melhor localização ( ~/bin? ~/usr/binAlgo mais?), Mas resolve o problema de mixagem por punting nele.
    2. Coloque Homebrew em outro diretório ( por exemplo , /usr/homebrew/). Isso resolve o problema da mesma forma que 3.1. A desvantagem é que eu estou colocando Homebrew em algum lugar fora do padrão, o que parece que vai causar uma série de pequenas dores de cabeça a longo prazo.
  4. Algo mais que eu não conheço ou não tenho pensado.

Qual é a melhor forma de fazer isso? Existe um oficial? Existem falhas óbvias ou benefícios para qualquer uma dessas abordagens em que eu não tenha pensado?

Antal Spector-Zabusky
fonte
Esta é a principal razão pela qual eu uso Macports (ou Fink) os diretórios que eles gerenciam são seus e apenas eles os gerenciam (/ usr / local é para código construído de modo que eu tenho que gerenciar). / usr / local é um problema, pois o gcc e outros sempre leem a partir daí e você perde o controle.
Mark

Respostas:

6

Eu uso 1.

Eu apenas compilo meu software usando /usr/localcomo prefixo e pronto. Eu não tive nenhum problema até agora. Eu não sei se vou ter problemas, mas comecei há 1 ano e até agora tudo bem.

Contudo…

Se eu tivesse que começar de novo hoje, eu seguiria 2 (que eu não sabia na época). Dessa forma, é fácil saber onde está tudo e o que exatamente o software instalou (já que a hierarquia /usr/local/Cellar/foo/1.0é algo como

bin/      etc/      include/  lib/      share/

)

3 não parece valer a pena.

Gio
fonte
1

Homebrew tolera coisas não homebrew em /usr/localmuito bem. Você pode confirmar que está tudo bem fazendo brew doctor- se houver alguma probabilidade de conflito, o homebrew irá avisá-lo.

Ben XO
fonte