RPM Oluşturmak
Giriş Mandrake İçin RPM Oluşturmak Spec Dosyası

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

Sistem Hazırlığı

RPM oluşturmak için öncelikle sistemimizi düzenlemeliyiz. Mandrake Linux'ta RPM oluşturma işleminde de diğer işlemlerinde olduğu gibi kolaylık sağlayacak araçlar sunulmaktadır. Aksi halde elle yapılması gereken birçok şey otomatik olacak yapılacak şekilde ayarlanmıştır. Günümüzün yazılımları genellikle autoconf sistemi ile 'configure' edilirler. Bu şekilde usulüne uygun hazırlanmış paketlerin RPM yapılmasında Mandrake Linux araçları büyük kolaylık sağlarken, özellikle programcılığa yeni başlamışların sıradışı ayarları ile başa çıkmak gerekmektedir.

Mandrake Linux'ta RPM hazırlamak için şu paketlerin sistemde kurulu olmaları gerekir:

rpm - RedHat rpm programının Mandrake tarafından düzenlenmiş şekli.
rpm-build - Paket oluşturmak için gerekli scriptleri içerir.
spec-helper - İşlemleri otomatik olarak hallederek spec dosyalarını basitleştirir.
libtool - Sharedlibrary veya lib- başlangıçlı paketlerin oluşturulması için.

rpm paketi her tür kurulumda zaten bulunuyor iken, kurulum sırasında sisteminizi geliştirme için de kullanacağınızı düşünerek development-geliştirme grubunu da kurmak için seçti iseniz diğer paketler de zaten kurulu olacaktır.

RPM paketlerini oluşturmak için sisteminizde özel bir dizin ağacının bulunması gerekmektedir. Bunu oluşturmak için aşağıdaki komutu kullanmanız gerekir.

mkdir -p ~/rpm/{BUILD, RPMS/i586, RPMS/noarch, SOURCES, SRPMS, SPECS, tmp}

Burada RPMS/i586 yerine veya ek olarak başka işlemcileri de kullanabilirsiniz. Bu komut kullanıldığında home alanınızda aşağıdaki dizin ağacı oluşur:

~/rpm/BUILD - Kaynakların oluşturulduğu dizin.
~/rpm/RPMS - rpm paketlerinin oluşturulduktan sonra yerleştirileceği dizinler.
~/rpm/RPMS/i586 - i586.rpm paketlerinin bulunacağı dizin.
~/rpm/RPMS/noarch - noarch.rpm paketlerinin bulunacağı dizin.
~/rpm/SOURCES - .tar.bz2 tipi kaynak dosyalarının konulduğu dizin.
~/rpm/SPECS - .spec dosyalarının konulduğu dizin.
~/rpm/SRPMS - Oluşturulan .src.rpm paketlerinin bulunacağı dizin.
~/rpm/tmp - RPM oluşturma sırasında kullanılan geçici dizinlerin bulunacağı dizin.

Başka dağıtımlarda yaygın olarak kullanıldığı gibi RPM'lerinizi root olarak oluşturmak son derece tehlikeli bir işlemdir ve çok özel bir nedeni yoksa kullanılmamalıdır. RPM oluşturulması sırasında oluşacak çalıştırılabilir program dosyaları sisteminize yerleştirildiği için hatalı bir işlemde sisteminiz kirlenecektir. Bunun yerine rpm oluşturma dizin ağacı kullanıcının kendi alanında olmalı ve RPM oluşturulma işlemi sıradan kullanıcı olarak yapılmalıdır.

RPM oluşturma işlemini Mandrake Linux özellikleri ile home dizininizde yapabilmeniz için home dizininizde .rpmrc ve .rpmmacros dosyalarını oluşturmanız gerekir.

.rpmrc dosyası:

buildarchtranslate: i386: i586
buildarchtranslate: i486: i586
buildarchtranslate: i586: i586
buildarchtranslate: i686: i586

.rpmmacros dosyası:

%_topdir                YOUR_HOME_DIR/rpm
%_tmppath               YOUR_HOME_DIR/rpm/tmp

%_signature             gpg
%_gpg_name              Mandrakelinux
%_gpg_path              ~/.gnupg

%distribution           Mandrake Linux
%vendor                 MandrakeSoft

Burada YOUR_HOME_DIR yerine kendi home dizininizin adını yazacaksınız. Örnek:

%_topdir                /home/tanju/rpm
%_tmppath               /home/tanju/rpm/tmp

Artık sisteminiz RPM oluşturmak için hazırdır. Yalnız bu dosyaları oluştururken dikkat edin ve text dosyaları satır sonu işlemi için unix tipini seçmeyi unutmayın. cr-lf tipi satır sonu kullanırsanız garip sonuçlar ve çalışmayan rpm paketleri elde edersiniz.

 


Giriş Ön sayfa Spec Dosyası
Mandrake İçin RPM Oluşturmak

Bu ve ilişkilendirilmiş yazılar GPL lisansına göre yayınlanmaktadır. Bütün hakları yazarına aittir. Yazarının ismi belirtilerek serbestçe dağıtılabilir ve kullanılabilir. Ancak bunların hiçbiri, hiçbir şekilde ve şartta GPL lisansı haricinde kullanılamaz. Burada yer alanları bulundurmaktan, kullanmaktan veya alıntı yapmaktan dolayı hiçbir sunucu, servis veya protokol, yazı veya içeriği üzerinde hak iddia edemez. info@elektro