[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: deb Paketlerinde Konfigurasyonun Yapılması



Merhaba,

Elimden geldigince ifade etmeye calisayim. Aslinda biraz derin bir konu
ama biz kabasini almis olalim :)

Kaynak kodu alip yeniden derlemek icin oncelikle "sources.list"
icerisinde deb-src ile baslayan depo adreslerinin bulunmasi gerekir.

paketi sisteminizde kaynak kodundan tekrar derleyip .deb dosyasini
olusturabilmek icin o pakete ait tum bagimliliklarin sisteminizde
olmasi gerekir. Bunun icin;

# apt-get build-dep <paket_ismi> (apt-get build-dep php4 gibi)

<paket_ismi> ile ifade edilen pakete ait (sisteminizde olmayan) tum
bagimliliklari indirir. Bu duruma gore epeyce bir download gerektirebilir.
Hangi paketlere bagimli oldugu paketin kaynak kodunu indirdiginiz yerde
"debian" dizinindeki "control" dosyasinda "Build-Depends:" seklinde
yer alir.

*Paketde herhangibir degisiklik yapmadan derlemek icin;

# cd <paket_ismi>-version (cd php4-4.3.10 gibi)
# dpkg-buildpackage -b -uc

komutu ile paketi olusturabilirsiniz.

NOT-1 : apt-get -b source <paket_ismi> (paketin kaynak kodunu indirir
ve derler). Yani degisiklik yapmadan derlemek icin;

NOT-2 : dpkg-buildpackage "dpkg-dev" paketinin icerisinden cikar.

# apt-get build-dep <paket_ismi>
# apt-get -b source <paket_ismi>

Yeterli olur. Daha sonra da "dpkg -i <paket_ismi>..." seklinde
kurabilirsiniz.

Sayet paketde degisiklik yapacaksaniz onceki komutlarin yerine;

# cd <paket_ismi>-version/debian (cd php4-4.3.10/debian gibi)
# rules dosyasini duzenleyiniz.
# cd ..
# dpkg-buildpackage -b -uc

*Hangi durumlarda paketi bu sekilde derlemek gerekir?

- Paket icin varsayilan configurasyon ayarlari sizin ihtiyacinizi
karsilamiyorsa ozel parametrelerde ilave etmek veya cikarmak istiyorsaniz.

- Varolan pakete yama (patch) yapmak istiyorsaniz.

- Varolan paketleri kendi sisteminize gore optimize etmek icin yapabilirsiniz.

*Kendi olusturdugum paketin depolardaki guncellemelerden etkilenmemesini
nasil saglarim?

1- apt-pinning ozelligini kullanarak su isimli paketin su versiyonunu surekli
sistemde tut onu hicbirsekilde guncelleme diyebiliriz.

2- echo "<paket_ismi> hold" | dpkg --set-selections

3- Paketi olustururken depoda olmayan farkli bir isim verilebilir.

"php4-4.3.10-1.serdar" gibi.

Aksi taktirde guncellemelerde kendinizin olusturdugu paketi kaybedebilirsiniz.
Bu durumda sistemin calismasi aksayabilir vs.

Sonuc : Sizin tarafinizdan olusturulan paket Gayri-Resmi olacaktir. Ozellikle
rules dosyasini editlemek, ilaveler yapmak sakincali sonuclar da ortaya
cikarabilir. Paketi bu sekilde yeniden duzenleyecek kadar kurcalamak ciddi
tecrube gerektirir.

Bu paketler mumkun olan en ince ayrintisina kadar dusunulup, cok uzun
sure test edilmis paketlerdir. Rules dosyasi vb. dosyalar ile fazla oynanmasi
iyi degil :)

En Cok Hangi Durumda Kaynak Koddan Derleme Yapilir?

-Siz kararli (stable) bir sistem kullaniyorsunuz ancak aradiginiz paket sadece
testing deposunda var bu durumda testing deposundan o paketin kaynak kodunu
indirip kendi kararli sisteminizdeki kutuphaneler ile yeniden derlenmesini
saglayabilir. Kararli depodaki kutuphaneleri kullanan bir paket elde etmis
olursunuz. *Bu durum da her paket icin uygulanmayabilir*. Ayrica yine paketi
gayri-resmi olmaktan kurtaramaz.

Kararli (stable) surum icin artik Gunumuzde backports.org, apt-get.org,
volatile.debian.net gibi cozumler de mevcut oldugu icin bu islere
cokta gerek kalmiyor. Bunlardan baska;

- Qmail gibi lisans sorunu olan paketleri kaynak koddan yeniden derlemek gerekir.
- Yine Qmail gibi genelde yama gerektiren yazilimlarda bu islem uygulanir. Ancak bu
tur paketlerde cok istisnadir.

Konuyu bu sekilde uzatmak mumkun...

Bence Debian Paketleri ile ilgili derinlemesine isleri Debian Developer'larina
birakmakta fayda var :) Ancak bu konularin bilinmeside Debian ufku acisindan onemli.

--
Saygilarimla,
Serdar Aytekin

> Merhaba,
>
> apt-howto dökümanına göz attım. Kaynak paketleri indirim onları biraz
> inceledim. debian klasörü altındaki rules dosyasında kurulum parametreleri
> bulunuyor. Bunları değiştirmem yeterli olacak sanırım. Bir de benim asıl
> merak ettiğim şu: "Ben kurulumu kendi istediğim ayarlara göre yapacağım.
> Bundan sonra bu paketin güncelemesi yapıdığında otomatik olarak benim
> ayarlarıma göre mi güncellenecek? Yoksa her güncelleme çıktığında benim yine
> rules dosyasını değiştirip kaynak paketten kurmam mı gerekecek?" Tabii
> ikinci durum söz konusuysa zaten eskiden olduğu gibi kaynak kodundan kurarak
> devam edip güncellemeleri de yazdığım betiklerle halletmem daha kolay bile
> olur. Bu durum için sizler ne önerirsiniz?
>
> İyi çalışmalar.
> Ulaş Vural



Reply to: