Helyspórolás mini-HOGYAN Írta Guido Gonzato, [1]mailto:guido@ibogeo.df.unibo.it v1.0.1, 1999. április 7. _________________________________________________________________ Ez a mini-HOGYAN elmagyarázza, hogyan lehet a lehető lehető legkisebb helyre beszorítani egy Linux rendszert. Főleg notebook felhasználóknak hasznos. _________________________________________________________________ 1. Bevezetés Kaptam egy notebookot előtelepített Windows 95 operációs rendszerrel, és felraktam rá egy Linuxot is. Összenyomtam a Windows partícióját 500 MB-ra, 240 MB maradt a Linux partíció számára. Ez elég kevésnek tűnik, de mégis sikerült egy eléggé teljes Red Hat 4.1 alapú Linux rendszert rátennem, némi trükközés árán, amivel sok helyet spóroltam meg. Ha helyre van szükségünk, a következő fejezetekben leírt tanácsok megfogadásával elég sok lemezhelyet szabadíthatunk fel. Felhívom a figyelmet, hogy senki ne engem okoljon, ha valami tönkremegy. Jópár olyan programot kell majd használni, amelyek nálam klasszul működtek, de természetüknél fogva veszélyesek. Én megmondtam... 2. Szoftverkövetelmények Szükség lesz: * egy működő Linux rendszerre (bármelyik verzió megfelel); * a széles körben elterjedt gzip tömörítőprogramra, vagy a bzip2-re, ami letölthető a [2]ftp://sunsite.unc.edu/pub/Linux/utils/compress webhelyről, és jobban tömörít, mint a gzip, de lassabb és rengeteg memóriát használ; * az upx végrehajtható állományokat tömörítő programra, amelynek a honlapja a [3]http://www.nexus.hu/upx/ és a [4]http://wildsau.idv.uni-linz.ac.at/mfx/upx.html webhelyeken található; * és a [5]ftp://sunsite.unc.edu:/pub/Linux/libs/compression webhelyről letölthető zlibc csomagra, amelyet zlibc-X.X.tar.gz-nek hívnak, ahol X.X a legújabb verzió . Vannak más végrehajtható állományokat tömörítő programok is. Az egyik a gzexe (felejtsük el), egy másik a tcx, ami talán a legjobb volt, mielőtt az upx megjelent, egy harmadik a tzx, ami elvileg jobb, mint a tcx. A helyzet az, hogy mindent tönkretett, amikor kipróbáltam egy tartalék számítógépen, bár nem vagyok biztos benne, hogy mindent jól csináltam. A legjobb, ha az upx-et használjuk, mert megbízható, hatékony és kényelmes. Léteznek olyan kernel foltok, amelyek Stacker-szerű röptömörített fájlrendszert hoznak létre, de jelen pillanatban egyik sem a stabilitásáról és a megbízhatóságáról híres. Biztos, ami biztos, tartózkodjunk ezek használatától. 3. Az eljárás 3.1 A kernelforrás eltávolítása A kernel forrása több mit 20 MB helyet foglal, megfontolhatjuk a letörlését. Ha így döntenénk, fordítsunk egy kernelt egyszer és mindenkorra, ami a gépünkre kell, és szabaduljunk meg a forráskódtól. Azért legyünk óvatosak. A kernelforrás eltávolítása nem ajánlatos, ha nem vagyunk biztosak benne, hogy a gépünk megfelelően be van konfigurálva. Emellett a kernel # fejlécfájljai szükségesek a C programok fordításához. Gondoljuk meg kétszer! Ha a törlés mellett döntünk, akkor se töröljük le az include/linux könyvtárstruktúrát, hacsak nem vagyunk biztosak benne, hogy soha nem fogunk alkalmazásokat fordítani a gépen. 3.2 Az alkalmazások ritkítása Döntsük el, hogy melyik programra van igazán szükségünk. Néhány alkalmazás felesleges lehet. Például: biztos, hogy kell az emacs? Használhatjuk helyette a jed szövegszerkesztőt. Rajtunk múlik, hogy mit tartunk meg. Néhány általános ötlet: * A gcc elég nagy csomag. Ez szükséges a kernel újrafordításához, és minden olyan alkalmazás lefordításához, amelynek nincs előre lefordított Linux bináris változata. Természetesen akkor is szükségünk lesz rá, ha a saját C vagy Fortran (f2c-vel vagy g77-tel) programjainkat akarjuk lefordítani, törlés előtt gondoljuk át, hogy fogunk-e valaha programokat fejleszteni.. Más fordítóprogramok, pl. az lcc elég jók, de nem érik el a gcc szintjét. Azt javaslom, tartsuk meg! * Az X11 szörnyen nagy, de jó ha megvan. Ha nem tudunk meglenni nélküle, legalább próbáljuk a méretét a lehető legkisebbre leszorítani: csak a megfelelő X szerver program, csak egy egyszerű ablakkezelő, csak egy xterm, ne telepítsük a 100 dpi-s betűkészleteket, stb. * A TeX és kiegészítő csomagjai szintén nagyon nagyok. Ha nem használjuk a LaTeX csomagot, és megelégszünk a plain TeX csomaggal, sok helyet spórolhatunk. Nem kell használnunk az X11 alatti nézegetőket (xdvi és ghostview), mert használhatjuk a dvitty, a dvivga és a hasonló programokat. Ha nincs szükségünk az X11 alatti nézegetőkre, akár maga az X11 is feleslegessé válhat. * A játékok sosem létfontosságúak. 3.3 A bináris fájlok méretének csökkentése Kezdjük el csökkenteni a bináris fájlok méretét! Lépjünk be az /usr/bin könyvtárba, és adjuk a következő parancsot: machine:/usr/bin# strip * Ez eltávolítja a bináris fájlokba beágyazott szimbólumokat. Ismételjük meg ezt a lépést az /usr/X11R6/bin/ könyvtárban is, és az összes olyan könyvtárban, ahol végrehajtható fájlok lehetnek. Ne feledjük megkeresni a TeX és a gcc binárisait. Ha nem akarjuk tönkretenni a rendszerünket, akkor ne futtassuk ezt a parancsot az /sbin, a /bin, vagy az /usr/sbin/ könyvtárakban! 3.4 Tömörítés az upx programmal Telepítsük az upx programot, és olvassuk el a dokumentációját. Utána lépjünk be az /usr/bin könyvtárba és adjuk ki az upx * parancsot. Ez minden végrehajtható fájlt tömörít, a suid-osakat is (a tcx ezt nem tenné). Ismételjük meg ezt a lépést a többi fent említett könyvtárra. Ne feledjük tömöríteni a végrehajtható fájlokat, amikor új csomagot telepítünk! 3.5 Gzippeljük, amit lehet Van egy csomó fájl, amit egyszer és mindenkorra tömöríthetünk. Kezdjük az /usr/doc/ könyvtárral! Lépjünk bele és adjuk ki a következő parancsot: machine:/usr/doc# find . -type f -exec gzip -9 {} \; 2> /dev/null Ne feledjük tömöríteni a dokumentációt, amikor új csomagot telepítünk! Ismételjük meg ezt a lépést a TeX dokumentációját tartalmazó könyvtárra (az én rendszeremen ez az /usr/lib/texmf/texmf/doc/). Ha teljesen biztosak vagyunk benne, akár le is törölhetjük ezeket a könyvtárakat. Telepítsük a zlibc csomagot és fordítsuk le. Az olyan rendszereken, mint az enyém, a fordítás megszakad, mert a fordító nem találja a (statikus) libc könyvtárat. Semmi gond, fogunk találni egy uncompress.o nevű fájlt, és ez az, amire szükségünk van. Másoljuk ezt a fájlt az /usr/local/lib/ könyvtárba, és adjuk hozzá a következő sort az /etc/profile fájlhoz: export LD_ELF_PRELOAD=/usr/local/lib/uncompress.o Ezek után nemcsak a dokumentációt tömöríthetjük a gzip programmal, hanem az adatfájlokat is, az őket használó alkalmazások mégis tudják majd használni őket. Elvileg ennek trükknek működni kellene a legtöbb alkalmazásra, de gyakorlatilag ez nem feltétlenül van így. Én nem értem el különösebb sikert ezzel a trükkel. 4. Egy valódi példa Az alábbiakban olvasható, hogy hogyan alkalmaztam a fent említett eljárásokat a saját gépemre. A kezelés előtt a df szerint 398.798 db. 1024 bájt méretű blokkot használtam. * Nem távolítottam el a kernelforrást és a kernel fejlécfájljait. * Eltávolítottam egy csomó alkalmazást és az összes játékot, de meghagytam az X11-et, az X11 fejlesztőkészletet, a C és Fortran fejlesztőkészletet, a Tcl/Tk-et, a hálózati segédprogramokat és még néhány egyéb alkalmazást. A df szerint ekkor 244.668 blokk volt foglalt. * Lefuttattam az upx programot az /usr/bin, az /usr/X11R6/bin, az /usr/lib/texmf/bin/i586-linux és az /usr/lib/gcc-lib/i386-linux/2.7.2.1 könyvtárakban. 226.270 foglalt blokkra csökkent a felhasznált terület. * Tömörítettem a dokumentációt az /usr/doc és az /usr/lib/texmf/texmf/doc könyvtárakban. 198.745 foglalt blokkra csökkent a felhasznált terület. Összefoglalva, 398.798 blokkal kezdtem, és 198.745 blokkal fejeztem be. Gondoljunk arra, hogy mennyi mindent tárolhatunk azon a 200.000 megspórolt blokkon! Még több helyet felszabadíthattam volna, ha a bzip2 programot használom a gzip helyett. Átlagos esetben, ha az elejétől fogva óvatosak vagyunk, és csak a szükséges alkalmazásokat telepítjük, a végrehajtható állományok és a dokumentáció tömörítése kb. 20 MB helyet szabadít fel. Egy notebook gépen ez ``életet menthet''. 5. Befejezés 5.1 Szerzői jogok A Linux HOGYAN dokumentumok szerzői joga a megfelelő szerzőké, hacsak másképp nem rendelkeznek. A Linux HOGYAN dokumentumokat szabad részben vagy egészben másolni és terjeszteni bármilyen fizikai vagy elektronikus adathordozón, de ezt a szerzői jogokra vonatozó megjegyzést minden másolathoz mellékelni kell. Az üzleti célú terjesztés megengedett és bátorított, de a szerző szeretne tudomást szerezni minden ilyen terjesztésről. Minden Linux HOGYANon alapuló fordítás, származtatott mű vagy összefoglaló munka ezen szerzői jogi kötelmek alá kell essen. Ez azt jelenti, hogy nem szabad olyan HOGYANon alapuló művet létrehozni, amely további megkötéseket tartalmaz a terjesztésre. Bizonyos feltételek esetén ezek a szabályok figyelmen kívül hagyhatóak, erről a Linux HOGYAN koorditátor ad felvilágosítást a lent olvasható címen. Röviden megfogalmazva, szeretnénk, ha az információ elterjedne minél több csatornán, de szeretnénk megtartani a HOGYAN dokumentumok szerzői jogát, és szeretnénk értesülni bármilyen terjesztési tervről. Kérdésekkel a Linux HOGYAN koordinátorát, Tim Bynumot lehet megkeresni a linux-howto@metalab.unc.edu drótpostacímen. 5.2 Jogi felelősség A Helyspórolás mini-HOGYANt Guido Gonzato írta ( [6]REMOVE_MEguido@ibogeo.df.unibo.it). Erre a dokumentumra nem vonatkozik semmilyen garancia. Nagyon igyekeztem, hogy hibátlan legyen, de mindenki csak a saját felelősségére használhatja az itt közölt információkat. Semmilyen esetben sem lehet engem felelőssé tenni az itt leírtak felhasználásából eredő károkért. A visszajelzéseket örömmel veszem. Bármilyen kérdést, kérést, javaslatot szívesen meghallgatok. Élvezzük a Linuxot és az életet! Guido =8-) 5.3 Magyar fordítás A magyar fordítást [7]Tímár András készítette. A lektorálást [8]Daczi László végezte el (2002.11.11). Bármilyen fordítással kapcsolatos észrevételt a [9]linuxhowto@sch.bme.hu címre küldjetek. A dokumentum legfrissebb változata megtalálható a [10]Magyar Linux Dokumentációs Projekt honlapján. References 1. mailto:guido@ibogeo.df.unibo.it 2. ftp://sunsite.unc.edu/pub/Linux/utils/compress 3. http://www.nexus.hu/upx/ 4. http://wildsau.idv.uni-linz.ac.at/mfx/upx.html 5. ftp://sunsite.unc.edu/pub/Linux/libs/compression 6. file://localhost/home/dacas/temp/REMOVE_MEguido@ibogeo.df.unibo.it 7. mailto:timar_a@freemail.hu_NO_SPAM 8. mailto:dacas@freemail.hu_NO_SPAM 9. mailto:linuxhowto@sch.bme.hu_NO_SPAM 10. http://tldp.fsf.hu/index.html