OpenBSD tarkvara kompileerimine
Sisukord
Sissejuhatus
Kuna OpenBSD on vaba tarkvara, siis on võimalik kasutajal operatsioonisüsteem, st tuum ja kasutajamaa (ingl. k. userland) kompileerida lähtetekstidest. Selle tegevuse praktilist vajadust peab iga kasutaja ise hindama, reeglina tavakasutuse puhul ei ole see vajalik. Kogu süsteemi kompileerimisega võiks tegeleda näiteks sellistel põhjustel
- hoida süsteem vastavuses CVS'i stable haruga
- tekitada konkreetsele arvutile arvestatavat koormust, et veenduda süsteemi korrektses toimimises
Lisaks annab OpenBSD kompileerimisest ettekujutuse omamine parema lähtepunkti lähtetekstidena jagatavate errata paikade juurutamiseks.
Süsteem tuleb kompileerida ja uuendused kasutusele võtta sellises järjekorras
- kompileerida uus tuum
- alglaadida arvuti uue tuumaga
- kompileerida uus kasutajamaa
- tingimata pole vajalik just alglaadimise teel tagada, et uued teegid kasutusele võetakse, aga nii on ilmselt kõige otsekohesem
OpenBSD lähtetekstide kopeerimine
OpenBSD tarkvara lähtetekstid saab kopeerida anonüümsest CVSi hoidlast, soovitatav on seda teha kahes etapis
- kopeerida reliisile vastav osa ftp peeglist
- rakendada reliisile CVSist uuendus (ingl. k. update)
Operatsioonisüsteemi kasutajamaale (st kõik va tuum) vastav osa asub ftp peeglites failis src.tar.gz, tuuma lähtetekst asub failis sys.tar.gz. Mõlemad failid tuleb kopeerida kataloogi /usr/src ja seal lahti pakkida, selliselt
# cd /usr/src # wget ftp://ftp.aso.ee/pub/OpenBSD/4.7/sys.tar.gz # wget ftp://ftp.aso.ee/pub/OpenBSD/4.7/src.tar.gz # tar zxf sys.tar.gz # tar zxf src.tar.gz
Seejärel tuleb /usr/src kataloogis asudes rakendada CVS'ist uuendused
# export CVSROOT=anoncvs@anoncvs.se.openbsd.org:/cvs # cvs -d$CVSROOT up -rOPENBSD_4_7 -Pd
Tuuma kompileerimine
Tuuma kompileerimiseks tuleb öelda i386 arhitektuuril (nb! amd64 arhitektuuril on vastav kataloog /usr/src/sys/arch/amd64/conf)
# cd /usr/src/sys/arch/i386/conf # config GENERIC # cd ../compile/GENERIC # make clean && make depend && make
Kusjuures SMP toega tuuma tekitamiseks tuleb kasutada 'GENERIC' asemel 'GENERIC.MP'. Uue tuuma paigaldamiseks tuleb öelda, kusjuures rm, ln jt käsud annab make ise
# make install rm -f /obsd ln /bsd /obsd cp bsd /nbsd mv /nbsd /bsd
Tulemusena kopeeritakse vana tuum faili /obsd ning uus tuum on /bsd. OpenBSD bootloaderit ennast tuuma paigaldamine otseselt ei mõjuta. Uue tuuma kasutuselevõtmiseks tuleb süsteem alglaadida, kompileerimise kohta on märge ka dmesg teisel real
OpenBSD 4.5 (GENERIC) #0: Sat May 3 20:13:53 EEST 2009 root@loomaaed.tartu.ee:/usr/src/sys/arch/i386/compile/GENERIC
Tuuma versiooni sobib küsida töötavas süsteemis ka selliselt
# sysctl kern.version kern.version=OpenBSD 4.5 (GENERIC) #0: Sat May 3 20:13:53 EEST 2009 root@loomaaed.tartu.ee:/usr/src/sys/arch/i386/compile/GENERIC
NB! Kui tuuma kompileerimine leiab aset seoses OpenBSD stabiilsele versioonile errata paikade rakendamisega, siis pole tarvis CVS'st uuendusi kopeerida. Piisab kasutada src.tar.gz ja sys.tar.gz arhiive ja rakendada patch programmi abil paigad nagu on kirjeldatus palas http://kuutorvaja.eenet.ee/wiki/OpenBSD_paigaldamine#Operatsioonis.C3.BCsteemi_tarkvara_uuendamine ja kompileerida ja paigaldada uus tuum nagu on kirjeldatud käesolevas tekstis.
Märkused
- MP tuuma kompileerimiseks tuleb öelda
cd /usr/src/sys/arch/amd64/conf config GENERIC.MP cd ../compile/GENERIC.MP make clean && make depend && make sudo make install
Operatsioonisüsteemi kompileerimine
Operatsioonisüsteemi teekide ja binaaride ehk kasutajamaa kompileerimiseks tuleb öelda
# rm -rf /usr/obj/* # cd /usr/src # make obj # cd /usr/src/etc && env DESTDIR=/ make distrib-dirs # cd /usr/src # make build
NB! Viimane käsk kompileerib ning ka paigaldab uue tarkvara asendades töötava süsteemi vastavad failid.
Kompileerimisel tuleb arvestada, et /usr/obj all võiks mõni GB vaba ruumi olla, ja samuti /usr/src all. Kui kompileerimine ebaõnnestub, siis saab lähteasendisse tagasi pöörduda käsudega
# cd /usr/src # find . -type l -name obj | xargs rm # make cleandir # rm -rf /usr/obj/* # make obj