Job / Praca

    pkg_comp czyli Bezpieczny update paczek w NetBSD

    Update paczek w NetBSD to temat rzeka, jest kilka programów w samym pkgsrc (pkg_chk, pkgmanager), jednak zawsze wi??e si? to z ryzykiem odinstalowania paczki i b??dem przy kompilacji (czasem bardzo d?ugotrwa?ej) nowej. Dlatego te? poni?ej opisz? moim zdaniem najbezpieczniejszy sposób update’u. Zak?adam, ?e masz dzia?aj?ce NetBSD z jakimi? tam paczkami.

    Co nam b?dzie potrzebne:

    1. pkg_chk
    2. pkg_comp
    3. pkg_tarup
    4. audit-packages
    5. setsy z nasza wersj? NetBSD

    Howto:

    1. Instalujemy to co w punktach 1,2,3,4 akapit wy?ej w standardowy sposób:

    cd /usr/pkgsrc/pkgtools/pkg_chk && make install clean
    cd /usr/pkgsrc/pkgtools/pkg_comp && make install clean
    cd /usr/pkgsrc/pkgtools/pkg_tarup && make install clean
    cd /usr/pkgsrc/security/audit-packages && make install clean

    2. Sciagamy najnowsze vulnerability-list

    download-vulnerability-list

    3. Tworzymy wzór konfiguracji pkg_comp (domy?lnie w $HOME/pkg_comp)

    pkg_comp maketemplate
    pkg_comp: /usr/home/cancer/pkg_comp/default.conf created. Edit the file by hand now.

    4. Domy?lne ustawienia w wi?kszo?ci s? w porz?dku, odnajd? tylko linijk? DISTRIBDIR=”/var/pub/NetBSD” i zmie? scie?k? na tak? gdzie b?dziesz trzyma? setsy, ja to wrzucam zaraz obok configa czyli w moim przypadku linijka ta wygl?da tak:

    DISTRIBDIR="/usr/home/cancer/pkg_comp"

    Wa?ne aby katalog nie ko?czy? si? slashem i aby w katalogu pkg_comp znajdowa? si? katalog binary (nie sets, ani i386 ani nic podobnego)

    5. Sciagamy z ftp.netbsd.org setsy dla w?a?ciwej wersji NetBSD czyli dla currenta np (stan na dzien 28 maja 2007)

    wget -r ftp.netbsd.org/pub/NetBSD-daily/HEAD/200705240000Z/i386/binary/

    Po ?ci?gni?ciu robimy porz?dek (poniewa? w $HOME/pkg_comp b?dzie ca?a scie?ka do binary a nie sam binary ;)

    6. Je?li do tej pory wszystko jest dobrze to powinno nam si? teraz utworzy? ?rodowisko w którym b?dziemy budowa? swoje nowe paczki bez konfliktu z istniej?cymi.

    pkg_comp makeroot

    Po tym poleceniu nast?pi utworzenie katalogu w /var/chroot, zostan? tam rozpakowane setsy i zainstalowane podstawowe programy (digest).

    7. W?a?ciwie mo?na by juz teraz zacz?? budowa? paczki, ale przed tym zróbmy backup obecnie zainstalowanych (ostro?no?ci nigdy za wiele)

    cd
    mkdir backup
    cd backup
    pkg_tarup -d ./ \*

    Ostatnie polecenie stworzy nam *.tgz ze wszystkich zainstalowanych w naszym systemie programów w katalogu w którym akurat si? znajdujemy.

    8. Sprawdzamy co wymaga update’u…

    pkg_chk -i

    9. … i budujemy now? paczke (za?ó?my ?e b?dzie to tcsh)

    pkg_comp build shells/tcsh

    Budowa paczki z pkg_comp wygl?da mniej wi?cej tak samo jak instalowanie z pkgsrc z t? ró?nic?, ?e dostajemy gotow? paczk? *.tgz do zainstalowania przez pkg_add. Gotowe paczki znajduj? si? w /usr/pkgsrc/packagaes/All.

    10. Update’ujemy tcsh.

    pkg_info | grep tcsh
    cd /usr/pkgsrc/packages/All
    pkg_add -u tcsh.tgz
    pkg_info | grep tcsh

    Oczywi?cie pierwsz? i ostatnia linijk? mo?na pomin??, s?u?? one tylko do pokazania wersji i zweryfikowaniu czy update nam zadzia?a?. tcsh.tgz równie? b?dzie nazywa?o sie inaczej, ale pisz? to z pami?ci wi?c tylko taki przyk?ad :)

    I to by by?o na tyle, w razie problemów prosz? o maila lub mo?na mnie z?apa? na ircu.

    Related Posts with Thumbnails

    Share article:

    Permalink:

    Comments

    1. Czesc!

      Napisze po angliesku, bo moj polski jest troche „rusty” ;-)
      Thanks for the great article! But I have one question: How do you update packages then? Let’s say you compiled apache, and a few weeks later there’s a new version out there. If I run again pkg_comp build www/apache2 it complains that it was already installed. The way I am doing it right now is to pkg_comp chroot deinstall apache, exit chroot and pkg_comp build… again. Maybe you know a better way?

      Dziekuje, i pozdrowienia!
      Damian

    Leave a Reply

    Add your widget here