Wie schreibe ich ein Homebrew-Rezept?

19

Was sind die Hauptmerkmale eines Homebrew-Rezepts?

Wenn ich ein Rezept, z. B. dieses für udunits, in das Hombrew-Science-Repository einbringen möchte, wie würde ich ein Befehlszeilenskript wie das folgende konvertieren:

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

in ein gültiges Rezept?

David LeBauer
quelle
Gebräu wird extrahiert und cdautomatisch. Sie müssen nicht ausgeführt werden make clean, da das Erstellungsverzeichnis temporär ist. Die aktuelle Antwort hat den Rest.
Daviewales

Antworten:

22

Diese Homebrew-README-Datei enthält die folgenden Schritte (mit Links zu weiteren Informationen):

Mitmachen

Zusamenfassend:

  1. Gabel 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. Pull Request .

In langen:

Homebrew-Formeln sind in Ruby geschrieben (getestet gegen Ruby 2.0.0). Kenntnisse in Ruby sind sicherlich hilfreich, aber Sie können möglicherweise ein Gefühl dafür bekommen, wie grundlegende Verfahren wie oben beschrieben ausgeführt werden, indem Sie nur ein paar vorhandene Formeln lesen.

Das Akzeptieren einer Formel erfordert auch ein wenig Wissen über Git- und GitHub-Pull-Anforderungen, wird jedoch behandelt. So öffnen Sie eine Homebrew-Pull-Anforderung (und führen sie zusammen)

Echristopherson
quelle
4
Zu 'Homebrew-Formeln sind in Ruby Point geschrieben' - Ich habe jetzt eine Reihe von Formeln gesehen, die Ruby als Aufrufer einer Installationsroutine verwenden, die in einer anderen Sprache geschrieben ist. Sie müssen also mindestens über genügend Ruby-Kenntnisse verfügen, um die Installations- / Deinstallationsroutinen auszuführen, und den Rest können Sie in <Sprache Ihrer Wahl hier einfügen> ausführen, indem Sie ein Hilfsskript aufrufen.
Ian C.
1
Das ist gut zu wissen.
Echristopherson
5
Die Menge an Ruby, die Sie benötigen, um ein Rezept zu erstellen, ist praktisch nichts, etwa 0,00001% der vollständigen Ruby-Sprache. Grundsätzlich legen Sie einige Parameter fest, aber der große Vorteil von Ruby besteht darin, dass Sie alle Ruby-Ressourcen zur Verfügung haben, um alles zu tun, was Sie benötigen. (Leute, die mit Ruby FUD über Homebrew, Vagrant, Puppet usw. verbreiten , sind entweder ahnungslos oder unehrlich, da Sie in jedem Fall damit auskommen können, etwas so Komplexes wie eine .INI-Datei zu komponieren, aber Sie sind nicht darauf beschränkt.) Fazit: Lassen Sie sich nicht einschüchtern. Du brauchst keine Ruby-Erfahrung.
Bilderstürmer