Hlavní navigace

Správa ručně kompilovaného software na Unixu

Jiří Bělka

Možná jste už někdy řešili problém, jak se vypořádat s ručně zkompilovaným softwarem na vašem unixovém systému. Například vaše linuxová distrubuce nebo BSD systém neobsahovaly binární balíček nebo "návod", jak určitý program zkompilovat s využitím distribučních/systémových utilit.

Pravděpodobně jste tedy program nainstalovali do určité lokace a dále se o něj nestarali. Nebo jste použili nástroj checkinstall, který vytvoří ze zkompilovaného programu binární balíček a zaznamená instalaci programu podle distribučních zvyklostí určité linuxové distribuce.

Dobrá, co když nemáte Linux? Nebo se nechcete omezovat na systémové/dis­tribuční balíčkovací utility? Nebo jste se rozhodli zkusit LFS (Linux from Scratch), na kterém vůbec není počítáno se správou software…

Pokročilý uživatel namítne, že si pomůže symbolickými odkazy. Ano toto je řešení, ale pracné. Proto si dnes ukážeme nástroj graft – perlový skript, který nám pomůže řešit náš problém.

gunzip -c graft-2.4.tar.gz | tar xvf -

cd graft-2.4

make -f Makefile.dist

Nyní si otevřeme v oblíbeném editoru Makefile a můžeme změnit pár konfiguračních voleb. graft samozřejmě můžete později donutit ke změnám přímo volbami na příkazovém řádku.
Takže nejdůležitější volby jsou:

PACKAGEDIR      = /opt/pkgs

Nastavuje cestu, do které budete instalovat ručně zkompilované programy. Například /opt/pkgs/figlet-2.2.1.

TARGETDIR       = /opt/gpkg

Nastavuje cestu pro „grafty“. Tj. například /opt/gpkg/bin/figlet bude symbolický odkaz na /opt/pkgs/figlet-2.2.1/bin/figlet.

PERL            = /usr/bin/perl

Cesta k perlu. V případě, že hodláte využít systémovou instalaci perlu, nastavte správnou cestu.

BUILDPERL       = $(PERL)

Jestliže hodláte v budoucnu zgraftovat i perl, pak nastavte tuto volbu na aktuální cestu k perlu a pozměňte volbu PERL na budoucí umístění.

LOGFILE         = /var/log/graft

Cesta k logovacímu souboru graftu.

SUPERUSER       = 1

Nastavte na 1, jestliže potřebujete práva uživatele root k zápisu do TARGETDIR. Jestliže hodláte graftem spravovat vlastní programy například v domovském adresáři změňte na 0.

PRESERVEPERMS   = 0

Jestliže hodláte spravovat pouze programy například ve vašem domácím adresáři, tj. máte volbu SUPERUSER = 0, pak PRESERVEPERMS = 1 způsobí dědění práv a nastavení vašeho uživatele. Volba PRESERVEPERMS = 0 funguje pouze v kombinaci se SUPERUSER = 1.

Zeditovaný Makefile uložíme a provedeme následují kroky k instalaci graftu do  PACKAGEDIR.

make clean

rm -f graft

make

graft jsem instaloval jako utilitu pro administrátora, tudíž jsem jej nainstaloval příkazem…

sudo make install

Nyní máte graft nainstalovaný v /opt/pkgs/graft-2.4, tedy je nainstalován ve svém vlastním adresáři, zcela oddělen od jiných programů. Naším cílem je ale pomoci programu graft zjednodušit instalaci, odinstalaci ručně kompilovaného software a hlavně snadno tento software zpřístupnit uživatelům pomocí pár adresářů, které si mohou přidat do své PATH.

/usr/bin/perl /opt/pkgs/graft-2.4/bin/graft -i graft-2.4

export PATH=$PATH:/opt/gpkg/bin

$ which graft
/opt/gpkg/bin/graft

export MANPATH="/usr/share/man"
export MANPATH="/usr/local/man:${MANPATH}"
export MANPATH="/opt/gpkg/man:${MANPATH}"

Toto je nejjednoduší cesta jak přidat manuálové stránky. Například na OpenBSD je systémové řešení dost krkolomné. Odvážní zájemci si počtou man man.conf.

$ man graft

Protože mám rád prohlížeč obrázků feh, chtěl jsem jej použít i na Slackware 10.2. Bohužel není oficiální balíček, tak jsem se rozhodl pro ruční kompilaci feh, potřebné knihovny libgiblib a použití nástroje graft.

export PACKAGEDIR='/opt/pkgs'
./configure --prefix=${PACKAGEDIR}/giblib-1.2.4

Defaultně graft bude hledat instalovaný software jako podadresáře v PACKAGEDIR. Proto jsme jako --prefix nastavili  $PACKAGEDIR/giblib-1.2.4

gmake
sudo gmake install
sudo graft -i giblib-1.2.4

ls -l /opt/gpkg/bin/

$ ls -l /opt/gpkg/lib/libgiblib*
lrwxr-xr-x  1 root  wheel  38 May 23 03:56 /opt/gpkg/lib/libgiblib.a -> /opt/pkgs/giblib-1.2.4/lib/libgiblib.a
lrwxr-xr-x  1 root  wheel  39 May 23 03:56 /opt/gpkg/lib/libgiblib.la -> /opt/pkgs/giblib-1.2.4/lib/libgiblib.la
lrwxr-xr-x  1 root  wheel  43 May 23 03:56 /opt/gpkg/lib/libgiblib.so.1.6 -> /opt/pkgs/giblib-1.2.4/lib/libgiblib.so.1.6

Graftování instalovaného software je, jak vidíte, velmi jednoduché. graft umí samozřejmě i odinstalovávat, umožňuje definovat seznamy souborů/adresářů, které se mají z graftování vyloučit, částečné definovatelné graftování (symlinkujeme pouze určité soubory) nebo dovoluje měnit volby přímo na řádku, tudíž nemusíme být omezeni pouze na jeden TARGETDIR/ PACKAGEDIR.

graft je jednoduchý a rychlý perlový skript na správu ručně kompilovaného software. Nepotřebuje žádnou databázi ani pevně definované úložiště. Pro bližší informaci si pročtěte dokumentaci ve zdrojovém balíčku programu.

Našli jste v článku chybu?

20. 12. 2006 18:39

mato (neregistrovaný)
vacsinou nebyva problem kontaktovat maintainera ohladom aktualizacie portu..

2. 6. 2006 19:38

sly (neregistrovaný)
tak nepouzivej "alien" aplikace, nebo se smir s tim, ze kdyz to pro tvuj system neni, tak yto pro nej proste neni - tj. pouzivej neco jineho, nebo se vyporadej s "asimilaci" ;)
DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

DigiZone.cz: SES zajistí HD pro M7 Group

SES zajistí HD pro M7 Group

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

Lupa.cz: Levný tarif pro Brno nebude, je to kartel

Levný tarif pro Brno nebude, je to kartel

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Obchod budoucnosti je bez front, košíků i pokladen

Obchod budoucnosti je bez front, košíků i pokladen

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky