¿Cómo escribo una receta casera?

19

¿Cuáles son las características clave de una receta casera?

Si quiero aportar una receta, por ejemplo, esta para udunits al repositorio hombrew-science, ¿cómo convertiría un script de línea de comandos 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

en una receta válida?

David LeBauer
fuente
Brew se extraerá y cdautomáticamente. No necesita ejecutar make clean, porque el directorio de compilación es temporal. La respuesta actual tiene el resto.
daviewales

Respuestas:

22

Este archivo README de Homebrew proporciona estos pasos (con enlaces a más información):

Contribuyendo

En breve:

  1. Tenedor 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. Solicitud de extracción .

En mucho tiempo:

Las fórmulas caseras se escriben en Ruby (probado contra Ruby 2.0.0). El conocimiento de Ruby ciertamente ayuda, pero es posible que pueda tener una idea de cómo realizar procedimientos básicos como se describe anteriormente simplemente leyendo algunas fórmulas existentes.

Obtener una fórmula aceptada también requiere un poco de conocimiento de las solicitudes de extracción de Git y GitHub, pero está cubierto Cómo abrir una solicitud de extracción de Homebrew (y fusionarla)

Echristopherson
fuente
44
Para 'Las fórmulas de Homebrew están escritas en punto Ruby': ahora he visto un montón de fórmulas que usan Ruby como llamador en una rutina de instalación escrita en otro idioma. Por lo tanto, como mínimo, debe conocer suficiente Ruby para realizar las rutinas de instalación / desinstalación y el resto lo puede hacer en <insertar el idioma de su elección aquí> llamando a un script auxiliar.
Ian C.
1
Es bueno saberlo.
echristopherson
55
La cantidad de Ruby que necesita saber para crear una receta es prácticamente nada, aproximadamente 0.00001% del lenguaje Ruby completo. Básicamente, está estableciendo algunos parámetros, pero el gran beneficio de que esté escrito en Ruby es que tiene todo Ruby disponible para hacer lo que necesite. (Las personas que difunden FUD sobre Homebrew o Vagrant o Puppet, etc., usando Ruby no tienen ni idea o son deshonestas, ya que en todos los casos puedes salir componiendo algo tan complejo como un archivo .INI, pero no estás limitado a eso). En pocas palabras: no te dejes intimidar. No necesitas experiencia Ruby.
iconoclasta