![]()
From: Devrim GÜNDÜZ (devrim@gunduz.org)
Date: Thu 10 Aug 2006 - 14:28:42 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Merhaba,
On Thu, 10 Aug 2006, yaşar tunçez wrote:
> rehdat için indirdiğim bir paket *.src.rpm şeklinde. Bu şekildeki kaynak
> paketleri direk kurabilir miyim? Yoksa önce rpm olarak derlemem mi
> gerekiyor? rpmbuild şeklinde bir komut ile derleniyor diye bir şeyler okudum
> ama sistemimde rpmbuild diye bir paket kurulu değil.
(İletiyi görünce Necdet Yücel geldi aklıma... Hocam şimdi tembellik
etmeden bu iletiye bir yanıt yazayım, sonra bunları toplar ve istediğiniz
şekilde bir belge haline getirebilirim)
Kısa yanıt: Hayır ikili (binary) olarak kuramazsınız. srpm'de sadece
kaynak dosya, spec dosyası ve varsa yamalar mevcuttur.
rpm-build paketini yüklerseniz rpmbuild komutu gelir. Ancak paket derlemek
o kadar da kısa sürecek bir işlem olmayabilir. Bir paketin derlenmesi için
gerekecek birkaç ek paket (-devel paketleri) olacaktır. Bu paketler
sisteminizde yoksa bunları da paket yönetim aracınızla (up2date, yum)
kurmanız gerekecek. Hangi paketleri kuracağınızı size rpmbuild söyler
zaten.
Şimdi konu şu:
rpmbuild --rebuild --target i686 x.src.rpm
Açıklaması:
- --target -> İlgili mimari için özel derler. Buraya ppc ise ppc
yazabilirsiniz. 64 bir makinanız varsa x86_64 yazarsınız. Ancak öntanımlı
değerler de var. 32 bit makinalarda bu i386'dır. Yani --target ile birşey
yazmazsanız o zaman i386 optimize şekilde rpm'ini oluşturulur. 64 bit
sistemlerde de x86_64 yazmanıza gerek yoktur bu şekilde.
- --target sonucu oluşan RPM, /usr/src/redhat/RPMS/ altındaki ilgili
mimarinin dizinine yazılır. Örnek: /usr/src/redhat/RPMS/i386 . Bir de
noarch vardır. phpPgAdmin gibi bir mimariye bağlı olamayacak ya da sadece
belgelerden oluşan paketler bu şekilde noarch olur (mimari bağımsız)
- --rebuild ise .src.rpm'in bu şekilde rpm yapılmasını sağlar. Birçok SRPM,
bazı makrolar içerebilir. Size PostgreSQL RPM'lerinden bir örnek
vereyim:
%{!?ssl:%define ssl 1}
Bu şu demek (spec dosyası açısından) Eğer rpmbuild ile spec dosyasına ssl
ile ilgili bir değer gönderilmez ise bunun değerini 1 yap.
Örneğin şunu yazabilirsiniz:
rpmbuild --rebuild --define 'ssl 0' x.src.rpm
Bu da ilgili makronun değerini değiştirir. Ama dediğim gibi bu her spec
dosyasında geçerli değildir.
Kısaca böyle, atladığım ve şimdi yazmadığım birçok şey var, bunu Necdet
hocama söz verdiğim belgede yayınlarım.
Saygılar,
- --
Devrim GUNDUZ
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFE20Ki4zE8DGqpiZARAkaaAKCA7/lb8jeJPv7z/ecmXSOPXtZ9nwCeKUzP
40wIcMjOdwnqQ81Uu5KbXDs=
=nZfk
-----END PGP SIGNATURE-----
_______________________________________________
Linux mailing list
Linux@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux
![]()