como faço para escrever uma receita caseira?

19

Quais são os principais recursos de uma receita caseira?

Se eu quiser contribuir com uma receita, por exemplo, esta para udunits no repositório hombrew-science, como eu converteria um script de linha de comando como este:

wget ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.1.24.tar.gz
tar -xvf udunits-2.1.24.tar.gz
cd udunits-2.1.24
./configure 
make 
make check
make clean

em uma receita válida?

David LeBauer
fonte
O Brew será extraído e cdautomaticamente. Você não precisa executar make clean, porque o diretório de construção é temporário. A resposta atual tem o resto.
daviewales 24/03

Respostas:

22

Este LEIA-ME do Homebrew fornece estas etapas (com links para mais informações):

Contribuindo

Em resumo:

  1. Garfo Homebrew .
  2. brew create http://example.com/foo-0.1.tar.gz
  3. git checkout -b foo
  4. git commit Library/Formula/foo.rb && git push
  5. Solicitação de recebimento .

Em muito tempo:

As fórmulas caseiras são escritas em Ruby (testadas em Ruby 2.0.0). O conhecimento de Ruby certamente ajuda, mas você pode ter uma idéia de como executar procedimentos básicos, como você descreveu acima, apenas lendo algumas fórmulas existentes.

A aceitação de uma fórmula também requer um pouco de conhecimento das solicitações pull do Git e do GitHub, mas é abordada Como abrir uma solicitação pull do Homebrew (e mesclá-la)

echristopherson
fonte
4
Para 'As fórmulas de homebrew estão escritas no ponto Ruby' - já vi várias fórmulas agora que usam Ruby como chamador em uma rotina de instalação escrita em outro idioma. Portanto, no mínimo, você precisa conhecer Ruby suficiente para fazer as rotinas de instalação / desinstalação e o restante que você pode fazer em <inserir idioma de sua escolha aqui> chamando por um script auxiliar.
Ian C.
1
É bom saber disso.
echristopherson
5
A quantidade de Ruby que você precisa saber para criar uma receita é praticamente nada, cerca de 0,00001% da linguagem Ruby completa. Você está basicamente definindo alguns parâmetros, mas o grande benefício de ser escrito em Ruby é que você tem todo o Ruby disponível para fazer o que precisar. (As pessoas que espalham FUD sobre Homebrew, Vagrant, Puppet etc. usando Ruby são ignorantes ou desonestas, pois em todos os casos você pode compor algo tão complexo quanto um arquivo .INI, mas você não está limitado a isso.) Conclusão: não se deixe intimidar. Você não precisa de experiência com Ruby.
iconoclasta