RPM Oluşturmak
Mandrake İçin RPM Oluşturmak Sistem Hazırlığı

RPM Oluşturmak - 050112
Tanju Taşçılar - tanju@elektronist.com
Registered Linux User #283274

Mandrake İçin RPM Oluşturmak

Giriş
Sistem Hazırlığı
Spec Dosyası
Yöntemler
.src.rpm'den RPM
Tarball'dan RPM
    Örnek 1: gerbv
    Örnek 2: muhasebeci
Diğer Yöntemler
Yamalar
Test ve Sonrası
Kaynaklar

Giriş

Bu yazıda esas olarak RPM kurulumu değil RPM paketlerinin oluşturulması üzerinde durulacaktır. Bu yazı RPM hazırlamanın kullanım kılavuzu olarak düşünülmemelidir, RPM hazırlamayı örneklerle anlatan ve bunu yaparken de özel olarak da Mandrake Linux için RPM hazırlamanın diğerlerinden farkını belirten bir yazıdır.

Linux'ta program kurmanın klasik yöntemi programı kaynak kodundan derleyerek kurmaktır. Genel olarak C dilinde olmakla beraber Linux'ta derleyicisi bulunan herhangi bir dilde yazılmış program veya program paketleri make programı aracılığı ve çeşitli scripter desteği ile her Linux kullanıcısının eninde sonunda öğreneceği;

./configure
make
make install

işlem sırası ile kurulur. Ancak... Linux, diğer başka işletim sistemleri gibi monolithic - tek parça bir işletim sistemi olmadığı ve her kullanıcının isteği veya ihtiyacı doğrultusunda bileşenlere sahip olduğu için kurulacak olan program veya program paketinin bağımlı olduğu ve kurulması veya kullanılabilmesi için sistemde olması gereken paketler olmaktadır. Bir paketi sistemine kuran herkes bu bağımlılıkları halletmek zorundadır ve bu her zaman kolay olmamaktadır. Ayrıca bir programı her kullanıcının bilgisayarına kurması için aynı işlemi uygulamak zorunda olması en azından zaman ve enerji kaybına yol açmaktadır. İşte bu olumsuzlukları aşmak için Slackware dağıtımını temel alarak kendi dağıtımını geliştiren RedHat, Redhat Package Management - RPM adı ile kendi paket sistemini geliştirdi ve bu sistem gelişerek günümüzde birçok dağıtımın temel yazılım kurma sistemi haline geldi.

RPM sisteminin temelinde derlenmiş ve belirli bir sistemde çalıştırılmış olan dosyaların benzeri sisteme yüklenmesi gibi basit bir düşünce yatmakta iken, esnek ve kullanışlı yapısı nedeniyle yapabilecekleri çok daha fazladır. Bir RPM paketi kurulurken yalnızca belirli dosyaları belirli yerlere yerleştirmekle kalmaz aynı zamanda çeşitli programları da çalıştırarak gerekli düzenlemeleri de yapar.

RPM sistemini kullanan dağıtımlar hızla gelişen Linux'un gelişme süreci içinde yetersiz yanları ortaya çıkan bu sistemi daha da geliştirerek kullanma yoluna gitmişlerdir. Mandrake Linux RPM sistemini paket bilgilerini 'havuz'larda toplayarak RedHat'in günümüze kadar pek değiştirmeden kullandığı sistemi özellikle bağımlılıklar açısından düzelterek geliştiren URPM (User RPM) sistemini kullanmaktadır. Bu sayede kurulacak olan paketin bağımlı olduğu paket sistemde kayıtlı havuzda bulunuyorsa oradan alıp kullanarak program kurulumunu büyük ölçüde rahatlatmıştır. Mandrake Linux'un bu işlem için Program Kur ve Program Kaldır yardımcıları ile program kaynaklarının düzenlenmesi için yardımcıları bulunmaktadır. Bu işlemler grafik kullanıcı arabirimleri aracılğı ile olduğu kadar urpmi, urpme gibi konsol komutları ile de kolaylıkla yapılabilmektedir.

Mandrake Linux kullanıcılarının urpm sisteminden en iyi şekilde yararlanabilmeleri için paket kurulumunu RedHat veya diğer RPM kullanan dağıtımlardaki gibi değil Mandrake usulü yapmaları gerekir. Mandrake Linux kullanıcılarının kurulum yapacakları RPM'leri arayıp bulacakları Mandrake'nin kendi kaynaklarını kullanmaları gerekir. Mandrake Linux GPL lisansına bağlıdır ve paketli versiyonlarında bulunan ve sadece GPL lisanslı olmadıkları için herkese açık olmayan bazı paketler dışında yaklaşık 60.000 kadar paket Mandrake'nin FTP sitelerinde bütün kullanıcılara açıktır.

RPM paketlerinin kurulumu ister klasik yöntemle ister grafik arabirimle yapılsın oldukça kolay bir işlemdir. Sıradan Linux kullanıcıları RPM paketlerini kurma ve kaldırma işlemlerini daha başta öğrenirler. Oysa bu kadar kolaylık sağlayan paketlerin hazırlanması ne yazık ki kullanılmaları kadar basit ve kolay değildir. Hatta bazen çok zahmetli bir iş halini alabilir. Her ne kadar RPM paketlerinde derlemesi yapılmadan kullanılabilecek dosyaların veya programların da kullanılabilmesi mümkün ise de büyük bir çoğunlukla program paketlerinin kaynak kodlarını içeren ve derlenmesi gereken .tar.gz veya .tar.bz2 dosyaları kullanılmaktadır ve bunların büyük çoğunluğu da C dilinde kaynak kodları içermektedir. Bu nedenle RPM yapılacak bir paketin öncelikle klasik ./configure - make - make install ile kurulup denenmesi ve sorunsuz olarak çalışıyor olması gerekmektedir. RPM oluşturacak birinin pek de kolay olmayan bu klasik işte yeterince 'pişmiş' olması gerekir.