22 Haziran 2013 Cumartesi

Ruby Uygulamalarına Deb ve Rpm Paketi Yapmak

Python'da paket yapımını setup.py yardımı ile daha kolay bir biçimde yaptığımızdan burada bahsetmiştim. Ruby'de ise .gemspec dosyası yardımıyla sistemimize kurulum yapabiliriz ve Ruby modüllerini genelde sistemimize gem olarak kurarız. Bunun dışında librubyX şeklinde adlandırılarak paketlenmiş kitaplıklar da vardır. Ben de kendi yazdığım Ruby uygulaması nasıl paketlemem gerektiğini araştırdım. Ruby'de gem yardımı ile uygulamanın paketini yapmadan sistemimize kurabiliriz. Ancak gemin de kurulum işlemini yavaş gerçekleşmesi gibi zayıflıkları var. Kendi uygulamamızı geme dönüştürmek için gemspec dosyasının yazım biçimine buradan bakabilirsiniz. Aynı zamanda daha önceden gem hazırlanması hakkındaki yazıma buradan ulaşabilirsiniz.

Deb Paketi Yapımı

Herhangi bir dağıtım için paket yaparken o dağıtımın belirttiği politikalara uymalıyız. Debian'da kendi sayfasında oldukça güzel yazmış. Ben RManEdit için bir sürü gem kullandım. Çünkü deb paketi yoktu gereken kitaplıkların. RManEdit'i gem haline getirdikten sonra gemspec dosyası yardımı ile deb paketi oluşturmaya karar verdim. .gemspec dosyasından deb paketi üretmek için gem2deb aracı var. 
"gem2deb gemdosyasi" şeklinde deb paketi yapımını gerçekleştirebiliriz. Serhat, RManEdit proje wikisinde güzel bir biçimde gem2deb kullanımından bahsetmiş. Ancak Ruby'de deb paketi üretirken şöyle bir problem meydana geliyor. Ruby uygulamaları genelde bir çok ek gem kullanılarak yazılıyor. Bu durumda paketten kurulum gerçekleştirilirken gerekli gemlerin de sisteme paket yardımı ile kurulması gerekli. Ancak debian bunu pek desteklemiyor. Çünkü debian/control dosyasındaki bağımlılıklara sadece deb paketlerini tanımlayabiliyoruz. Bu durumda gerekli gemler açıkta kalıyor. Bunu için biraz araştırma yaptım. Buradan aldığım bilgi ile gem bağımlılıklarını paketten sağlayamadığımızın kesin olduğunu öğrendim. Aslında kesin derken debian paket yapma politikalarına uymuyor. Yoksa bir şekilde gerekli gemler paket içinde kurulum betiği ile sağlanabilir. Eğer yazdığımız uygulama hiç gem içermeden gerekli kütüpahaneler sağlanıyorsa paketlemek mantıklı. Biz bu yüzden RManEdit'i paketlemeden gem olarak sisteme kurdurmaya karar verdik. 

Rpm Paketi Yapımı

Rpm paketi için ise "gem2rpm gemdosyasi > uygulamaismi.spec" şeklinde rpm paketleri için gerekli .spec dosyasını üretebiliriz. 

Hiç yorum yok:

Yorum Gönder