Instalace serveru CVS na Gentoo linuxu

Publikováno: Jan 7, 2014,  Autor: Radek Roža

Pokud jste se někdy podíleli na vývoji nějakého projektu a neúnavně jste se pokoušeli udržet si přehled nad změnami, historií verzí nebo se začínáte ztrácet v množství záloh, jistě jste zatoužili vyhrat nad nepřehledností a chaosem za pomoci nějakého nástroje který by vše hlídal za vás.

Linux Gentoo logo Jeden z několika nástrojů udržující verze zdrojových kódů, historii souborů a změn všech účastníků projektu je systém CVS. Jen málo který vývojový tým či programátor jednotlivec by si dokázal bez tohoto nástroje představit uspěšný vývoj a práci na projektu.

Pro ty, co by chtěli systém CVS začít používat, jsem napsal malý návod jak server CVS rozběhnout a správně nakonfigurovat.

Instalace na distribuci Gentoo linuxu

Nejprve si emergneme zdrojáky:

# USE="server" emerge cvs # emerge cvsd

Tímto se nainstaluje klient CVS a CVSD server daemon. Je potřeba dát pozor na to, aby se kompilace provedla s parametrem „server“, jinak by cvsd server nepracoval správně a při pokusu o zalogování se vrátí chybové hlášení:

cvs [login aborted]: unrecognized auth response from <host> cvs: unrecognized option `--allow-root=/root

Založení CVS Jailrootu

Nyní založíme CVS Jailroot což je výchozí adresář hlavního repozitáře ROOT a všech pracovních souoborů CVS. Asi nejběžnějším místem je

/var/lib/cvsd
# mkdir /var/lib/cvsd # cvs -d /var/lib/cvsd/root init # cvsd-buildroot /var/lib/cvsd # cd /var/lib/cvsd # mkdir -p var/lock

Tak, CVS jailroot je vytvořený a nyní se můžeme podívat na základní konfiguraci cvsd daemonu. Oblíbeným editorem otevřeme konfigurační soubor

cvsd.conf
# nano -w /etc/cvsd/cvsd.conf

Obsah souboru by měl vypadat nějak takto:

RootJail /var/lib/cvsd Uid cvsd Gid cvsd Listen * 2401 # nebo jiný port přez který si přejete provozovat CVS Repos /root

Pokud jste udělali nějaké změny tak soubor uložte a jako další krok přidáme nového uživatele CVS

CVS – přidání uživatele

Nyní založíme nového uživatele CVS.

Definovat více uživatelů je velmi důležité, jinak bychom se nikdy nedozvěděli kdo je zodpovědný za různé změny ve zdrojových souborech. Velmi doporučuji, aby nepoužívalo CVS více vývojářů pod stejným uživatelským účtem!

# cvsd-passwd /var/lib/cvsd/root UZIVATELSKE_JMENO

budete vyzváni k zadání hesla a pak k jeho ověření.

Pokud budete chtít otevřít systém pro čtení anonymous uživatelům, stačí tohoto uživatele také založit bez hesla (odeslat prázdný ENTER) a po sléze ho přidat do souboru readers, aby se garantoval přístup jen pro čtení:

# touch /var/lib/cvsd/root/CVSROOT/readers # chown cvsd:cvsd /var/lib/cvsd/root/CVSROOT/readers # nano /var/lib/cvsd/root/CVSROOT/readers

Do souboru readers přidáme všechyn uživatele, kteří budou mít přístup pouze pro čtení:

Soubor: /var/lib/cvsd/root/CVSROOT/readers
host anonymous honza

CVS – nastavení potřebných práv

nyní musíme nastavit práva CVS Jailrootu a rooto repozitáře:

# cd /var/lib # chown -R cvsd:cvsd cvsd # chmod -R 775 /var/lib/cvsd/root

Nyní restartujeme CVSD daemon:

# /etc/init.d/cvsd restart

Pokud si přejete spouštět CVSD daemon po startu serveru, přidáme ho do runlevelu:

# rc-update add cvsd default

Jednoduchý test CVS serveru

Běžná metoda přes „pserver“

Nejprve nastavíme proměnnou systémového prostředí CVSROOT (:pserver:<uzi­vatel>@<host>:/cvsro­ot):

# CVSROOT=:pserver:UZIVATEL:HESLO@localhost:/root; export CVSROOT

Nyní se můžeme poprvé zalogovat:

# cvs logout

Proběhne-li všechno v pořádku, můžeme naimportovat první projekt:

# cvs import -m 'Novy projekt' nazev_modulu vendor start

Nezapomeňte zajistit, aby vaše uživatelské jméno bylo osaženo v souboru

/var/lib/cvsd/root/CVSROOT/writers

a naopak nebylo v souboru

/var/lib/cvsd/root/CVSROOT/readers

Mějte na vědomí, že se při importu importují všechny soubory a složky aktuálního adresáře, což je jiné při příkazu „checkout“, kdy je potřeba být v adresáři o úroveň VÝŠE! Není-li totiž určeno parametrem „-d složka adresáře“ jinak, automaticky se vytvoří adresář názvu modulu v aktuálním adresáři.

Nyní se můžeme přepnout do pracovního adresáře a zkusit naimportovaný projekt opět checkoutnout z repozitáře:

# cvs co nazev_modulu

Provedete-li nějaké změny v projektu, (například v souboru test.php) můžete aktualizovat soubory projekt v repozitáři příkazem commit:

# cd adresar_projektu # cvs commit -m "Popis zmeny" test.php

výsledkem by měl být podobný výstup

# /root/nazev_modulu/test.php,v <-- test.php # new revision: 1.2; previous revision: 1.1

Příkazů a parametrů CVS je velká spousta a vřele doporučujij se alespoň s těmi nejzákladnějšími z nich seznamit, třeba zde

Pokud se naučíte se systémem CVS pracovat, bude vám velkým pomocníkem a jistě si ho v mnoha ohledech oblíbíte.

Doufám že vám tento jednoduchý návod při instalaci alespoň trochu pomohl, zprovoznění CVS mnohem bezpečnější metodou za pomocí SSL protokolu si ukážeme později..