Erinevus lehekülje "FreeBSD pakihaldus" redaktsioonide vahel
(→Linuxi binaarfailide käivitamine FreeBSD süsteemis) |
(→Linuxi binaarfailide käivitamine FreeBSD süsteemis) |
||
180. rida: | 180. rida: | ||
ELF binaarfailid vajavad spetsiaalset nimetamist ,et neid saaks tööle panna | ELF binaarfailid vajavad spetsiaalset nimetamist ,et neid saaks tööle panna | ||
− | tuleb esmalt paigaldada linux_base pakett mis sisaldab vajalikke programme nii i386 kui amd64 | + | tuleb esmalt paigaldada linux_base pakett mis sisaldab vajalikke programme nii i386 kui amd64 arhidektuurile |
Seejärel vajalik lisada rc.conf faili ridaõ | Seejärel vajalik lisada rc.conf faili ridaõ |
Redaktsioon: 30. september 2009, kell 15:27
Sisukord
Sissejuhatus
FreeBSD süsteemile saab tarkvara lisada kolmel erineval moel
- prekompileeritud paketid - neid pakette sisaldub omajagu näiteks FreeBSD CD-plaadil, samuti saab neid Internetist FreeBSD serveritest kopeerida. Sel juhul harutatakse programmid teie süsteemi sobivatesse kataloogidesse lahti kusjuures kontrollitakse ka sõltuvusi ja vajadusel installeeritakse vastavad muud programmid.
- FreeBSD portsud - see on eelistatud tarkvara lisamise moodus. Portse kasutades kopeeritakse Insternetist vajalikud programmid ning kompileeritakse kohapeal; lisaks installeeritavale tarkvarale kontrollitakse sõltuvusi, so et olemas oleks ka kõik paketid, mida see konkreetne tarkvara kasutab.
- iseseisvatest lähtetekstid - kui kuskil tarkvara kirjutatakse, siis on võimalik, et autorid näevad ette, et seda võidakse soovida ka kompileerida FreeBSD platvormil. Näiteks on lähtetekstidega kaasas configure skript mis moodustab sobiva Makefile.
Teenuste startimise osas tasub meeles pidada ,et puuduvad nö tavapärased /etc/init.d/serverinimi käivitusskriptid (mis on tegelikult üks nn BSD-line ilming; õigupoolest on ses mõttes Linux ja Solaris System V legacy'ga) vaikimisi on teenused pigem chroot'itud
Portsud, mis peaksid alglaadimise ajal käivituma (näiteks internetiserverid), installeerivad enamasti stardiskripti kausta /usr/local/etc/rc.d Need skriptid tuleb kirja panna rc.conf faili. Näiteks kui apache paigaldab rc.d kausta skripti nimega apache2.sh siis rc.conf faili tuleb kirjutada rida apache2_enable="YES"
Prekompileeritud paketid
Prekompileeritud pakettidest tarkvara lisamine on kõige lihtsam, sest sisuliselt harutakse arhiiv sobivatesse kataloogidesse lahti ja tekitatakse vajalikud lingid. Seda moodust sobib kasutada näiteks FreeBSD CD-plaadil olevate iseseisvate programmide installeerimiseks, mida vaikimisi ei installeerita või mis unusid süsteemi installeerimise ajal näidata, näiteks Bash koorik, Joe tekstiredaktor, Less pager. Tavaliselt on pakid kompileeritud väga konservatiivse seadistusega, kuna nad peavad töötama võimalikult paljudel süsteemidel nii on sageli vajalik programmi mingi lisafunktsiooni kasutamiseks kompileerida ta vastavate võtmete abil ports süsteemi kaudu
Paigaldamine toimub käsude pkg_add, fetch. Näiteks installeerime Bash kooriku
bash# pkg_add /cdrom/packages/All/bash-2.03.tgz
Soovides näha pakettidest lisatud programmide nimesid, kasutage käsku pkg_info ilma arumendita; soovides näha konkreetse paketi kohta enam, kasutage paketi nime argumendina, näiteks
bash# pkg_info joe-2.8
Prekompileeritud pakette on aga võimalik installeerida ka kasutades FreeBSD süsteemi konfiguratsiooniprogrammi /stand/sysinstall -> Configuration -> Packages. Seejuures saate installeerida samadel meediumitelt nagu süsteemi ennastki so FTP, NFS, CD-plaat jne.
Lisades pkg_add käsule võtme -r tõmmatkase prekompileeritud paketid üle interneti
# pkg_add -r joe
Kui ei ole kasutuses bash siis, et mitte uuesti sisse logida, andke selleks, et joe tööle läheks, alljärgnev käsk:
# rehash
Mõned abikäsud tööks pakettidega
Installitud pakettide nimekirja näeb käsuga
pkg_info
seejuures sisaldab nimetatud käsk hulka abistavaid võtmeid, näiteks soovides vaadata kõike paketi poolt paigaldatud faile aitab
pkg_info -L joe | less
Installitud tarkvara versioone ja seda kas neist on uuemaid versioone näeb käsuga, eelnevalt oleks vaja uuendada muidugi ports tee nt portsnap abil
pkg_version
näiteks
# pkg_version -v 915resolution-0.5.3_1,1 = up-to-date with port ImageMagick-6.4.4.1_1 < needs updating (port has 6.5.4.10_1) OpenEXR-1.6.1_1 = up-to-date with port
Teises tulbas asuvad sümbolid näitavad installitud versiooni suhtelist vanust ning kohalikust portsude puust saadaolevat versiooni.
= Installitud paki versioon on sama, mis antud paki versioon kohalikus portsude puus. < Installitud versioon on vanem kui see, mis saadaval portsude puust. > Installitud versioon on uuem kui see, mis leidub kohalikus portsude puus (mis on arvatavasti vananenud). ? Installitud pakki ei leidu portsude nimekirjas. (See võib näiteks juhtuda, kui installitud ports eemaldatakse kollektsioonist või nimetatakse ümber.) * Pakist leidub mitu versiooni.
Pakettide kustutamine käib käsu pkg_delete abil.
pkg_delete joe
Sooves alustada puhtalt lehelt võib näiteks anda käsu pkg_delete -a mis puhastab operatsioonisüsteemi kõigist paigaldatud lisaprogrammidest
FreeBSD portsud
Reeglina eeldab portsude kasutamine kompileerimisvahendite ja võrguühenduse olemasolu ning seda, et Portsude Kogumik (ingl. k. Ports Collection) on installeeritud.
Kogumik ise võtab ca 100 MB ruumi ning sisaldab andmeid praktiliselt kõigi vabalt kasutada olevate FreeBSD programmide kohta. Portsude Kogumik asub vaikimisi kataloogis /usr/ports moodustades teemadeks jaotatud kataloogistruktuuri. Igale programmile vastab üks kataloog infot millistest teistest pakettidest kõnealune programm sõltub ning kust veebi või FTP serverist Internetist seda programmi kopeerida.
Tüüpiline portsus leiduva tarkvara (nt joe) kaust koosneb järgnevatest failidest
- Makefile - kuidas antud tarkvara paigaldada e kompileerida, kuhu teda paigaldada jne ehk iseäralised nõksud FreeBSD jaoks
- distinfo - failide nimekiri mida tuleb portsu jaoks alla laadida ning nende kontrollsummad
- files - patchid paigaldamiseks
- pkg-descr - tarkvara kirjeldus
- pkg-plist - nimekiri kõigist failidest mida tarkvara paigaldab
Portsude Kogumik ei sisalda programmide lähtetekste, vaid ainult viiteid Interneti serveritele kust vajaduselt tarkvara lähtetekstid kopeeritakse ning seejärel teie masinas kompileeritakse ja ära installeeritakse.
cvs'ist portide kogumiku paigaldamine ja uuendamine on FreeBSDs korraldatud portsnap vahendiga. Esimenekord käivitamisel tasuks anda käsk
portsnap fetch extract
Mis tõmbab viimase portside snapshoti ja pakib selle /usr/ports alla lahti Edaspidi kui on vaja uuendada portse piisab kui anda käsk
portsnap fetch update
Portsudest süsteemi tarkvara lisamine toimub praktiliselt selliselt, et valite Kogumikus sobiva programmi välja, sisenete vastavasse kataloogi ning annate korralduse
bash# make install
Seejärel kontrollitakse kas süsteemis leiduvad muud programmid, mille olemasolu installeeritav programm eeldab. Vajadusel kopeeritakse Internetist esmalt nende lähtetekstid ning nad kompileeritakse ja installeeritaks. Seejärel kopeeritakse installeeritava programmi lähtetekstid ning tarkvara kopileeritakse ja installeeritakse.
Seesugune asjakorraldus teeb tarkvara lisamise ja sõltuvuste lahendamise kasutaja jaoks põhimõtteliselt väga mugavaks. Kuivõrd programmide lähtetekste kopeeritakse otse võrgust, siis on lihtne tarkvara arendajatel teha kasutajale kättesaadavaks värsked versioonid.
Portsudest installeeritud tarkvara eemaldamiseks sisnege taas Kogumiku vastavasse kataloogi ning andke korraldus
bash# make deinstall
Kuna programmide lähtetekstid kopeeritakse võrgust veebi või FTP serveritest, siis on mõistlik näidata keskkonnamuutujale HTTP_PROXY sobiv väärtus, sarnaselt
bash# export HTTP_PROXY="cache.zoo.tartu.ee:3128"
Võimalik on see lisada ka järgneval kujul faili make.conf
FETCH_ENV=HTTP_PROXY=http://cache.zoo.tartu.ee:3128
Võimalik on kasutada ka mirroreid ,et kiirendada tarkvara tõmbamist või võimaldades saada tarkvara kätte ka siis kui selle originaalne allikas on kättesaamatu. Näiteks ,et kasutada EENet'i mirrorit tuleb lisada /etc/make.conf faili rida
MASTER_SITE_OVERRIDE?=http://ftp.eenet.ee/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
Mille puhul pöördutakse alati kui pordist mingit tarkvara kompileeritakse antud softi algkoodi otsima ftp.eenet.ee nimelise masina poole.
NB kõik allatõmmatud paketid paigaldatase portsude puhul lahtipakkimiseks kausta /usr/ports/difstfiles Seda võib aegajalt käsitsi kustutada või teha seda käsuga portsclean -DD
Iseseisvatest lähtetekstidest kompileerimine
Soovides oma FreeBSD tundmise ja programmeerimise oskust proovile panna, või kuid teid huvita programmi portsu ega paketti pole, siis ei jää muud üle kui asuda otse lähtetekste kompileerima.
Näiteks kopeerige lähtetekstid kataloogi /usr/src ja pakkige lahti. Seejärel talitage tarkvaraga kaasas olevate juhiste kohtaselt.
Lähtetekstidest paigaldatud tarkvara eemaldamiseks ei paku süsteem automaatseid mooduseid. Võimalik, et tarkvaraga on ühes sellised vahendid või tuleb teha seda tõepoolest käsitsi.
Portide abivahendid
Kaks mõistlikumat vahendit oleksid portupgrade ja portaudit mida süsteemis esmasena kasutada
portupgrade
Tegemist automaatse pordi uuendamise vahendiga.
cd /usr/ports/ports-mgmt/portupgrade && make install
Kasutamine
portupgrade pordinim
Selleks ,et vaadata mis pordid omavad uuemaid versioone sobib lihtne käsk
pkg_version -v | grep "<"
Üldiselt ei tasu uisapäisa tormata kõiki porte uuendama sest sageli võib näiteks portupgrade -a lõppeda mitme mittetöötava tarkvara vaid uuendada mõistlikult vastavalt vajadusele ja juhul kui tarkvaras on avastatud ohtlik viga. Vigade avastaiseks on järgnev soft
portaudit
Portaudit kontrollib kõiki installitud tarkvara versioone vastu keskset andmebaasifaili mille ta igal käivitamisel allatõmbab ning teatab antud tarkvaras asuvaid turvavigu. Kui portaudit on süsteemi installitud siis lisatakse selle väljund automaatselt igaöisele meiliteel root kasutajale saadetavale raportile
cd /usr/ports/ports-mgmt/portaudit && make install
kasutamine
portaudit -F -a
Linuxi binaarfailide käivitamine FreeBSD süsteemis
FreeBSD on võimeline ka käivitama Linux operatsioonisüsteemi jaoks mõeldud binaarfaile
Esmalt tuleb paigaldada Linuxi tugi
ELF binaarfailid vajavad spetsiaalset nimetamist ,et neid saaks tööle panna tuleb esmalt paigaldada linux_base pakett mis sisaldab vajalikke programme nii i386 kui amd64 arhidektuurile
Seejärel vajalik lisada rc.conf faili ridaõ
linux_enable="YES"
juhul kui binaari käiitamisel tekib veateade
ELF binary type not known Abort
Siis selleks ,et aidata FreeBSD kernelil teha vahet FreeBSD binaaril ja Linuxi omal tuleb kasutada brandelf utiliiti
brandelf -t Linux my-linux-elf-binary
Lingid
Põhjalik tekst bsd.ee wikis tarkvara uuendamisest ja installimisest
http://bsd.ee/dwiki/doku.php?id=bsdeesti:securefest.workshop