Vývojová verzia Lazarus
Chcete si nainštalovať vývojovú verziu Lazara v Linuxe? V článku Inštalačný balíček Lazarus som popísal ako to urobiť vo Windows. Tu skúsim rozobrať postup v Linuxe.
Získanie vývojovej verzie
Vývojová verzia Lazara , nakoniec aj jeho stabilná verzia, je sprístupnená pomocou Subversion. Pre začiatok si teda skontrolujte, či máte Subversion nainštalované, ak nie, tak si ho nainštalujte pomocou balíčkovacieho systému:
aptitude install subversion
V ďalšom kroku sa rozhodnite, kam si urobíte svoju lokálnu kópiu zdrojových kódov Lazara, ja si takéto veci ukladám do adresára /usr/src (aby Vám to tiež fungovalo, nezabudnite sa pridať do skupiny src), ale môže to byť pokojne aj domovský priečinok. Prepnite sa do zvoleného adresára a spusťte príkaz, ktorý zabezpečí prvotné vytvorenie lokálnej pracovnej kópie:
svn commit http://svn.freepascal.org/svn/lazarus/trunk lazarus
Tento príkaz vlastne vraví, že má subversion vytvoriť pracovnú kópiu vetvy http://svn.freepascal.org/svn/lazarus/trunk do podadresára lazarus. Prvotné stiahnutie chvíľu trvá, takže buďte trpezliví. Program počas sťahovania vypisuje mená súborov, ktoré sťahuje a na konci vypíše číslo revízie vetvy svn, napríklad:
At revision 14586.
Inštalácia FPC
Na preloženie Lazara potrebujete mať v systéme nainštalovaný prekladač FreePascal, používatelia vetvy testing v Debiane majú k dispozícii verziu 2.2.0, takže stačí nainštalovať z úložiska pomocou:
aptitude install fpc fpc-source
Používatelia stabilnej verzie si musia stiahnuť balíčky zo stránky Lazara alebo FreePascal, pričom si môžete stiahnuť jednotlivé balíčky (podotýkam, že všetky, ktoré začínajú fp) alebo si stiahnite archív, ktorý obsahuje všetky potrebné balíčky a ten si v počítači rozbaľte. Pre jednoduché nainštalovanie vštetkých balíčkov FreePascalu stačí v danom adresári zadať:
dpkg -i fp*
Zostavenie Lazara
Postup prekladu Lazara je na pekne popísaný v dokumentácii a je naozaj jednoduchý. Ak chcete len používať najaktuálnejšiu verziu Lazara, stačí teraz vstúpiť do adresára so zdrojovými kódmi Lazara a spustiť preklad. Vhodné je ešte aj aktualizovať pracovnú kópiu zdrojových kódov:
cd lazarus svn update make
Takto máte vybudované prostredie Lazarus v aktuálnom adresári a môžete ho spustiť pomocou
./lazarus
Pre aktualizáciu takto nainštalovaného Lazara stačí zaktualizovať zdrojové kódy a spustiť znova kompiláciu, spolu s parametrom pre vyčistenie starého prekladu:
svn update make clean all
Toto preložite Lazara s IDE bez nainštalovaných balíčkov, aby ste ich pripojili spusťte príkaz make s parametrom idepkg
make idepkg
Pri prvom preklade na čistú inštaláciu som dostal chybu o chýbajúcej knižnici, keďže sa mi nechcelo hlbšie pátrať, pozrel som do závislostí balíčka Lazarus a zistil, že vyžaduje tieto balíčky:
fp-compiler, fp-units-base, fp-units-fcl, fp-units-gtk, fp-units-rtl, fpc-abi-2.2, libc6, libgdk-pixbuf-dev, libgdk-pixbuf2, libglib1.2ldbl, libgtk1.2, libgtk1.2-dev, libx11-6, libxext6, libxi6
Takže, ak ich nemáte, doinštalujte si ich. Teda, aby som bol úplne opresný, mne stačilo nainštalovať balíček libgdk-pixbuf-dev, čo automaticky doinštaloval aj ostatné chýbajúce knižnice.
Pokročilý preklad
Pokiaľ z nejakého dôvodu chcete mať oddelenú pracovnú kópiu SVN a inštaláciu Lazara, stačí Lazara nainštalovať do iného adresára. V dokumentácii sú k dispozícii dva skripty, pomocou ktorých môžete tento proces zautomatizovať vo Windows aj v Linuxe. Konkrétne skript pre Linux však inštaluje Lazara do adresára /usr, preto vyžaduje administrátorské práva. Linuxový skript som si trochu upravil, aby vyhovoval mojim potrebám a teraz vyzerá takto (nezabudnite si prispôsobiť adresáre!!!):
-
#!/bin/bash
-
# pred použitím tohoto skriptu musíte mať vytvorenú pracovnú kópiu
-
# preto, ak ju ešte nemáte vytvorenú, najprv spusťte
-
# svn checkout http://svn.freepascal.org/svn/lazarus/trunk lazarus
-
-
### Definícia ciest
-
BASEDIR=/usr/share/
-
LAZSVNDIR=/usr/src/lazarus/
-
LAZDIR=${BASEDIR}lazarus/
-
LAZBACKUP=${BASEDIR}lazarus.bak/
-
-
### Odstránenie starej zálohy, ak existuje
-
date +"%T %tŠtart"
-
if [ -d $LAZBACKUP ]
-
then
-
date +"%T %tOdstraňujem starú zálohu"
-
rm -rf ${LAZBACKUP}*
-
else
-
date +"%T %tStará záloha neexistuje"
-
fi
-
-
### Vytvorenie novej zálohy
-
date +"%T %tVytváram zálohu starej inštalácie"
-
cp -R $LAZDIR $LAZBACKUP
-
-
### Aktualizácia pracovnej kópie
-
date +"%T %tAktualizujem pracovnú kópiu"
-
svn update $LAZSVNDIR > ~/svn_update.log
-
-
### Export pracovnej kópie do cieľového adresára
-
date +"%T %tExportujem pracovnú kópiu"
-
#rm -rf ${LAZDIR}*
-
svn export $LAZSVNDIR $LAZDIR --force
-
-
### Preklad a vybudovanie Lazarus
-
date +"%T %tBudujem Lazarus"
-
cd $LAZDIR
-
make > /dev/null
-
-
date +"%T %tBudujem balíčky"
-
make idepkg > /dev/null
-
-
date +"%T %tHotovo"
Tento skript, rovnako ako pôvodný, inštaluje Lazarus do adresára /usr/src/lazarus. S ohľadom na prístupové práva adresára /usr/src, bolo potrebné pôvodný skript spúšťať správami root. Aby som toto obišiel, upravil som vymazávanie tak, že maže len obsah záložného adresára, ale skript vyžaduje vopred vytvoriť podadresáre lazarus a lazarus,bak v adresári /usr/share, vrátane nastavenia ich prístupových práv a vlastníctva:
mkdir /usr/share/lazarus mkdir /usr/share/lazarus.bak chmod g+w /usr/share/lazarus* chown .src /usr/share/lazarus*
Zvolil som skupinu src, Vy si môžete zvoliť inú, len dajte pozor, aby ste boli jej členom, pretože je nastavené právo zápisu pre skupinu. Ďalším vylepšením je použitie príkazu svn export, ktorým som nahradil prosté kopírovanie pracovnej kópie. V podstate robí to isté, čiže kopíruje obsah pracovnej kópie, ale na rozdiel od prostého kopírovania, vynecháva interné súbory subversion (tj. podadresáre .svn).
Záverečné poznámky
Ak ste už mali predtým Lazarus preložený a spustený, vytvoril si adresár s nastaveniami v ~/.lazarus. Nové vybudovanie tieto nastavenia prevezme, vrátanie ciest, preto si buď ručne upravte cesty, alebo po prvý krát tento adresár zmažte
rm -rf /home/*/.lazarus
Ak chcete aby skript prekladal IDE priamo do GTK2, pridajte k make parameter LCL_PLATFORM=gtk2, takto
make LCL_PLATFORM=gtk2 > /dev/null
a nezabudnite aj
make idepkg LCL_PLATFORM=gtk2 > /dev/null

