Yeni deb paketimizi aşağıdaki komutla oluşturalım. (Ve hata olmaması için dua edelim.) Komutu çalıştırdığınızda "permission denied" hatası alırsanız geçici olarak /usr/local/src dizinini chown -R kullanıcı_adınız /usr/local/src ile giriş yapmış olduğunuz kullanıcıya verin. Daha sonra tekrar root kullanıcısına verirsiniz. Derleme işlemi bir süre daha devam edecektir.
| Not |
---|
-us -uc seçenekleri oluşturulan paketleri şifreleyip imzalamanızı engeller.
|
$ dpkg-buildpackage -us -uc -rfakeroot
Derleme işlemi tamamlandığında, /usr/local/src dizinine çıkın. root olarak veya root haklarınızı kullanarak (sudo) tüm php4 paketlerinizi yükleyin. Unutmayın: Bundan sonra tüm php paketleriniz için Debian ağacını değil kendi paketlerinizi kullanmalısınız. Özellikle de kendi php4-sürüm.deb paketi ve ek modül paketlerini kurmanız gerekecek. Bir kere bu işlemi becerdikten sonra güvenlik ve ek modül gereksinimlerinizde, PHP sürümünü yükseltmek için yine Debian ağacından kaynak paketi indirip sadece yukarıda özelleştirmiş olduğumuz rules, control ve modules dosyalarını ilgili dizine atıp derleyerek paketlerinizi yeniden oluşturmalısınız.
Hata var ise: RedHat ve benzeri RPM tabanlı dağıtımlarda çoğunlukla hatanın temel sebebi geliştirme paketlerinin eksik yüklenmiş olmasıdır. Halbuki Debian sistemde yukarıda çalıştırdığımız komut (apt-get build-dep php4) eksik paket kalmasını engeller.
| Önemli |
---|
Bir önemli hata sebebi ise, Java kurulumunda ld ile alakalı olarak bazı kütüphanelerin bulunamaması olabilmektedir. Özellikle tavsiyem her Java kurulumundan sonra Java kurulum dizinine geçilerek ldd ile aşağıdaki dosyaların kontrol edilmesidir. Örneğin, ldd libjava.so, ldd libverify.so, ldd libzip.so komutları nedense sürekli hata verir. Bu komutların çıktıları aşağıdaki gibi temiz olmalı ve hiç "Not Found" hatası alınmamalıdır. Aşağıda hatalı ve düzgün iki örnek verilmiştir. İlk örnekten de anlaşılacağı gibi ben her ihtimale karşın önceden libjava.so, libjvm.so, libverify.so dosyalarını /lib dizinine kopyalamıştım. Sembolik bağ da oluşturabilirsiniz. Ancak en önemlisi ld.so.conf dosyasının yukarıda anlatıldığı şekilde düzenlenmesi ve ldconfig komutunun çalıştırılmasıdır.
Başarılı örnek:
pokemon:/usr/lib/j2sdk1.4-sun/jre/lib/i386# ldd libjava.so
libjvm.so => /lib/libjvm.so (0x4002b000)
libverify.so => /lib/libverify.so (0x40455000)
libnsl.so.1 => /lib/tls/libnsl.so.1 (0x40467000)
libdl.so.2 => /lib/tls/libdl.so.2 (0x4047b000)
libc.so.6 => /lib/tls/libc.so.6 (0x4047e000
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x405d4000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
Başarısız örnek:
pokemon:/usr/lib/j2sdk1.4-sun/jre/lib/i386# ldd libjava.so
libjvm.so => /lib/libjvm.so (0x4002b000)
libverify.so => not found
libnsl.so.1 => /lib/tls/libnsl.so.1 (0x40455000)
libdl.so.2 => /lib/tls/libdl.so.2 (0x40469000)
libc.so.6 => /lib/tls/libc.so.6 (0x4046c000)
libm.so.6 => /lib/tls/libm.so.6 (0x405a0000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x405c2000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
|
Başarılı bir derleme aşağıdaki gibi sonlanır ve /usr/local/src dizini altında bir sürü php-XXX.deb paketi oluşur.
dh_lin
dh_compress -Xphp.ini
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package `php4' in `../php4_4.3.10-9_all.deb'.
dpkg-deb: building package `php4-pear' in `../php4-pear_4.3.10-9_all.deb'.
dpkg-genchanges
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT included)
Bende aşağıdaki paketler oluşturulmuş durumda:
pokemon:/usr/local/src# ls -1
caudium-php4_4.3.10-9_i386.deb
libapache2-mod-php4_4.3.10-9_i386.deb
libapache-mod-php4_4.3.10-9_i386.deb
php4-4.3.10
php4_4.3.10-9_all.deb
php4_4.3.10-9.diff.gz
php4_4.3.10-9.dsc
php4_4.3.10-9_i386.changes
php4_4.3.10.orig.tar.gz
php4-cgi_4.3.10-9_i386.deb
php4-cli_4.3.10-9_i386.deb
php4-common_4.3.10-9_i386.deb
php4-curl_4.3.10-9_i386.deb
php4-dev_4.3.10-9_i386.deb
php4-domxml_4.3.10-9_i386.deb
php4-gd_4.3.10-9_i386.debian
php4-imap_4.3.10-9_i386.deb
php4-java_4.3.10-9_i386.deb
php4-ldap_4.3.10-9_i386.deb
php4-mcal_4.3.10-9_i386.deb
php4-mhash_4.3.10-9_i386.deb
php4-mysql_4.3.10-9_i386.deb
php4-odbc_4.3.10-9_i386.deb
php4-pear_4.3.10-9_all.deb
php4-recode_4.3.10-9_i386.deb
php4-snmp_4.3.10-9_i386.deb
php4-sybase_4.3.10-9_i386.deb
php4-xslt_4.3.10-9_i386.deb