ULUXIL - novy projekt pro Linux

Vladimir Mach mach na mrakoplas.phil.muni.cz
Pondělí Červenec 24 18:40:20 CEST 2000


Vazeni pratele!

Chtel jsem Vam nabidnout svuj novy softwarovy projekt pro Linux, jehoz nazev je ULUXIL 
(Universal Linux User-Executive Installing Loader). Jde o instalacni balicek novych prikazu 
pro shell, ktere mohou jednak poslouzit linuxovym zacatecnikum a zjednodusit jim praci (coz 
je vedlejsi), jednak zrychlit praci tisicu uzivatelu. Navic umoznuji uplne novy zpusob 
instalacni distribuce libovolnych programu (coz je hlavni a myslim, ze i pomerne zajimave).

Nejdrive by mohlo byt uzitecne rici, proc jsem ULUXIL vlastne zacal programovat. Tak tedy: 
Vezmu-li v uvahu, ze poctiva prace s Linuxem vyzaduje predevsim praci s prikazy 
spustenymi ze shellu, je nanejvys zadouci, aby prikazy pod shellem spoustene byly co 
nejvykonnejsi a umoznovaly co nejvice veci. Mnozi uzivatele si proto obohatili vlastni shell 
ruznymi zkratkovymi aliasy dle vlastnich potreb, nebot zakladni prikazy dostupne 
bezprostredne po instalaci Linuxu nejsou vzdy dostatecne vykonne a zaroven rychle. Jako 
priklad mohu uvest takrka jiz univerzalne rozsireny alias "la", ktery velike mnozstvi linuxaru 
pouziva pro zkraceni prikazu "ls –al | more". Protoze takto vznikle nove prikazy jsou casto 
dilem velmi dobrych napadu, bylo by extremne uzitecne, kdyby vsichni linuxovi uzivatele 
meli moznost pridavat sve nove prikazy do jednotneho unifikovaneho projektu, ktery by o sve 
nove prikazy obohacovali, rozsirovali a posilali dale. A prave to jsem dal za cil projektu 
ULUXIL, ktery jsem za timto ucelem navrhl a naprogramoval. Az ULUXIL projde rukama vice programatoru,
kteri jej obohati o stovky dalsich uzitecnych prikazu, bude jeho posledni verze moci byt suverene
dodavana v kazde nove distribuci Linuxu bez ohledu na jeho verzi.

Jde vlastne o univerzalni instalacni balicek, ktery ma v sobe podadresare "bash" a "c". Jak jiz 
jejich nazvy napovidaji, skryvaji v sobe tyto adresare zdrojove soubory v bashi a v cecku, 
ktere budou po spusteni instalace systemu ULUXIL naprosto prehledne a neskodne 
nainstalovany do systemu Linux. Cely projekt je resen tak, ze pokud spusti instalaci 
ULUXILu bezny uzivatel, budou nove prikazy dostupne pouze jemu ci tem, kdo sdileji jeho 
pristupova prava, zatimco pokud ULUXIL nainstaluje root, budou jeho prikazy zpristupneny 
vsem uzivatelum daneho systemu. ULUXIL se instaluje nesmirne jednoduse – pouhym 
spustenim souboru „install" v hlavnim adresari. Balik navic obsahuje konfiguracni soubor 
„suidfiles", do nehoz staci velmi pohodlne vepsat nazev prikazu, pro nez muze byt vhodne 
povolit SUID, a ULUXIL se pote pri instalaci automaticky dotaze instalujiciho uzivatele, zda 
ma postupne pro takove prikazy SUID nastavit. Zcela spolehlive a stoprocentne ciste funguje 
i odinstalovani ULUXILu spustenim souboru „uninstall".

Posledni model balicku ULUXIL, kterou jsem napsal zatim jeste bez spoluprace s jinymi 
uzivateli, je verze 2.8. Tu timto davam k dispozici k dalsimu vylepsovani, obohacovani a 
sireni. Necht uzivatele, kteri budou chtit obohatit ULUXIL o dalsi vlastni prikazy, vepisuji
zdrojove texty techto prikazu pod vlastnimi nazvy prave do podadresaru "bash" a "c", vzdy podle
toho, zda bude zdrojak v bashi nabo v Cecku. Pri instalaci ULUXILu instalacni program sam
bashove prikazy aktivuje a C-skripty skompiluje.
ULUXIL verze 2.8 zatim obsahuje nekolik prikazu, z nichz nektere jsou skutecne jen pro zacatecniky, 
nektere mohou pomahat zkusenejsim uzivatelum. O tech se zde nechci zminovat az tak 
dopodrobna, nebot detailni popis techto prikazu je k dispozici v souboru README. Chtel 
bych se zde vsak zminit o jednom prikazu, ktery muze podle meho nazoru prinest dosti zmen 
do dosavadniho zvyku sireni instalacnich balicku a provadeni jejich vlastni instalace. Touto 
novinkou je prikaz "uxi", ktery ULUXIL obsahuje jako zakladni reprezentacni prikaz. Prikaz 
"uxi" umoznuje totiz vytvorit z instalacniho adresaroveho baliku jediny instalacni soubor, 
ktery bude jednak komprimovany a zaroven spustitelny (!). Pri jeho vytvareni staci napsat 
prikaz uxi a za nej nazev instalacniho adresare. System po par desetinach vteriny nabidne 
textovy editor vi, do nehoz uzivatel pouze vepise davku prikazu urcenou k instalaci daneho 
programu a o zbytek se nestara. Prikaz uxi pote vytvori specialni soubor, ktery se bude 
jmenovat stejne jako instalacni adresar, ovsem s priponou ".uxi". Tento soubor je 
komprimovany a zaroven spustitelny a je urcen k velmi pohodlne distribuci daneho programu. 
Tim, ze jej jini uzivatele spusti, se soubor sam rozbali a provede instalacni kroky, ktere do nej 
puvodne jeho tvurce vlozil.
Uvedu priklad. Dejme tomu, ze máme instalacni adresar, ktery se jmenuje "program-1.0". Ten 
beznym zpusobem obsahuje vsechny nutne zdrojaky a makefile. A dejme tomu, ze standard 
urceny k instalaci tohoto programu je nasledujici davka:
./configure
make clean
make
make install
make install.all

Nyni mame dve moznosti, jak program distribuovat. Muzeme adresar klasicky zatarovat a 
nechat uzivatele instalovat jej vyse uvedenymi kroky, ktere si po manualni dekomprimaci 
precte v README. Nebo mame jinou moznost: vytvori uxi-verzi nasledujicimi kroky:

uxi program-1.0

System po vterince nabidne editor vi, do nehoz vepiseme instalacni kroky:

./configure
make clean
make
make install
make install.all

Po ulozeni souboru nam system pripravi v mistnim adresari vysledny soubor "program-1.0.uxi",
ktery je spustitelnym komprimovanym balickem. Pokud si pak jiny uzivatel bude chtit program-1.0
nainstalovat, staci, kdyz si sezene soubor program-1.0.uxi a ten pak spusti. Soubor se dekomprimuje,
system vstoupi do zakladniho instalacniho adresare a nainstaluje program provedenim instalacnich kroku.

Pozor!
Zdrzenlivejsi uzivatel by vsak mohl namitnout: "Co kdyz si chci instalacni program
nejdrive prohlednout a nebudu mit zajem o okamzitou instalaci?" Nuze, neni nic snazsiho, nez vyuzit
dalsi funkci komprimacniho protokolu uxi. Pokud totiz spustite uxi-balicek s parametrem -t, nedojde
k jeho instalaci, nybrz dojde k vytvoreni tar-komprimovane verze. Priklad:

./program-1.0.uxi

Vyse uvedeny prikaz spusti okamzitou instalaci.

./program-1.0.uxi -t

Vyse uvedeny prikaz pouze zanecha v mistnim adresari nasledujici soubor:

program-1.0.tgz

Myslim, ze tato metoda skutecne otevira nove moznosti sireni a instalovani programu pod Linuxem.
Navic ma napriklad na rozdil od dosud dostupneho instalacniho protokolu rpm nasledujici vyhody:

1) Funguje spolehlive pro vsechny typy Linuxu, nejen pro RedHat.
2) Nevyzaduje, aby mel instalujici uzivatel na svem pocitaci nainstalovany zadny specialni prikaz.
   Staci bash a tar - vse ostatni uz ma uxi-verze v sobe.
3) Vysledek instalace je naprosto stejny jako pri "poctivem" roztarovani a provedeni instalacnich
   kroku popsanych v README.
4) Protokol umoznuje vytvoreni tar verze bez instalace a tim i individualni zasah do instalacnich
   souboru ci jejich prohlidku.

Doufam, ze Vas tento program potesi a poslouzi Vam k dobremu.

Vse v systemu ULUXIL je volne siritelne a upravitelne. Byl bych vsak rad, aby se ULUXIL vzdy siril
s prikazem uxi a aby nikdo z jeho sestavy zadne programy neubiral. Rovnez bych byl rad, aby se
prikaz uxi vzdy siril jen jako soucast projektu ULUXIL.

V Brne, 22. cervence 2000

Mgr. Vladimir "Kenny" Mach
mach na mrakoplas.phil.muni.cz

Veskery software jak ve verzi tar tak ve verzi uxi zasilam jako prilohu.
Rovnez je vse mozno stahnout volne z adresy:
http://www.phil.muni.cz/~mach/devel

Hezky den!



Daląí informace o konferenci Linux