From: Devrim GUNDUZ (devrim@gunduz.org)
Date: Thu 04 Mar 2004 - 03:05:37 EST
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Merhaba,
Biraz uzun bir ileti olacak ama bu konuda bildiklerimi vaktim oldugu
olcude yazmak istedim:
On Thu, 4 Mar 2004, emrekadioglu wrote:
> Fedora Core 1 kullaniyorum
> Yansilardaki iso imagelarindan SRPM olanlar ile i386 olanlar
> arasinda ne kadarlik bir performans farki oluyor ya da ne fark oluyor
Onemli bir başarım farki var; zira SRPM'ler iX86'lar gibi bir binary degil
;)
Olay su: SRPM, icinde bir spec dosyasi ve yazilimin kaynak kodu (ve
gerekiyorsa yamalar) içerir. Siz onu kurduğunuz zaman,
/usr/src/redhat/SPECS dizini altina, paket_adi.spec diye bir dosya ve
/usr/src/redhat/SOURCES altina da kaynak kodlarini yerlestirir:
Örnek:
=====
[root@devrim srpms]# uname -a
Linux devrim 2.4.22-1.2115.nptl #1 Wed Oct 29 15:42:51 EST 2003 i686 i686
i386 GNU/Linux
[root@devrim srpms]# rpm -ivh sim-0.8.3-1.rh.src.rpm
1:sim ###########################################
[100%]
[root@devrim srpms]# cd /usr/src/redhat/SPECS/
[root@devrim SPECS]# ls
sim-0.8.3-1.rh.spec
[root@devrim SPECS]# cd ../SOURCES/
[root@devrim SOURCES]# ls
sim-0.8.3-symbol.patch sim-0.8.3.tar.gz
[root@devrim SOURCES]#
=====
Gordugunuz gibi, sources icinde bir yama da var.
Bu spec dosyasi, kendiniz icin ozellestirebileceginiz bir paket yapmaniza
yardimci olur. Hani birileri der ya, "ben XXX dagitiminda istedigim
sekilde derlerim yazilimi", bu SRPM ile daha da derli toplu yapilir: Paket
yoneticisinin tum artilarini kullanirsiniz ustune.
Ornek bir spec dosyasi (tamam hepsini yazmayacagim buraya :)) )
===============================
Name: sim
Version: 0.8.3
Release: 1.rh%{releas
...
%prep
export QTDIR=/usr/lib/qt-3.1
%setup
%patch0 -p0
make -f admin/Makefile.common
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" ./configure $LOCALFLAGS
%build
# Setup for parallel builds
numprocs=`egrep -c ^cpu[0-9]+ /proc/stat || :`
if [ "$numprocs" = "0" ]; then
numprocs=1
fi
make -j $numprocs
%install
make install-strip DESTDIR=$RPM_BUILD_ROOT
===========
Bakin, bu dosyayi duzenleyerek istediginiz sekilde paketi
derleyebilirsiniz. Isterseniz kendi yamalarinizi ekler (patch0 -p0 gibi),
isterseniz configure betigine istediginiz parametreleri eklersiniz.
Spec dosyasini duzenledikten sonra,
rpmbuild -b{a,b} --target {iX86,noarch...} /usr/src/redhat/SPECS/paket_adi.spec
ile de kendi paketinizi yaratabilirsiniz.
- -ba : Build All anlamina gelir. -ba ile, hem binary paket yaparsiniz, hem
de yaptiginiz degisiklikleri de iceren spec dosyasini barindiran yeni bir
SRPM yaparsiniz. Bu degisiklikleri baska sistemlerde de yapmaniza gerek
kalmaz boylece; olusturdugunuz SRPM'i bir de yeni sisteminizde
derlersiniz, ayni sekilde.
Bu sekilde yapilan SRPM'ler /usr/src/redhat/SRPMS dizini altina atilir.
- -bb : Build Binary anlamina gelir. Sadece binary paketler yaratilir. UStte
anlattigim SRPM'e gereksinmeniz yoksa bunu kullaniniz. Paketler,
/usr/src/redhat/RPMS/{target'tan sonra yazdiginiz mimari} dizinine atilir.
Ornek: --target i686 demisseniz, /usr/src/redhat/RPMS/i686 dizini altina
atilir RPM(ler).
Bu arada kucuk bir not: Eger spec dosyasi icinde sadece belirli bir target
belirtilmisse, sizin verdiginiz -target parametresinin bir gecerliligi
olmaz. O target icin build edilir paket.
Eger siz spec dosyasini duzenlemeden direk olarak rpm yapmak isterseniz, o
zaman da
rpmbuild --rebuild --target {iX86,noarch...} paket_Adi....src.rpm
demeniz yeterlidir. Bu durumda, ustteki -bb kisminda anlatilanlar
gecerlidir. Paketler belirtilen dizinde olacaktir.
Yine onemli bir not: Eger siz target belirtmezseniz, tum paketler i386
icin derlenir.
Bu arada, bazi yazilimlar kaynak kodlari ile birlikte bir spec dosyasini
barindirabilirler. SIkIstIrIlmıs dosyadan bahsediyorum. Eger boyle bir
spec dosyasi varsa, siz direk olarak rpm yapabilirsiniz:
rpmbuild -t{a,b} --target {iX86,noarch...} yazilim...tar.gz
- -ta ve -tb, ustteki -ba ve -bb ile ayni sonuclari dogurur.
RPM paket yoneticisi ile ilgili bir sunuma,
http://seminer.linux.org.tr/seminer-notlari/rpm.sxi
adresinden ulasabilirsiniz.
Umarim yardimci olmustur bu bilgiler. (Enver, bunu SSS'e
(http://sss.linux.org.tr) koysak iyi olacak)
Saygilar.
- --
Devrim GUNDUZ
devrim@gunduz.org devrim.gunduz@linux.org.tr
http://www.TDMSoft.com
http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQFARuNTtl86P3SPfQ4RAgmbAJ9XQlEI4KUcqEHameaL0OvnPUEvWwCcCbbd
okOaxt1H820rGtRJqtqRnLE=
=Dty6
-----END PGP SIGNATURE-----
--- linux-baslangic listesinden cikmak ve tum listeci islemleri icin http://liste.linux.org.tr/ adresini kullanabilirisniz. Bu listeden cikmak icin <a href="mailto:linux-baslangic-request@liste.linux.org.tr?Subject=unsubscribe"> tiklayiniz</a>