PiSi Paketi Yaparken Kurulum Aşamasında Alınan Hatalarda Ne Yapılmaz

Başlıktaki sorunun cevabı paket yeni baştan inşa edilmezmiş. Geçen ccache hakkında yazdığım yazıda kurulum aşamasında (sürüm güncellemelerinde rahatlıkla karşılaşılabilen) olmayan bir dosyanın kurulmaya çalışılması gibi basit bir hatada bile paketi yeni baştan inşa ettiğimi (uygulamayı yeniden derlettiğimi) ve bu durumu hafifletmek için ccache gibi bir çözümü kullanmaya başladığımı söylemiştim. Neyse ki daha güzel bir yöntem varmış.

Bahsedeceğim yöntemi geçenlerde, Pardus dağıtımı ve araçlarını kullanarak geliştirme yapan kullanıcılar, Pardus geliştirici adayları, kısaca herkesin katılabilmesi ve teknik tartışmaların yapılabilmesi için açılmış olan Teknik listede Fatih Arslan'ın yazdığı bir mesaj aracılığıyla öğrendim, pisi bi tahmin ettiğimden daha yetenekliymiş. Bu bilgi bir pisi bi --help kadar yakınımda olmasına rağmen bu zamana kadar habersiz kalmayı başarmışım. Lafı fazla uzatmadan Pardus için paket yaparken paketçilere zaman kazandıracak pisi build parametrelerinden bahsetmeye başlayayım. Bunları benden başka bilmeyen PiSi paketçisi varsa işlerine yarayacaktır :)

Yukarıda örnek bir actions.py dosyası var ve arşiv içinden çıkmayan NEWS dosyası pakete dahil edilmeye çalışılıyor. Eğer küçük bir yazılımsa tekrar inşa etmeniz sorun olmayacaktır ama derlenmesi saatler süren bir uygulamaysa sizi hayattan soğutmaya yetecektir aşağıdakine benzer (yukarıdaki örneğe ait olmayan) bir hata:

Sorunumuzu kısaca anladıktan sonra pisi bi'ye geçebiliriz. Bu komut verilen PiSi paket veya paketlerini inşa etmek için kullılıyor. Yerel (/home/maidis/paket/pspec.xml veya ./pspec.xml) veya uzak (htttp://www.paketler.com/paket/pspec.xml) bir adresteki pspec.xml dosyasının adresinin verilmesi yeterli, PiSi gerekli dosyaları indirip paketi inşa edecektir. Kaynak depo kullanıyorsanız, doğrudan kaynak depoda bulunan bir paketin adını vererek PiSi'nin o paketi inşa etmesini de sağlayabilirsiniz. Her ne kadar şimdiye kadar her seferinde sadece bir paket inşa etmiş olsam da şöyle bir kullanımı var:
$ pisi build [pspec.xml | kaynakadı] ...
veya
$ pisi bi [pspec.xml | kaynakadı] ...
PiSi, paketçilere tüm inşa adımlarını tek tek (yani sadece o adımı) gerçekleştirme şansı veriyor(muş), bu da bu adımlardan herhangi birinde alınan bir hata için tüm adımların tekrar atılmasının önüne geçiyor. İnşa adımları şöyle:
  • --fetch: Kaynak arşivi indirdikten sonra inşayı sonlandır.
  • --unpack: Kaynak arşivini açtıktan, sha1sum denetimi yaptıktan ve yamaları uyguladıktan sonra inşayı sonlandır.
  • --setup: Yapılandırma adımından sonra inşayı sonlandır.
  • --build: Derleme adımından sonra inşayı sonlandır.
  • --check: Test adımından sonra inşayı sonlandır.
  • --install: Kurulum adımından sonra inşayı sonlandır.
  • --package: PiSi paketi oluştur.
Yukarıdaki güzel parametreler sayesinde yapılandırma adımında aldığınız bir hata için arşivi tekrar açmak ya da kurulum aşamasındaki bir hata için tüm kaynak kodu yeniden derletmek zorunda kalmıyorsunuz, sadece o adımı ve sonrasındaki adımları gerçekleştirmeniz yeterli. Tekrar NEWS dosyamıza dönelim. Bu dosya eğer olmadığı halde pakete dahil etmek isterseniz yukarıdaki gibi bir hata alırsınız. Bu hatanın farkına vardığınızda yapmanız gereken tek şey actions.py'yi düzeltmek ve sonrasında da sırasıyla
$ sudo pisi bi pspec.xml --install
$ sudo pisi bi pspec.xml --package
komutlarını vermek. Paketiniz hemencecik hazır. Ben geçenlerde bunu gördüm.


Kaynaklar

Yorumlar

Bu blogdaki popüler yayınlar

Fedora 24'te GRUB 2 Önyükleyici Temasını Değiştirme

Diğer Dillerde Hoşçakal

Müfettiş Gadget'taki Kötü Adamın Yüzü Açığa Çıkmış