Re: kompilace


To Debian CZ/SK project discussion list <czdebian-l zavinac debian bod cz>
From Zbyněk Vraštil <zvrastil zavinac seznam bod cz>
Date Fri, 06 Jan 2006 11:34:39 +0100
User-agent Mozilla Thunderbird 1.0 (Windows/20041206)

Plne podporuji pouzivani checkinstallu. Par dalsich poznamek:

a) checkinstall balicek implicitne rovnou nainstaluje, neni potreba delat jeste dpkg -i

b) je dobre se podivat na soubory README a INSTALL, ktere jsou temer vzdy v hlavnim adresari zdrojovych kodu programu. Tam by mel byt popsan postup kompilace/instalace. Vetsinou to bude "svata trojice" ./configure, make, make install, ale jsou i programy, u kterych to bude jine. Treba ty, napsane s vyuzitim knihovny qt, kde se misto configure pouziva qmake.

c) Je dost mozne, ze vam skript ./configure skonci s chybou, ze nemuze najit nejakou knihovnu. To obvykle znamena, ze chybi tzv. development verze teto knihovny (hlavne hlavickove soubory). Pokud je dana knihovna dostupna jako debiani balicek, je dostupny rovnez balicek s jeji development verzi. Jmenuje se stejne jako balicek samotne knihovny + "-dev". Treba pro balicek libjpeg bude existovat balicek libjpeg-dev, ktery musi byt nainstalovan, aby bylo mozne zkompilovat program, ktery tuto knihovnu pouziva.

s pozdravem, Zbynek

Petr Stehlik wrote:

Martin Slouf píše v Pá 06. 01. 2006 v 09:52 +0100:
osobne doporucuji, minimalne napoprvy, abys mohl snadno 'deinstalovat' ==
smazat:

./configure --prefix=/usr/local/<jmeno_programu>
make
make install (pro uspesne provedeni tohoto prikazu je nutne se prihlasit
              jako root)

ten parametr za configure zaridi, ze se program instaluje do tebou zvoleneho
adresare (vcetne knihoven a dokumentace), takze odstraneni je snadna
zalezitost -- proste smazes ten adresar /usr/local/<jmeno_programu>

Par poznamek:

1) je tezke najit program, ktery jeste nema debianni balicek. Pokud
jeste neni primo v http://packages.debian.org/ tak klidne muze byt
jinde, obvykle poradi strycek google.

2) kdyz uz clovek chce 'risknout' make install a pouzije vami doporuceny
postup, tak program stejne nebude fungovat, protoze jednak nebudou
spustitelne programy tam, kde se hledaji (v $PATH) a druhak nebudou
jejich dynamicke knihovny tam, kde se hledaji (/etc/ld.so.conf).
A pokud je nahodou Makefile daneho programu tak promakany, ze se o to
postara (napr. symbolickymi linky), tak potom zas nefunguje vas napad s
"odinstalovanim" pomoci pouheho smazani adresare v /usr/local/<>.

Pokud presto chcete pouzivat tento postup, tak pro lepsi pocit sucha a
bezpeci doporucuji misto do /usr/local/<jmeno_programu> konfigurovat
prefix do $HOME/<jmeno_programu>. Vyhoda je, ze pak pro make install
nemusite byt rootem a tim padem ani nehrozi, ze by vymakany Makefile
udelal symbolicke linky do systemovych adresaru.

3) doporucuji podivat se na checkinstall (aptitude install checkinstall)
a pak ve zname trojkombinaci ./configure && make && make install
nahradit treti krok prikazem checkinstall. Vypadne z toho pekny debianni
balicek, ktery si pak instalujete sami pres "dpkg -i balicek.deb" a pro
odinstalaci pak funguje napr. spolehlivy "aptitude remove balicek".

Petr


________________________________________________
CZdebian-l maillist  -  CZdebian-l zavinac debian bod cz
http://www.debian.cz/mailman/listinfo/czdebian-l
E-mail (un)subscriptions: czdebian-l-request zavinac debian bod cz




Partial thread listing: