comment écrire une recette homebrew?

19

Quelles sont les principales caractéristiques d'une recette homebrew?

Si je veux contribuer une recette, par exemple celle-ci pour udunits au référentiel hombrew-science, comment convertir un script de ligne de commande comme celui-ci:

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

dans une recette valide?

David LeBauer
la source
Brew extraira et cdautomatiquement. Vous n'avez pas besoin de vous lancer make clean, car le répertoire de construction est temporaire. La réponse actuelle a le reste.
daviewales

Réponses:

22

Ce Homebrew README donne ces étapes (avec des liens vers plus d'informations):

Contribuant

En bref:

  1. Fork 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. Tirez la demande .

En long:

Les formules Homebrew sont écrites en Ruby (testé contre Ruby 2.0.0). La connaissance de Ruby est certainement utile, mais vous pourrez peut-être vous faire une idée des procédures de base telles que celles décrites ci-dessus simplement en lisant quelques formules existantes.

Obtenir une formule acceptée nécessite également un peu de connaissance des demandes d'extraction Git et GitHub, mais est couvert Comment ouvrir une demande d'extraction Homebrew (et la fusionner)

echristopherson
la source
4
Pour les «formules Homebrew sont écrites en Ruby point» - j'ai vu un tas de formules maintenant qui utilisent Ruby comme appelant dans une routine d'installation écrite dans une autre langue. Donc, au minimum, vous devez connaître suffisamment Ruby pour effectuer les routines d'installation / désinstallation et le reste, vous pouvez le faire dans <insérer la langue de votre choix ici> en appelant un script d'aide.
Ian C.
1
C'est bon à savoir.
echristopherson
5
La quantité de Ruby que vous devez connaître pour créer une recette n'est pratiquement rien, environ 0,00001% du langage Ruby complet. Vous définissez essentiellement quelques paramètres, mais le gros avantage de l'écriture en Ruby est que vous avez tout Ruby à votre disposition pour faire tout ce dont vous avez besoin. (Les personnes qui diffusent du FUD sur Homebrew ou Vagrant ou Puppet etc. en utilisant Ruby sont soit désemparées, soit malhonnêtes, car dans tous les cas, vous pouvez vous débrouiller avec la composition de quelque chose d'aussi complexe qu'un fichier .INI, mais vous n'êtes pas limité à cela.) Conclusion: ne soyez pas intimidé. Vous n'avez pas besoin d'expérience Ruby.
iconoclaste