[linux-baslangic] Ynt: Re: SRPM ve i386

---------

From: emrekadioglu (emrekadioglu@mynet.com)
Date: Thu 04 Mar 2004 - 17:09:50 EST

  • Next message: emrekadioglu: "[linux-baslangic] Ynt: proxy adresine ihtiyacim var"

    Merhaba,

    Birincisi yazdiklariniz için teşekkürler rpm derlemeyi biliyodum
    ama yine de bu konu hakkinda güzel bi manualim oldu :)

    Yanliz devrim bey benim merak ettiğim SRPM ve i386 lar arasinda normal
    kullanimda
    ne kadarlik bir performans farki olduğuydu
    iso lari çekerken ilk iso yu farketmeden i386 olarak çektimiştim bende
    üşenip diğerlerini de i386 olarak çektim merak ettiğim şey normal
    kullanimda ne gibi bir fark olacağıydı Tekrar Teşekkürler

    İyi Çalışmalar,
    <br><BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT:
    #000000 2px solid"><br> ----- <b>Özgün İleti</b> -----<br><b>Kimden :</b>
    linux-baslangic@liste.linux.org.tr<br><b>Kime :</b>
    linux-baslangic@liste.linux.org.tr<br><b>Gönderme tarihi :</b> 4/03/2004
    10:05<br><b>Konu :</b> [linux-baslangic] Re: SRPM ve
    i386<br><pre>-----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,
    <a href="http://seminer.linux.org.tr/seminer-notlari/rpm.sxi"
    target="_blank">http://seminer.linux.org.tr/seminer-notlari/rpm.sxi>
    adresinden ulasabilirsiniz.

    Umarim yardimci olmustur bu bilgiler. (Enver, bunu SSS'e
    (<a href="
    http://sss.linux.org.tr"
    target="_blank">http://sss.linux.org.tr>) koysak iyi olacak)

    Saygilar.
    - --
    Devrim GUNDUZ
    <a
    href="../src/compose.php?send_to=devrim%40gunduz.org&unique_id=6b88ef319ab825fd5d82752e02b0c629">
    devrim@gunduz.org</a>
                                   <a
    href="../src/compose.php?send_to=devrim.gunduz%40linux.org.tr&unique_id=6b88ef319ab825fd5d82752e02b0c629">devrim.gunduz@linux.org.tr</a>
                            <a href="http://www.TDMSoft.com"
    target="_blank">http://www.TDMSoft.com>
                            <a href="
    http://www.gunduz.org"
    target="_blank">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
    <a href="http://liste.linux.org.tr/"
    target="_blank">http://liste.linux.org.tr/>   adresini
    kullanabilirisniz.
    Bu listeden cikmak icin
    <a href="mailto:<a
    href="../src/compose.php?send_to=linux-baslangic-request%40liste.linux.org.tr&unique_id=6b88ef319ab825fd5d82752e02b0c629">linux-baslangic-request@liste.linux.org.tr</a>?Subject=unsubscribe">
    tiklayiniz</a>
    </pre>
    ---
    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>
    

  • Next message: emrekadioglu: "[linux-baslangic] Ynt: proxy adresine ihtiyacim var"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.