A.5. CVSup-i kasutamine

A.5.1. Sissejuhatus

CVSup on tarkvarapakett lähtekoodi puude jagamiseks ja värskendamiseks kesksest CVS-i hoidlast kuskil serveris. FreeBSD lähtekoodi hoitakse CVS-hoidlas keskses arendusmasinas Kalifornias. CVSup-i abil saavad kasutajad endi lähtekoodide puid hoida sünkroonis keskses serveris olevatega.

CVSup kasutab värskendamiseks nn. tõmbamise meetodit. Tõmbamismeetodi puhul küsib iga klient serverilt uuendusi siis, kui neid vaja on. Server ootab passiivselt oma klientidelt uuendamispäringuid. Seega uurib klient ise kõiki uuendusi. Server ei saada kunagi uuendusi, mida klient ei ole küsinud. Uuenduste saamiseks peavad kasutajad kas CVSupi käsitsi käivitama või tegema selle jaoks regulaarse cron'i töö.

CVSup, just sellise suurte ja väikeste tähtede kombinatsioonina, tähendab tervet tarkvarapaketti. Selle peamisteks komponentideks on klient cvsup, mis töötab iga kasutaja masinas, ja server cvsupd, mis töötab igas FreeBSD-d peegeldavas serveris.

Kui sa loed FreeBSD dokumentatsiooni ja meililiste, võivad sulle silma hakata viited sup-nimelisele rakendusele. Sup oli CVSup'i eelkäijaks ja täitis üsna sarnast funktsiooni. CVSup'i kasutatakse üsna sarnaselt sup'iga ja muuseas kasutab ta seadistuste faile, mille süntaks on ühilduv sup'i omadega. Sup'i FreeBSD projekt enam ei kasuta, kuna CVSup on kiirem ja paindlikum.

A.5.2. Paigaldamine

Lihtsaim moodus CVSup-i paigaldamiseks on kasutada selleks eelnevalt kokku kompileeritud pakki net/cvsup FreeBSD pakkide kollektsioonist. Kui sa eelistad CVSup-i kokku kompileerida lähtekoodist, siis võid kasutada selleks portsu net/cvsup. Kuid hoiatan ette, et net/cvsup-ports sõltub Modula-3 süsteemist, mille kompileerimine võtab üsna suure hulga aega ja ruumi.

Note: Kui kavatsed CVSup-i kasutada masinal, millele pole installitud XFree86 - näiteks serveri korral - kasuta kindlasti portsu, mis ei sisalda CVSup-i GUI-d, seega portsu net/cvsup-without-gui.

Kui sa ei tea midagi CVSup-ist ja tahad lihtsalt ühte pakki, mis ta installeeriks, paneks paika seadistuste faili ja alustaks andmete liigutamist - seda kõike lihtsalt hiirega klikkimise abil kontrollitavalt kasutajaliideselt, siis laadi alla net/cvsupit-pakk. Anna see pakk pkg_add(1) argumendiks ja viimane juhatab sind läbi lihtsa menüüpõhise seadistamise protsessi.

A.5.3. CVSup-i seadistamine

CVSup-i tööd juhitakse seadistuste failist, mida nimetatakse supfile'iks. Mõningad supfile'ide näited paiknevad kataloogis /usr/share/examples/cvsup/.

supfile'is paiknev seadistus paneb CVSupi jaoks paika järgnevad muutujad:

Järgnevates lõikudes koostame nendele küsimustele vastates tüüpilise supfile'i.

supfile on tekstifail. Kommentaarid algavad #-märgiga ja kestavad kuni rea lõpuni. Ridasid, mis on tühjad, või sisaldavad ainult kommentaari, ignoreeritakse.

Iga ülejäänud rida kirjeldab failide gruppi, mida kasutaja soovib. Rida algab ``kollektsiooni'' nimega, mida kasutaja soovib, see on loogiline serveri poolt defineeritud failide grupp. Kollektsioon ütleb serverile, milliseid faile sa soovid. Pärast kollektsiooni nime tuleb kas null või rohkem välja, mille eraldajaks on tühik. Need väljad vastavad ülaltoodud küsimustele. Seal on kahte sorti väljasid: võtmete väljad ja väärtuste väljad. Võtme väli koosneb eraldiseisvast võtmesõnast, näiteks delete või compress. Väärtuse väli algab ka võtmesõnaga, kuid võtmesõnale järgneb vahetult =-märk ja sellele teine sõna. Näiteks: release=cvs.

Tavaliselt on supfile'is kirjas rohkem kui üks kollektsioon, mida soovitakse. Üks võimalus supfile'i ülesehitamiseks oleks iga kollektsiooni kohta kõik vajalikud väljad uuesti defineerida. Kuid sellise lähenemise tulemusena muutuvad supfile'i read üsna pikaks ja see on ebamugav, kuna enamus väljasid on kõikidel kollektsioonidel samad. Selle vältimiseks on CVSup'il vaikeväärtuste mehhanism. Ridasid, mis algavad pseudo-kollektsiooni *default -nimega, võib kasutada võtmete ja väärtuste kehtestamiseks, mida sellele järgnevate kollektsioonide puhul kasutatakse vaikeväärtusena. Iga kollektsioon võib muidugi ka ise defineerida mõne väärtuse, mida siis ka vastava kollektsiooni jaoks vaikeväärtuse asemel kasutatakse. Vaikeväärtusi saab ka näiteks keset supfile'i muuta, kasutades selleks vastavaid lisa *default-ridasid.

Selliste teadmistega loome nüüd supfilei'i FreeBSD-CURRENT-i põhilise lähtekoodipuu hankimiseks ja värskendamiseks.

A.5.3.1. Keeldumise fail

Nagu eespool mainitud, kasutab CVSup tõmbamismeetodit. Põhimõtteliselt tähendab see järgnevat: sa ühendud CVSup-i serveriga ja too ütleb: ``Siin on nimekiri asjadest, mida sa minult alla võid laadida...'' ja su klient vastab: ``Olgu, ma võtan selle, selle ja siis selle.'' Vaikimisi võtab CVSup-i klient kõik failid, mis vastavad sinu poolt määratud kollektsioonile ja sildile. Aga alati ei taha sa seda kõike, eriti kui sa sünkroniseerid näiteks portide, dokumentide või www puud -- enamik inimesi ei suuda ju lugeda neljas või viies keeles ja seega pole neil ka vaja spetsiifiliste keelte faile. Portsude kollektsiooni värskendamise puhul võid sa seda saavutada ka määrates iga kollektsiooni seadistuste failis eraldi (näiteks ports-astrology, selle asemel, et lihtsalt öelda ports-all). Samas puuduvad sellised keelespetsiifilised kollektsioonid doc- ja www-puudel, seega pead sa kasutama ühte CVSup-i paljudest funktsioonidest: refuse-faili (keeldumisfaili).

Keeldumisfail ütleb sisuliselt CVSup-ile et too ei peaks võtma igat faili kollektsioonist; teisisõnu ütleb see kliendile, et ta keelduks kindlatest failidest, mida server saadab. Keeldumiste faili asukohaks on baas/sup/, kus baas on deffineeritud supfile'is. Kui seda faili seal ei ole, pead sa selle ise looma. Baasi vaikeväärtuseks on /usr/local/etc/cvsup, mis tähendab et keeldumise faili vaikimisi asukohaks on /usr/local/etc/cvsup/sup/refuse.

Keeldumise faili formaat on väga lihtne; seal on lihtsalt kataloogide nimed, mida sa ei soovi saada. Näiteks, kui sa ei kõnele ühtegi keelt peale inglise ja ei soovi teiste keelte programme saada, siis võid sa keeldumisfaili panna järgnevad read:

ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/portuguese
ports/russian
ports/ukrainian
ports/vietnamese
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/zh_*

jne. teiste keelte puhul (kogu nimekirja leiad FreeBSD CVS hoidlast).

Selle kasuliku omaduse abil saavad kasutajad, kes on aeglase liini otsas või maksavad internetis oldud aja pealt, säästa väärtuslikku aega, jättes alla laadimata failid, mida nad niikuinii iial ei kasutaks. Lisainfo saamiseks keeldumisfailide ja teiste lahedate CVSup-i võimaluste kohta loe selle man-lehte.

A.5.4. CVSup-i käivitamine

Nüüd on kõik värskendamiseks valmis. Käsurida, mida selleks vaja läheb, on järgnev:

# cvsup supfile

kus supfile on muidugi su äsjaloodud supfaili nimi. X11 all olles käivitub selle käsu peale ka graafiline kasutajaliides, millel on mõned nupud lihtsamate asjade tegemiseks. Et protsessi käivitada, tuleb vajutada nupule ``go''.

Kuna antud juhul uuendad sa kataloogis /usr/src paiknevat lähtekoodipuud, siis pead sa programmi käivitama root-kasutajana, et programmil oleks piisavad õigused nende failide uuendamiseks. Kui oled just loonud uue seadistuste faili ja valmistud esimest korda kasutama cvsup-i, on arusaadav, et oled närvis. On olemas lihtne moodus cvsup-i testimiseks, ilma et ta muudaks su hinnalisi faile. Lihtsalt loo kuhugi tühi kataloog, ja anna selle nimi käsurealt cvsupile argumendiks:

# mkdir /var/tmp/dest
# cvsup supfile /var/tmp/dest

Sellisel juhul pannakse kõik uuendused sinu poolt käsurelt näidatud kataloogi. CVSup küll uurib faile, mis paiknevad kataloogis /usr/src, kuid ei kustuta ega muuda neist ühtki. Kõik uuendused maanduvad kataloogi /var/tmp/dest/usr/src. Sellise käivitusviisi puhul jätab CVSup oma baaskataloogi failid muutmata. Nende failide uued versioonid kirjutatakse käsurealt paika pandud kataloogi. Senikaua, kuni sul on kataloogile /usr/src lugemisõigus, ei pea sa sellise testi tegemiseks isegi root olema.

Kui sa ei kasuta X11-e või kui sulle lihtsalt ei meeldi graafilised kasutajaliidesed, siis peaksid lisama käsureale, millega sa cvs'i käivitad, järgmise rea:

# cvsup -g -L 2 supfile

Võti -g ütleb CVSup -ile, et ta ei kasutaks GUId. Juhul kui sa ei kasuta X11-e, on see automaatselt nii, vastasel juhul pead sa seda võtit kasutama.

Võti -L 2 käsib CVSup -il ekraanile väljastada detaile kõigi uuenduste kohta, mida ta teeb. On olemas 3 kommenteerimise taset: -L 0 kuni -L 2. Vaikeväärtuseks on 0, mis tähendab täielikku vaikimist, väljaarvatud veateadete puhul.

Olemas on veel suur hulk teisigi võtmeid. Lühikese nimekirja neist saad cvsup -H abil. Täpsemad kirjeldused leiad man-lehelt.

Kui sa oled värskendamise kulgemsega rahul, siis võid sa CVSup-i regulaarselt käima panna cron(8) abil. Nähtavasti peaksid sa keelama croni poolt käivitataval CVSup-il graafilise kasutajaliidese kasutamise.

A.5.5. CVSup-i failikollektsioonid

Failikollektsioonid, mis on saadaval CVSup-i kaudu, on organiseeritud hierarhiliselt. Mõned suured kollektsioonid on jagatud väiksemateks alamkollektsioonideks. Suure kollektsiooni allalaadimine on samaväärne selle kõigi alamkollektsioonide allalaadimisega. Hierarhiline suhe erinevate kollektsioonide vahel on järgnevas listis ära näidatud treppimise abil.

Kõige enamkasutatavad kollektsioonid on src-all ja ports-all. Ülejäänud kollektsioone kasutab väike hulk inimesi erilistel otstarvetel ning mõned peegeldavad serverid ei pruugi neid kõiki peegeldada.

cvs-all release=cvs

Peamine FreeBSD CVS-hoidla, mis sisaldab ka krüptograafiakoodi.

distrib release=cvs

Failid, mis on seotud FreeBSD levitamise ja peegeldamisega.

doc-all release=cvs

FreeBSD käsiraamatu ja muu dokumentatsiooni lähtekoodid, v.a. FreeBSD veebisaidi materjalid.

ports-all release=cvs

FreeBSD portsude kollektsioon

Important: Kui sa ei soovi uuendada tervet ports-all-puud (kogu portsude puud), vaid kasutada vaid mõnda allpoolloetletud alamkollektsioonidest, värskenda alati kindlasti alamkollektsioon ports-base! Kui iganes midagi portsude ehituse infrastruktuuris muutub, (viimast esindab ports-base), võid kindel olla, et "tõelised" portsud hakkavad neid muudatusi varsti kasutama. Nii et kui sa uuendad ainult "tõelised" portsud ning need kasutavad mõnda uutest omadustest, on väga tõenäoline, et nende kompileerimine ebaõnnestub ning toob kaasa mingi müstilise veateate. Sel puhul on esimene asi, mida teha, värskendada oma ports-base-alamkollektsioon.

ports-archivers release=cvs

Arhiveerimisvahendid.

ports-astro release=cvs

Astronoomiaga seotud portsud.

ports-audio release=cvs

Helitugi.

ports-base release=cvs

Portsude kollektsiooni ehituse infrastruktuur - hunnik faile, mis asuvad kataloogi /usr/ports alamkataloogides Mk/ ja Tools/.

Note: Palun loe ülalolevat tähtsat hoiatust: sa peaksid alati seda alamkollektsiooni uuendama - millal iganes uuendad millist iganes FreeBSD portsude kollektsiooni osa.

ports-benchmarks release=cvs

Jõudlustestid.

ports-biology release=cvs

Bioloogia.

ports-cad release=cvs

Vahendid disainimiseks arvuti abil.

ports-chinese release=cvs

Hiina keele tugi.

ports-comms release=cvs

Kommunikatsioonitarkvara.

ports-converters release=cvs

Kooditeisenduse vahendid.

ports-databases release=cvs

Andmebaasid.

ports-deskutils release=cvs

Asjad, mis enne arvuti leiutamist olid kirjutuslaual.

ports-devel release=cvs

Arendusvahendid.

ports-editors release=cvs

Tekstiredaktorid.

ports-emulators release=cvs

Teiste opsüsteemide emulaatorid

ports-finance release=cvs

Rahandusalased rakendused.

ports-ftp release=cvs

FTP klient- ja serverrakendused.

ports-games release=cvs

Mängud.

ports-german release=cvs

Saksa keele tugi.

ports-graphics release=cvs

Graafikautiliidid.

ports-hungarian release=cvs

Ungari keele tugi.

ports-irc release=cvs

IRC (Internet Relay Chat) utiliidid.

ports-japanese release=cvs

Jaapani keele tugi.

ports-java release=cvs

Java utiilid.

ports-korean release=cvs

Korea keele tugi.

ports-lang release=cvs

Programmeerimiskeeled.

ports-mail release=cvs

Meilitarkvara.

ports-math release=cvs

Tarkvara matemaatilisteks arvutusteks.

ports-mbone release=cvs

MBone rakendused.

ports-misc release=cvs

Mtmesugused utiilid.

ports-multimedia release=cvs

Multimeediatarkvara.

ports-net release=cvs

Võrgutarkvara.

ports-news release=cvs

USENET-i uudistetarkvara.

ports-palm release=cvs

Tarkvaratugi Palm™-seeriale

ports-portuguese release=cvs

Portugali keele tugi.

ports-print release=cvs

Printimistarkvara.

ports-russian release=cvs

Vene keele tugi.

ports-security release=cvs

Turvautiilid.

ports-shells release=cvs

Käsurea shellid.

ports-sysutils release=cvs

Süsteemiutiilid.

ports-textproc release=cvs

Tekstitöötlusutiilid (sinna ei kuulu küljendusvahendid).

ports-vietnamese release=cvs

Vietnami keele tugi.

ports-www release=cvs

World Wide Webiga seotud tarkvara.

ports-x11 release=cvs

Portsud, mis toetavad X-aknasüsteemi.

ports-x11-clocks release=cvs

X11 kellad.

ports-x11-fm release=cvs

X11 failihaldurid.

ports-x11-fonts release=cvs

X11 fondid ja fontidega seotud utiilid.

ports-x11-toolkits release=cvs

X11 tööriistakomplektid.

ports-x11-servers

X11 serverid.

ports-x11-wm

X11 aknahaldurid.

src-all release=cvs

Peamised FreeBSD lähtekoodid, sealhulgas ka krüptograafia kood.

src-base release=cvs

Mitmesugused failid, mis paiknevad kataloogis /usr/src.

src-bin release=cvs

Utiilid, mida võib minna vaja üksik-kasutaja rezhiimis ( /usr/src/bin).

src-contrib release=cvs

Utiilid ja teegid, mis on loodud väljaspool FreeBSD projekti; neid kasutatakse üsna muutmata kujul (/usr/src/contrib).

src-crypto release=cvs

Krüptograafilised utiilid ja teegid väljastpoolt FreeBSD projekti,mida kasutatakse üsna muutmata kujul (/usr/src/crypto).

src-eBones release=cvs

Kerberos ja DES (/usr/src). Praegustes FreeBSD väljalasetes neid ei kasutata.

src-etc release=cvs

Süsteemi konfiguratsioonifailid (/usr/src/etc).

src-games release=cvs

Mängud (/usr/src/games).

src-gnu release=cvs

Utiilid, mis on GNU avaliku litsentsi all (/usr/src/gnu).

src-include release=cvs

Päise failid (/usr/src/include).

src-kerberos5 release=cvs

Kerberos5 turvapakk (/usr/src/kerberos5).

src-kerberosIV release=cvs

KerberosIV turva pakk (/usr/src/kerberosIV).

src-lib release=cvs

Teegid (/usr/src/lib).

src-libexec release=cvs

Süsteemiprogrammid, mida üldjuhul käivitavad teised programmid (/usr/src/libexec).

src-release release=cvs

Failid, mida on vaja FreeBSD väljaande loomiseks (/usr/src/release).

src-sbin release=cvs

Süsteemiutiilid üksik-kasutaja rezhiimi jaoks (/usr/src/sbin).

src-secure release=cvs

Krüptograafilised teegid ja käsud (/usr/src/secure).

src-share release=cvs

Failid, mida võib mitmete eri süsteemide vahel jagada (/usr/src/share).

src-sys release=cvs

Kernel (/usr/src/sys).

src-sys-crypto release=cvs

Kerneli krüptograafiakood (/usr/src/sys/crypto).

src-tools release=cvs

Mitmesugused FreeBSD süsteemi haldamiseks vajalikud vahendid (/usr/src/tools).

src-usrbin release=cvs

Kasutajautiilid (/usr/src/usr.bin).

src-usrsbin release=cvs

Süsteemiutiilid (/usr/src/usr.sbin).

www release=cvs

FreeBSD veebilehe lähtekoodid

distrib release=self

CVSup-i serveri seadistuste failid. Seda kasutavad CVSup-i peegeldavad serverid.

gnats release=current

GNATS (vigade jälgimise andmebaas)

mail-archive release=current

FreeBSD meiloloendite arhiiv.

www release=current

FreeBSD veebisaidi eeltöödeldud failid (mitte sorts). Neid kasutavad peegeldsaidid.

A.5.6. Lisainfo saamiseks

CVSup-i kohta lisainfot, KKK ja muud asjassepuutuvat leiad CVSup-i kodulehelt.

Enamik FreeBSD-ga seotud arutelusid CVSup-i teemadel leiab aset meililoendis FreeBSD technical discussions mailing list. Uute versioonide väljatulekust antakse teada nii seal kui ka listis FreeBSD teadete meililist.

Küsimused ja veateated tuleks saata programmi autorile aadressil .

A.5.7. CVSup-i serverid

FreeBSD CVSup-i servereid võid leida järgnevatelt aadressidelt:

Argentiina

Austraalia

Austria

Brasiilia

Bulgaaria

Eesti

Hiina

Hispaania

Iirimaa

Island

Jaapan

Kanada

Korea

Kreeka

Kuveit

Leedu

Lõuna-Aafrika

Läti

Madalmaad

Norra

Poola

Portugal

Prantsusmaa

Rootsi

Rumeenia

Saksamaa

San Marino

Singapur

Slovakkia

Sloveenia

Soome

Taani

Taiwan

Tshehhi vabariik

Türgi

UK

Ukraina

Ungari

Uus-Meremaa

USA

Venemaa