jak napisać przepis homebrew?

19

Jakie są kluczowe cechy przepisu homebrew?

Jeśli chcę przekazać przepis, np. Ten dotyczący udunits, do repozytorium hombrew-science, w jaki sposób miałbym przekonwertować skrypt wiersza polecenia:

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

w prawidłowy przepis?

David LeBauer
źródło
Napar wyodrębni się i cdautomatycznie. Nie musisz uruchamiać make clean, ponieważ katalog kompilacji jest tymczasowy. Obecna odpowiedź ma resztę.
daviewales

Odpowiedzi:

22

Ten plik README Homebrew zawiera następujące kroki (wraz z linkami do dodatkowych informacji):

Wnosząc wkład

W skrócie:

  1. Widelec 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 .

W długim:

Formuły Homebrew są napisane w Ruby (testowane przeciwko Ruby 2.0.0). Znajomość języka Ruby z pewnością pomaga, ale możesz zapoznać się z podstawowymi procedurami, takimi jak powyższy zarys, po prostu czytając kilka istniejących formuł.

Przyjęcie formuły wymaga również niewielkiej wiedzy na temat żądań ściągania Git i GitHub, ale jest objęte Jak otworzyć żądanie ściągnięcia Homebrew (i połączyć je)

echristopherson
źródło
4
Do „Homebrew formuły są napisane w Ruby point” - widziałem teraz kilka formuł, które używają Ruby jako programu wywołującego w procedurze instalacyjnej napisanej w innym języku. Więc przynajmniej musisz znać wystarczająco dużo Ruby, aby wykonać procedury instalacji / dezinstalacji, a resztę możesz zrobić w <wstaw tutaj wybrany język>, wywołując skrypt pomocnika.
Ian C.
1
Dobrze wiedzieć.
echristopherson
5
Ilość Ruby, którą musisz znać, aby stworzyć przepis, jest praktycznie niczym, około 0,00001% pełnego języka Ruby. Zasadniczo ustawiasz kilka parametrów, ale wielką zaletą pisania w Ruby jest to, że masz do dyspozycji wszystkie Ruby, aby zrobić wszystko, czego potrzebujesz. (Ludzie, którzy rozpowszechniają FUD o Homebrew, Vagrant lub Puppet itp. Za pomocą Ruby, są albo nieświadomi, albo nieuczciwi, ponieważ we wszystkich przypadkach możesz sobie poradzić z komponowaniem czegoś tak złożonego jak plik .INI, ale nie jesteś do tego ograniczony.) Konkluzja: nie bądź zastraszany. Nie potrzebujesz doświadczenia w Ruby.
iconoclast