% $Id: installationguide.tex,v 1.1 2007/01/18 22:18:55 jarda Exp $

\begin{document}

\chapter{Předpoklady k instalaci}

\section{Nároky na hardware}

Systém by měl fungovat na všech architekturách, na kterých běží potřebný SW
uvedený níže.  Na architektuře x86 se za dostatečný považuje počítač Pentium
III a vyšší, frekvence procesoru 1 GHz, 256 MB RAM, volné místo na disku 300
MB. Nároky na hardware se mohou lišit v závislosti na zatížení počítače a množství
uložených dat.

\section{Operační systém}

K fungování systému je zapotřebí mít podporovaný operační systém. V současné
době je podporován operační systém Linux a FreeBSD. Konkrétní verze nejsou specifikovány,
je pouze třeba splnit požadavky uvedené níže.

\section{HTTP server Apache}

Pro webové rozhraní databáze benchmarků je třeba mít správně nakonfigurovaný HTTP
server Apache. Podporovaná verze jsou 1.3 a vyšší, 2.0 a vyšší. Apache musí mít
nakonfigurovánu cestu do adresáře, kde jsou uloženy soubory webového rozhraní a
uživatel, pod jehož účtem bude Apache běžet, tam musí mít právo čtení a potřebuje
právo čtení pro adresář, kde jsou uloženy soubory parseru benchmarků. Pro čtení i
zápis je pak zapotřebí dát tomuto uživateli práva do adresáře, kde jsou uloženy
soubory benchmarků a do adresáře, do něhož se ukládají dočasné soubory.

\section{Databáze}

Podporovaná databáze je PostgreSQL ve verzi 7.4 a vyšší. Aplikace by měla po mírných
úpravách konfigurace fungovat rovněž na jiných SQL databázích podporovaných
knihovnou AdoDB, mimo jiné i MySQL a Oracle.

Pro aplikaci je třeba vytvořit databázi (např. s názvem benchmark) a zajistit, aby do
ní měl přístup uživatel, který spouští HTTP server (Apache) a případné řádkové skripty
v jazyce Python. Databázový systém nakonfigurujeme tak, aby přihlášení uživatelé
nemuseli zadávat heslo do database (systém local:trust).

\section{Programovací jazyk Python}

Pro funkci parseru benchmarků, automatického plnění atributů, agregovaného stahování
a plnění databáze skriptem je zapotřebí mít nainstalován a funkční interpreter
jazyka Python, podporována je verze 2.4 a vyšší.

\section{Knihovna psycopg}

Pro přístup skriptů v jazyce Python do databáze PostgreSQL je nutné mít nainstalovánu
knihovnu psycopg. Podporovány jsou verze 1.1.18 a vyšší, případně novější řada
2.0.2 a vyšší.

\section{Jazyk PHP a mod\_php}

Programovací jazyk PHP, nutný pro funkci webového rozhraní, je podporován ve verzi
5, ale aplikace by měla fungovat rovněž s verzí 4. Pro adresář se soubory webového
rozhraní musí být nastavena obsluha souborů *.php pomocí modulu mod\_php.

\chapter{Rozbalení archivu a vytvoření potřebných adresářů}

Archiv obsahuje standardně 5 adresářů:

\begin{description}
\item[database] Obsahuje soubory webového rozhraní databáze
\item[pythonScripts] Obsahuje pythonovské soubory pro práci s benchmarky
\item[benchmarkFiles] Bude obsahovat uložené soubory benchmarků
\item[tmpFiles] Bude obsahovat dočasné soubory pro práci s benchmarky
\item[metaConfig] Obsahuje metakonfigurační soubor config.src a skript
GenConfigFiles.py, který generuje konfigurační soubory.
\end{description}

Doporučuje se všechny adresáře rozbalit do společného adresáře, ale v zásadě lze
jejich umístění zvolit libovolně. Je třeba ovšem jejich umístění zanést správně
do konfigurace a nastavit jejich přístupová práva tak, aby do prvních dvou měl
právo čtení jak uživatel který vlastní proces serveru Apache, a do adresáře pythonovských
skriptů i ten, kdo bude případně spouštět ručně pythonovské skripty.

Adresář metaConfig slouží pouze pro generování konfiguračních souborů a jeho
existence není nezbytná pro další chod aplikace jako takové.

\chapter{Editace metakonfiguračního souboru}

Otevřeme si existující metakonfigurační soubor (nejlépe ten originální,
distribuovaný s aplikací), který se nalézá v adresáři metaConfig. Jednotlivé položky
změníme podle nastavení systému a umístění souborů a adresářů. Všechny položky
musí být ve tvaru

\begin{verbatim}
nazev = 'hodnota'
\end{verbatim}

Hodnota musí být uzavřena mezi dvěma apostrofy, resp. uvozovkami. Význam jednotlivých položek je:

\begin{itemize}
\item dbName - název databáze (např. benchmark)
\item dbUser - jméno uživatele databáze
\item dbPort - port databáze PostgreSQL (standardně 5432)
\item benchmarkFilesDirectory - název adresáře, který bude obsahovat soubory benchmarků
\item tmpDirectory - adresář pro dočasné soubory
\item execDirectory - adresář obsahující skripty v jazyce Python
\item existenceFileExtension - přípona souboru signalizujícího existenci archivu
\item archiveFileExtension - přípona souboru archivu
\item pythonBinary - cesta k interpreteru jazyka Python (například /usr/bin/python)
\end{itemize}

\chapter{Vygenerování a rozkopírování konfiguračních souborů}

Konfigurační soubory vygenerujeme příkazem 

\begin{verbatim}
./GenConfigFiles.py config.src
\end{verbatim}

Vytvoří se dva soubory. Soubor config.inc.php zkopírujeme do adresáře se soubory
webového rozhraní (PHP skripty). Soubor BenchConfig.php zkopírujeme do adresáře
řádkových skriptů v jazyce Python.

\chapter{Vytvoření tabulek}

Vytvoření tabulek provedeme z webového prohlížeče pomocí stránky 

urlBase/createTables.php?adminLogin=login\&adminPassword=password

kde urlBase je základní URL, na kterém se nachází webové rozhraní databáze benchmarků
- například \textit{http://vlsi.felk.cvut.cz/benchmarky}.

Místo \textit{login} doplníme požadované uživatelské jméno administrátora, místo \textit{password}
napíšeme požadované heslo administrátora. Vytvoří se první uživatel s administrátorskými právy,
který bude moci editovat databázi a administrovat uživatelské účty.

\chapter{Naplnění databáze základními daty}

Pro naplnění databáze je třeba se přihlásit (použijeme například administrátorský účet vytvořený
v předchozím kroku). Spustíme stránku urlBase/initTables.php

\chapter{Naplnění dat existující sady benchmarků do databáze}

Naplnění dat existující sady provedeme spuštěním skriptu BenchmarkFiller.py s použitím syntaxe

\begin{verbatim}
./BenchmarkFiller -r -s setName -d directory
\end{verbatim}

kde setName je název sady (například Torino) a directory je název adresáře, kde se nachází
soubory dané benchmarkové sady.

\chapter{Závěr}

Po úspěšném zvládnutí předchozích kroků je databáze připravena k použití. Používání databáze
popisuje Uživatelská příručka.

\end{document}

% vim:enc=iso8859-2:fenc=iso8859-2:syntax=tex:
