Előzményként összegzem a gobo linux-ról az álláspontomat:
-előnye: Egy csomagból több verzió is lehet a fájlrendszerben, és ha az ember nem csomagkezelővel, hanem kézileg tákol össze csomagokat forrásból pl: frissítés céljából (/usr/local), akkor nyomon követhető ezen csomagok jelenléte és elhelyezkedése, ellentétben azzal, mintha minden "lib"-et az /usr/lib könyvtárban hánynánk össze.
-hátránya: A Gobo linux nem mint filozófia, hanem mint konkrét disztribúció, nehezen karbantartható, és jelen állapotában rendkívül "bug"-os. Valamint a csomagkezelője nem nyújtja azt a komfort élményt és stabilitást amit pl. a Debian alapú rendszereké.
Én az előny-nél azt emeltem ki, ami számomra előny lenne egy Program Files Linuxban. Persze posix disztr.-n is lehet kézileg csomagokat telepíteni. "make install" hatására az /usr/local könyvtárban lesznek összezsúfolva. A tapasztalataim azonban azt mutatják, hogy bár vannak környezeti változók amiben meg lehet adni hogy az /usr/local-ban keresse a fordító a szükséges "lib"-eket, ez elég labilis és kényelmetlen megoldás, mert ennek ellenére is előfordul hogy a fordítási folyamat közben a /usr/lib-es "lib"-ek kerülnek először felsorolásra, ezért a fordító pl. rossz fájlban keresi a címkéket, amik a linkeléshez kellenének. Egy szó mint száz, ez az /usr és /usr/local szétválasztás, zűrzavarhoz és káoszhoz vezet.
Célom hogy Gobo csomagkezelés előnyeit megvalósítsam egy normál posix kompatibilis disztr. alatt.(Ubuntu)
Ez CSAK A KÉZILEG TELEPÍTETT CSOMAGOKRA VONATKOZIK, a csomagkezelő dolgaihoz nem nyúlnék.
Írtam egy programot, ami a FUSE (Filesystem in Userspace) modulra épül. Ezzel fel lehet mountolni könyvtárakat, úgy, hogy a fájlrendszer kéréseit nem a kernel, hanem egy felhasználói szintű program dolgozza fel. Az én programom azt tudja hogy ha pl. az egyik alkönyvtárba "felmountolod a gyökeret", akkor abban a könyvtárban, a gyökérben található fájlokat/könyvtárakat tudod olvasni. Ha viszont egy új fájlt helyezel el abban a könyvtárban, akkor az fizikailag egy másik könyvtárba fog kerülni pl.(/tmp/write).
Ha chroot-olsz ebbe a "gyökérkönyvtárba", és kiadod a "make install" parancsot a telepítendő csomag könyvtárában, akkor a program összegyűjti egy könyvtárban a "make install" által a gépre felmásolni akart fájlokat.(kipróbáltam, működik) Ezzel készen is van egy "gobo linux"-os csomag.
Ezek után már csak annyi a dolgunk, hogy a könyvtárat bemásoljuk egy szándékosan erre a célra létrehozott "/Program Files/[csomag neve]/[verzió]" könyvtárba, majd a linkeket elkészítsük a gobo linux mintájára a megfelelő könyvtárakban(/usr/lib,/usr/include,/usr/bin...).
így tehát egy sima Ubuntu Linux alatt telepíthetünk csomagokat, egy kézileg karbantartott "Program Files" könyvtárba.
Szerk:
Aktuális változat: http://hup.hu/node/100519