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:
Kaynaklar
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 :)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
# | |
# Licensed under the GNU General Public License, version 3. | |
# See the file http://www.gnu.org/copyleft/gpl.txt | |
from pisi.actionsapi import cmaketools | |
from pisi.actionsapi import pisitools | |
from pisi.actionsapi import get | |
def setup(): | |
cmaketools.configure() | |
# varsa diğer yapılandırma işlemleri | |
def build(): | |
cmaketools.make() | |
# varsa diğer inşa işlemleri | |
def install(): | |
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR()) | |
pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README") | |
# varsa diğer kurulum işlemleri |
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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Paket test ediliyor... | |
Kuruluyor... | |
Sandbox açık inşa... | |
DEBUG: "install -m0755 -o root -g root exe/bitfighter /var/pisi/bitfighter-015a-1/install/opt/bitfighter" dönüş değeri 0 | |
"installer/screenshots/*" ile eşleşen bir dosya bulunamadı. | |
Traceback (most recent call last): | |
File "/home/maidis/Gelistirme/paketler-maidis/games/bitfighter/actions.py", line 19, in install | |
pisitools.insinto("/opt/bitfighter/screenshots", "installer/screenshots/*") | |
File "/usr/lib/pardus/pisi/actionsapi/pisitools.py", line 245, in insinto | |
raise FileError(_("No file matched pattern \"%s\".") % sourceFile) | |
pisi.actionsapi.pisitoolsfunctions.FileError: "installer/screenshots/*" ile eşleşen bir dosya bulunamadı. | |
Action script error caught. | |
*** 1 hata, 1 uyarı | |
Program sonlandırıldı. | |
Genel yardım için lütfen 'pisi help' komutunu kullanınız. |
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.
$ sudo pisi bi pspec.xml --installkomutlarını vermek. Paketiniz hemencecik hazır. Ben geçenlerde bunu gördüm.
$ sudo pisi bi pspec.xml --package
Kaynaklar
Yorumlar
Yorum Gönder
sen de yaz yaz yaz buraya yaz bütün sözlerini