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
- 2225 megtekintés
Hozzászólások
Az otlet jo, tetszik. De hol a program? :))
- A hozzászóláshoz be kell jelentkezni
Jelenleg csak ezzel szolgálhatok:
http://skyweb.hu/taxy/fuska.tgz
Béta verzió, és csak a "make install" által generált fájlokat lehet vele egy könyvtárba begyűjteni. (--help működik)
- A hozzászóláshoz be kell jelentkezni
Holnap kiprobalom. :)
- A hozzászóláshoz be kell jelentkezni
:)
Mountolásnál fontosak lehetnek az alábbi opciók:
-o allow_other allow access to other users
-o allow_root allow access to root
-o dev Interpret character or block special devices on the file system.
Ha root-al chroot-olt környezetként szeretnéd használni.
- A hozzászóláshoz be kell jelentkezni
Még valami: a /proc könyvtár olvasása egyelőre még valamiért nem működik, de a "make install" parancsot ez nem zavarja(remélhetőleg). A "configure" és "make" parancsokat természetesen a valódi gyökérben érdemes futtatni.
- A hozzászóláshoz be kell jelentkezni
Hallottál már a "Rootless" GoboLinuxról? Ez egy szkriptrendszer, mely arra szolgál, hogy egy másik Linux disztró alatt az ottani $HOME könyvtáradba elkészítse a Gobo fájlrendszer-hierarchiát, s abba (e szkriptekkel) tudj programokat telepíteni, illetve onnan eltávolítani. Még csak root jogosultságokat sem igényel. Így egyszerre élvezheted a Gobo és egy hagyományos disztró minden előnyét! Ismerkedj meg vele! Bővebben olvashatsz róla itt:
http://gobolinux.org/index.php?page=rootless
-------------
Regényeim:
http://adlibrum.hu/Poliverzum/
http://www.novumverlag.hu/novitaeten/8/?product_id=22&detail=1
:::A #86-os sorszámú hivatalosan bejegyzett GoboLinux felhasználó
- A hozzászóláshoz be kell jelentkezni
E cikk eredeti helye:
http://gobolinux.org/index.php?page=rootless
Rootless (= „root nélküli”) GoboLinux
Ha ki szeretnéd próbálni valódi telepítés nélkül, hogy neked való-e a GoboLinux, akkor két választásod van.
Az első, amit ajánlunk, hogy letöltöd a CD-képmást, ami egy „live CD” is, tehát nemcsak telepítő lemez, hanem önmagában egy teljesértékű GoboLinux rendszer. Ennek segítségével megvizsgálhatod az alternatív fájlrendszer-struktúránkat, és láthatod, miként vannak benne szervezve a dolgok.
A második lehetőség, hogy minimális telepítést hajtasz végre a szkriptekből és a tartalomjegyzék-hierarchiából a „home”-könyvtárad belsejébe. Ezt nevezzük mi úgy, hogy „Rootless GoboLinux”. {Magyarul „Root nélküli GoboLinux” lenne a neve, de szerintem nincs értelme lefordítani e nagyon speciális szakkifejezést, így az angol nyelvű oldalakon is érteni fogjuk. - a fordító megjegyzése}.
A Rootless telepítése után lehetőséged nyílik csomagoknak a GoboLinux szkriptrendszer használatával történő installálására, s ezek futtatására a te felhasználói környezeteden belül, úgy, mint az a GoboLinuxban szokásos. Mindazonáltal nem leszel képes érvényes GoboLinux bináris csomagok előállítására, mert minden útvonal a telepítéseidben relatív kell legyen, a te „home”-részkönyvtáradhoz viszonyítva. A GoboLinux recipék azonban kompatibilisek kell legyenek egymással a normál- és a Rootless telepítések esetén.
A Rootless GoboLinuxot azoknak az embereknek hozták létre, akik nem dönthetnek maguk arról, melyik Linux disztribúciót használják (tipikusan például munkahelyeken vagy egyetemi laboratóriumokban), e módszerrel ugyanis a saját „home” könyvtárukban, saját felhasználói jogosultságukat használva is élvezhetik a mi tartalomjegyzék-struktúránk előnyeit. Ne habozz felvenni velünk a kapcsolatot, ha több információra van szükséged!
A Rootless installálása
A Rootless GoboLinux rendben való feltelepítéséhez minden amit tenned kell, hogy letöltöd és futtatod a CreateRootlessEnvironment szkriptet (illetve szükséges, hogy a "chmod +x CreateRootlessEnvironment" paranccsal futtathatóvá is tedd a letöltött állományt előbb).
A fent említett szkript néhány egyszerű feladatot végez el. Alapvetően:
* Elkészíti a „Programs” és a „System” könyvtárakat
* Telepíti a Scripts csomagot
* Megalkotja a 'StartRootless' nevű szkripteket, melyeket a ~/.zshrc vagy a ~/.bashrc
használ
Követelmények:
A CreateRootlessEnvironment és a GoboLinux szkriptek feltételezik, hogy rendelkezésre áll egy alap GNU felhasználói tér (ez általában nem probléma egy Linux-bázisú rendszerben, de máshol nem okvetlenül egyértelmű a megléte). Mielőtt futtatod a szkriptet, győződj meg róla, hogy ezek az eszközök elérhetőek a $PATH-odban:
* GNU Bash
* GNU CoreUtils
* GNU Sed
* GNU Wget
A Rootless uninstallálása
Ha bármi okból szükségét éreznéd, hogy valamikor később eltávolítsd a Rootlesst, ez igen egyszerű feladat - mindössze töröld ezeket a könyvtárakat: ~/Programs, ~/System és ~/.Settings .
-------------
Regényeim:
http://adlibrum.hu/Poliverzum/
http://www.novumverlag.hu/novitaeten/8/?product_id=22&detail=1
:::A #86-os sorszámú hivatalosan bejegyzett GoboLinux felhasználó
- A hozzászóláshoz be kell jelentkezni
Köszi!
Megnézem ígérem.
- A hozzászóláshoz be kell jelentkezni
Nekem olyan érzésem van, hogy újra fel akarod találni a rootlesst.
Idézet a GoboLinuxról írt könyvemből:
(http://mek.oszk.hu/05800/05895/ )
Na és akkor most már mindent tudsz amit kell, kedves Olvasó, csak annyit jegyeznék még meg, hogy én kipróbáltam ezt (a Rootlesst) az UhuLinux-1.2 disztribúció alatt, és kiválóan működik! A telepítéshez nem kell más, mint hogy töltsd le a szkriptet a fentebb megadott linkről, ( http://svn.gobolinux.org/tools/trunk/Scripts/bin/CreateRootlessEnvironm… ) tedd futtathatóvá, és indítsd el! Ha feltesz valami kérdést, akkor a legelsőnél bármi gombot megnyomhatunk, kivéve a Ctrl-C kombinációt, a többinél egyszerűen válaszoljunk Yest (azaz nyomjuk meg az „Y” gombot. Magyarán ha mindenütt Y-t nyomunk, az jó lesz...)
A könyvtárak létrehozásán kívül csak annyi változás történik a rendszerünkben, hogy a Bash és a Zsh shellünk PATH-jába bekerül az az útvonal, amin át elérhetőek a GoboLinux szkriptek.
Na most hogy miért jó ez nekünk? Mert pld így mindent telepíthetünk forrásból a GoboLinux recipetárolóinak segítségével, anélkül, hogy görcsölnünk kellene sokat bizonyos fordítási opciók beállításával, sőt, hiába a forrásból való telepítés, hála a recipéknek, még a szükséges függőségek is feltelepülnek szükség esetén!
A saját Home könyvtáradon belül lesz egy Programs könyvtár, amiben a megfelelő altartalomjegyzékeken belül láthatod, hogy mi van a rendszeredbe telepítve. Ha nem kell valami, egyszerűen kitörlöd, ahogy azt egy GoboLinux rendszerben szokás, majd eltávolítod a RemoveBroken paranccsal a törött szimbolikus linkeket - például. De más módszer is lehetséges... Azaz, mindent megtehetsz, mint egy GoboLinux rendszerben, miközben be vagy ágyazva egy NemGoboLinux rendszerbe! És persze mi sem akadályoz benne téged, hogy a nem-gobo-linuxodat úgy kezeld, mint ahogy azt korábban megszoktad!
Hamar rá fogsz jönni, hogy legalábbis forrásból telepíteni dolgokat így, a Gobo-struktúrán keresztül sokkal kényelmesebb. Egyáltalán, így nem csak a hagyományos rendszered csomagkészletét használhatod, de a GoboLinux forráskészletét is, éppen ahhoz, ami a hagyományos linuxrendszerek közül a bináris alapú disztróknál a leginkább fogós kérdés: a forrásból való telepítéshez!
...
Tehát ha valamiért nem akarsz rögvest teljesen áttérni GoboLinuxra (ami felettébb helytelen...), akkor telepítsd azt Rootless változatban! Ehhez még csak újra sem kell particionálnod a rendszeredet!
A GoboRootless (amit általában egyszerűen csak „Rootless”-nek neveznek röviden) egy olyan módszer, melynek segítségével a Gobo csomagkezelő eszközöket egy másik rendszer belsejében használhatjuk. A GoboRootless nem igényel root jogosultságokat a befogadó rendszeren belül. A vendéglátó rendszer tehát lehet egy nem-Gobo Linux disztribúció. Régi tervünk - bár alacsony prioritással dolgozunk rajta - hogy e módszert elérhetővé tegyük nem-Linux gazdarendszereken is, mint pld a BSD rendszerek, OS X, sőt az MS Windows, de pillanatnyilag ezek támogatottsága legjobb esetben is csak kísérletinek nevezhető.
Mikor célszerű a GoboRootless használata?
Akkor, ha könnyen és tisztán óhajtasz programokat forrásból fordítani és telepíteni, ám...
Nincs rendszergazdai jogosultságod a gazdarendszerben, vagy...
Nem akarod megkockáztatni a gazdarendszer tönkremenetelét, vagy...
Ugyanazon program több változatát óhajtod egyidőben installálni, vagy...
Bármely egyéb okból is, de a Gobo eszközeit óhajtod használni.
A rendszergazdai jogosultságokat igénylő csomagkezelő eszközök tönkretehetik a rendszert. Minthogy a GoboRootless nem igényel root jogokat, a GoboRootless el van különítve a gazdarendszertől, emiatt nem képes azt tönkretenni.
Szükségletei
Minden platformon kell neki:
GNU Bash
GNU Coreutil
GNU Sed
GNU Wget
bzip2
Python (Jaj!!!)
beleértve a Python bz2 modulját
Figyelmeztetés: A Scripts csomag 2.6.4 verziójában a Rootless igényli, hogy a /bin/sh a GNU Bash-ra mutasson. Ez egy hiba, amit a jövőben majd kijavítunk. E hibának főként az Ubuntu alatt van jelentősége, aholis a /bin/sh egy symlink a dash shellre. Ha van root jogosultságod, kicserélheted e symlinket, hogy a bash-ra mutasson. Ellenkező esetben a Rootless sajnos nem fog neked (megfelelően) működni az Ubuntun.
A nem-i686 platformok igényei:
GNU GCC
(Nem-i686 felhasználók: Lásd alant a platformspecifikus megjegyzéseket.)
Installálás
$ cd $HOME
$ wget http://cvs.savannah.nongnu.org/viewcvs/*checkout*/tools/Scripts/bin/Cre…
$ mv CreateRootlessEnvironment\?root\=goboscripts CreateRootlessEnvironment
$ chmod u+x CreateRootlessEnvironment
$ ./CreateRootlessEnvironment
$ . Programs/Rootless/Current/bin/StartRootless
$ InstallPackage Atool
$ InstallPackage Compile
$ Compile MTail
-------------
Regényeim:
http://adlibrum.hu/Poliverzum/
http://www.novumverlag.hu/novitaeten/8/?product_id=22&detail=1
:::A #86-os sorszámú hivatalosan bejegyzett GoboLinux felhasználó
- A hozzászóláshoz be kell jelentkezni
Ez tényleg majdnem ugyan az, de én ennek ellenére mégsem bánom hogy megírtam ezt a programot.
Az árnyalatnyi különbség a kettő között az hogy nem recipét használok a fordításhoz hanem az eredeti makefile-t. Habár lehet hogy ez csak látszatkülönbség, mert a recipe is lényegében azt használja csak más szinten. A rootless esetében a make programot cseréljük le, és így "csalunk", az én megoldásomban a "make" marad, és a fájlrendszer manipulálásával érjük el ugyanezt. A rootless persze egy jobban kidolgozott dolog. Nekem ott szakadt el a cérna gobo-nál, amikor az utolsó szükséges csomag telepítésénél, ami kell az xfce4-hez, egyszerűen kilépett a compile program. Előtte is szívtam egy csomót vele, mert svn-nel frissítettem, aztán kiderült hogy hibás, de végül valahogy átküzdöttem magam a problémán. Már az eleve, hogy rajtam kéri számon hogy melyik csomagnak mik a függőségei, és hiába nyomom hogy "yes all", továbbra is zúdítja rám a kérdéseket. Nem neki kéne tudnia hogy mi kell neki?
De ha tényleg ennyire jól működik ez a recipe dolog akkor sem felesleges ez a program. Az elsődleges funkciója az hogy elválasztja egymástól az "olvasott", és az "írt" könyvtárat. Tehát pl. fel lehet mountolni vele egy CD-t úgy, hogy a CD könyvtárában át lehet írni pl a konfigurációs vagy akármilyen fájlokat. A használati módoknak csak a képzelet szab határt. :)
- A hozzászóláshoz be kell jelentkezni
Példa sikeres használatra:
root@msi:/work/fuska1# mkdir /tmp/write
root@msi:/work/fuska1# mkdir mopo
root@msi:/work/fuska1# ./fuska -e / -w /tmp/write mopo/ -o allow_other,dev -c
root@msi:/work/fuska1# chroot mopo/
root@msi:/# cd /work/gtk+-2.10.0
root@msi:/work/gtk+-2.10.0# make install
root@msi:/work/gtk+-2.10.0# exit
root@msi:/work/fuska1# umount mopo/
root@msi:/work/fuska1# cd /tmp/write/
root@msi:/tmp/write# ls
.delete root usr tmp work
Tehát a csomag a /tmp/write mappában készült el.
A ".delete root tmp work" könyvtárak nyilván nem tartoznak hozzá a csomaghoz. Ezeket egyszerűen törlöm.
a ".delete" mappába kerültek a telepítő által törölt fájlok nevei, ez valószínűleg csak az előző telepített verzió törléséből adódik.
"root" mappa csak a "bash_history" miatt keletkezett.
"tmp, work"-be csak ideiglenes fájlok kerültek.
"work" az a mappa amelyen belül a csomag le lett fordítva.
Ez egyetlen értékes itt az "usr".
- A hozzászóláshoz be kell jelentkezni
Hmm, valami ilyesmivel megoldható lenne ez is: http://hup.hu/node/93575
Lényegében amit te csináltál, megegyezik a Windows Vista óta jelen levő Virtual Store technológiával. Azzal a különbséggel, hogy maga a user már eleve egy ilyen chrooted környezetben dolgozik és nem utólag lép bele, illetve UAC engedély után kitörhet ideiglenesen belőle.
--
Don't be an Ubuntard!
- A hozzászóláshoz be kell jelentkezni
Azt annyira mégse javasolom, hogy ebben a chroot-olt környezetben használjuk a gépet, mert ne feledjük hogy egyetlen user level process-en keresztül történik az összes fájlművelet. Telepítés esetén ez még elmegy, mert úgyis symlinkeket készítünk az eredményből(amit már a kernel lekezel).
A másik nagy hátránya a dolognak, hogy chroot-olni csak a root tud. így kell még valami okosság, amivel a sima felhasználóknak is elérhetővé válik ez a telepítési módszer.
- A hozzászóláshoz be kell jelentkezni
Sok sikert a további kidolgozáshoz!
Én általában úgy oldom meg a forrásból való telepítés utáni tisztogatás anarchikus képét, hogy make után kiadom a checkinstall parancsot, csinál egy deb-et, s ha mégsem kell a továbbiakban, akkor csomagkezelővel leszedem. Ok, persze, így több verzió nem lehet jelen elvileg, de nem is nagyon szokott szükségessé válni.
Viszont az ötlet jó, biztosan hasznos lesz azoknak, akik fejlesztenek, debuggolnak, stb.
- A hozzászóláshoz be kell jelentkezni
Ez a checkinstall nagyon ígéretesen néz ki. Ha ez tényleg kompatibilis a makefile-okkal, akkor ez egy értelmes módszer a telepítésre. Mondjuk a 'make install'-on kívül, vannak még más parancsok is, amivel telepíthetünk valamit.
- A hozzászóláshoz be kell jelentkezni
a ./configure és make parancsok után annyi a dolog, hogy nem make install, hanem checkinstall jön.
Gyakorlatilag ez egy automatizált lehetőség erre:
http://www.ibiblio.org/pub/linux/docs/howto/translations/hu/html_single…
- A hozzászóláshoz be kell jelentkezni