Inštalácia software pod FreeBSD

05.04.2006 19:43

pkg_add a iný binárny pain

Asi najjednoduchší spôsob ako nainštalovať software pod FreeBSD je použitie
utility pkg_add, ktorá je štandardnou súčasťou každej inštalácie.
Ako každý vie, balíky používané fbsdčkom sú komprimované cez bzip2 a nájdete
ich hodne na každom poriadnom oficiálnom mirrore.
pkg_add ponúka dva spôsoby inštalácie balíkov. Pri prvom si daný balík
stiahnete a inštalnete cez pkg_add -v . Pokiaľ máte štastie
a balík neobsahuje žiadne závislosti. Pokiaľ ich obsahuje, je jednoduchšie
využiť stiahnutie balíka priamo cez pkg_add (resp. utilitu fetch) s tým, že
pokial program obsahuje závislosti, tieto sa stiahnu automaticky tiež.
Štandartne pkg_add používa oficialne ftp.freebsd.org, čo však nieje ideálne,
vzhľadom na rýchlosti dosahované týmto mirrorom odporúčam nastaviť mirror
slovenský. To dosiahnete pridaním riadku:

PACKAGESITE=ftp://ftp.freebsd.sk/pub/FreeBSD/ports/i386/packages/Latest/

do súboru /etc/make.conf.
Balík potom inštalnete pridaním -r. (pkg_add -rv vim)

Nevýhody takéhoto spôsobu inštalácie sú samozrejme to, že nedostanete
najnovšie verziu, a nemôžte ani ovplyvniť to ako bol balík skompilovaný a teda
aké závislosti bude vyžadovať. Takýto spôsob je výhodný iba za predpokladu, že
admin je lenivý inštalnúť porty alebo treba software nasadiť rýchlo.

Porty (/usr/src/ports)

Jedna z najvätčších vychytávok FreeBSD je systém spravovania balíkov cez takz.
porty (ports). Je to systém založený na adresárovej štruktúre, kde v prvom
levely sú kategórie softwaru, v ktorých sa nachádzajú adresáre prislúchajúce
k samotným aplikáciam. V týchto adresároch sú uložené súbory Makefile, podľa
ktorých sa daná aplikácia stiahne, nakonfiguruje a finálne skompiluje
a nainštaluje do systému. V Makefile súboroch sú premenné, ktorými sa dá
ovplyvniť výsledok kompilácie (podpora mysql, zapnutie SSL a pod.).
Inštalácia z portov vyzerá nejako takto:

cd /usr/ports/security/snort && make WITH_MYSQL=1 install clean

Výsledkom bude čerstvo upražený snort z podporov MySQL.
Samozrejme, že o porty sa treba starať a aktualizovať ich, aby sme v nich
vždy mali menej bugový software. Aktualizácia portov môže prebiehať dvoma
spôsobmi.

  • Použitím cvsupu:

    Je to systém v podstate založený na upravenom CVS, pracuje to asi tak, že
    sa pripojíte ku CVSup serveru a program porovná váš lokálny adresár
    s portami a ten na servery, pričom pokiaľ sa líšia tak sa zo servera
    skopírujú. Prakticky to vyzerá asi takto:

    1. z /usr/share/examples/cvsup si vyberieme súbor ports-supfile
    2. otvoríme si vi a zmeníme server na nejaký náš blízky.
    3. cvsup /root/ports-supfile
    4. čakáme... a po chvílke máme ports up to date
  • Použitie portsnapu:
    Pracuje na podobnom princípe ako CVSUp akurát, že je novší a podľa ľudí aj
    lepší... Každopádne je updatovanie portov cezeň o niečo rýchlejšie a aj
    jednoduchšie. Postup ako updatovať ports:

    1. portsnap fetch (urobíme iba raz, kým sme portsnap nepoužili)
    2. portsnap extract ( -- || -- )
    3. Pokiaľ máme už hotové prvé dva kroky, porty nabudúce zupdatujeme
      použitím príkazu: portsnap update.
    4. Odporúčam si ďať updatovanie portov do cronu a to cez:
      0 3 * * * /usr/sbin/portsnap -I cron update
      Čo vykoná update každé ráno o tretej.

Tips and tricks:

FreeBSd ma kopec srandovného softu na manipuláciu z balíkmi, či už
inštalnutými alebo v portoch. Napr. také pkg_version:

/usr/sbin/pkg_version -vIL=

Týmto príkazom dostanete výpis softwaru, ktorého inštalnutá verzia je staršia
ako tá v portoch a teda mali by ste upgradovať.

Ďalším pomerne zaujímavým toolom hlavne pre security je portaudit. Totiž
pokiaľ si ho inštalnete (cd /usr/ports/security/portaudit && make install
clean), bude vás upozorňovať na prípadne security bugy v danom porte a ten vám
nedovolí nainštalovať. A tiež sa vám v dennom reporte objaví kolónka Affected
Software ;-)

Linky:

FreeBSD Handbook

    • chvala 10.04.2006 | 09:18
      darkaural   Návštevník
      pekne mifo. K! :-)))
    • pekby clanek 10.04.2006 | 09:32
      damien   Návštevník

      pekby clanek

    • ano 10.04.2006 | 10:16
      Avatar patie   Návštevník

      pripajam sa. chvalim

      zivot je tazky - jeden z najtazsich
    • Fakt pekny clanok, take 19.04.2006 | 00:20
      JanoF   Návštevník

      Fakt pekny clanok, take nieco som hladal ale nikde nic, teda aspon nie v slovencine :)
      Rozmyslam nad migraciou, teda ani nie rozmyslam ale chcem migrovat z wxp na linux alebo unix, mam vyhliadnute ak linux tak gentoo alebo slack, ale skor gentoo, to sa mi viacej pozdavalo aspon z dlhsieho pouzivania, slack som skusal len chvilu, alebo ak unix tak freebsd, co by bolo vyhodnejsie, co tak sledujem na tuto temu diskusiu tak jedny pisu ze linux je lepsi a lepsie sprevodovany a iny zasa ze linux je nanic, unix je lepsi a kedze vy tu asi otom mate najvecsiu paru, ze vo co go tak sa spytam tu :o)
      Prikazovy riadok ovladam celkom, taky pokrocily zaciatocnik :-) co z toho vybrat? mozem mat trebars na tom bsdcku to iste ako trebars natom gentee/slacku?

      • slacka ber... 19.04.2006 | 11:03
        damien   Návštevník

        slacka ber...

      • ber to tak, fbsdckari vzdy 19.04.2006 | 22:07
        mifo   Návštevník

        ber to tak, fbsdckari vzdy budu vraviet ze lunix je na <> a naopak lunixaci budu to iste vraviet o fbsd ;-)

        podla mna treba skusit oboje a potom si vybrat. ja momentalne ficim gentoo na vsetkych WS a som spokojny. na serveri mam fbsd a som tiez spokojny =)

        • no ja mam za sebou red hat, 21.04.2006 | 13:39
          damien   Návštevník

          no ja mam za sebou red hat, mandrake, freebsd, openbsd, netbsd, winlinux, suse, phlack, slackware...a uz si nevzpomenu...a spokojenej jsem byl hodne se slackem, tak ho ted mam no...

    • fbzsd vs. nizke IQ 04.05.2006 | 18:53
      Avatar blackhole_ventYl   Používateľ

      ale je treba povedat, ze porty mozu byt nechutne nebezpecne, ak ich chyti do ruky kreten :) co sa mi stalo raz, ked som videl FBSD s apachom2 kdesi uplne v riti zmixovany s webstrankami a databazou, plus apache 1.3.33 niekde pod /usr/local. Potom z toho ani diva svina nevyjde.
      V tomto je binarny balicek vyhodnejsi :) stiahnes a nainstalujes a aj ked sa na hlavu postavis, inde ho nedas :)

      ---
      Riadit pracu programatorov je ako past macky.

      --- Cuchat s nadchou, to je ako sniffovat bez promiscu.