homebrew tarifini nasıl yazarım?


19

Bir homebrew tarifinin temel özellikleri nelerdir?

Bir tarif, örneğin bu hombrew-science deposuna udunits için katkıda bulunmak istiyorsanız , nasıl böyle bir komut satırı komut dosyası dönüştürmek istiyorsunuz:

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

geçerli bir reçete?


Demlemek cdotomatik olarak çıkarılır . Çalıştırmanız gerekmez make clean, çünkü derleme dizini geçicidir. Şu anki cevabın geri kalanı var.
daviewales

Yanıtlar:


22

Bu Homebrew README şu adımları verir (daha fazla bilgiye bağlantılar ile):

Katkı

Kısacası:

  1. Çatal 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. Çekme İsteği .

Uzun:

Homebrew formülleri Ruby'de yazılmıştır (Ruby 2.0.0'a karşı test edilmiştir). Ruby bilgisi kesinlikle yardımcı olur, ancak sadece birkaç formülü okuyarak yukarıda ana hatlarınız gibi temel prosedürleri nasıl yapacağınıza dair bir fikir edinebilirsiniz.

Bir formülün kabul edilmesi, Git ve GitHub çekme istekleri hakkında biraz bilgi gerektirir, ancak kapsanmıştır Homebrew çekme isteği nasıl açılır (ve birleştirilir)


4
'Homebrew formülleri Ruby noktasında yazılmıştır' - Şimdi Ruby'yi başka bir dilde yazılmış bir kurulum rutininde arayan olarak kullanan bir sürü formül gördüm. Bu nedenle, en azından yükleme / kaldırma rutinlerini yapmak için yeterince Ruby bilmeniz gerekir ve geri kalanı, bir yardımcı komut dosyasına çağrılarak <istediğiniz dili girin> içinde yapabilirsiniz.
Ian C.

1
Bunu bilmek güzel.
echristopherson

5
Bir tarif oluşturmak için bilmeniz gereken Ruby miktarı, tam Ruby dilinin yaklaşık% 0.00001'i kadar bir şey değildir. Temel olarak birkaç parametre ayarlıyorsunuz, ancak Ruby'de yazılmasının en büyük yararı, ihtiyacınız olan her şeyi yapabilmeniz için Ruby'nin tümüne sahip olmanızdır. ( Ruby'yi kullanarak Homebrew veya Vagrant veya Kukla vb. Hakkında FUD yayan insanlar , her durumda olduğu gibi, bir .INI dosyası gibi karmaşık bir şey oluşturarak elde edebileceğiniz gibi, clueless veya sahtekârdırlar, ancak bununla sınırlı değilsiniz.) Alt satır: Gözünüzü korkutmayın. Ruby deneyimine ihtiyacınız yok.
iconoclast

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.