Hlavní navigace

Tip pro diskový prostor

Boleslav Bobčík

Určitě jste se již dostali do situace, kdy vám váš harddisk začal být těsný a přemýšleli jste, jak nějaký ten MB prostoru ušetřit. Dnes přinášíme jeden užitečný tip, který vám může pomoci.

Pevné disky jsou sice každým měsícem větší a větší, ale nekonečnou kapacitu asi ještě nějaký čas mít nebudou. Někdy se hodí, aby software nezabíral ani kilobajt navíc (pokud jste třeba provozovatel webhostingové služby, jistě raději diskový prostor pronajmete, než aby doslova ležel ladem). Přitom množství standardně instalovaného softwaru se chová poměrně nešetrně, protože obsahuje informace pro ladění programů. Ty jsou potřeba jen pro programátory v situaci, když hledají chyby. Běžný uživatel (jestli lze uživatele Linuxu nazvat běžný) často ani neví, že něco takového existuje.

O tom, jestli i ve vašem systému nejsou programy s těmito přebytečnými daty, se můžete přesvědčit velice jednoduše. Stačí v příslušném adresáři, například /bin, provést:

$ file * | egrep 'executable'

Na vysvětlenou pro méně zkušené: program file odhaduje podle obsahu souboru, v jakém je formátu. Rozpoznává mnoho grafických, zvukových a dalších formátů, pro nás jsou podstatné linuxovské spustitelné programy. Dozvíme se totiž i to, které soubory obsahují ladicí informace: ve výpisu se objeví „not stripped“.

Pokud jsme nějaké soubory obsahující balast objevili, máme samozřejmě možnost zmenšit je na přijatelnou (to jest minimální) velikost. K tomu slouží program strip, součást programátorských nástrojů (binutils). Jeho funkcí je odstranění tabulky symbolů z programových modulů, tedy i přímo z programů.

Nejprve, jako dobře vychovaní administrátoři, všechny programy z cílového adresáře zazálohujeme, abychom měli ústupovou cestu v případě nějaké chyby. Pak v tomto adresáři provedeme trochu komplikovanější operaci:

$ for SOUBOR in *; do \
      (file $SOUBOR | egrep 'executable.*not stripped' > /dev/null) \
          && strip -S $SOUBOR; \
  done

Každý soubor v cílovém adresáři takto otestujeme, zda jeho identifikace programem file určuje spustitelný program s ladicími údaji. Z nalezených cílů pak tento balast odstraníme. Tento postup je po malých úpravách možné použít i na sdílené knihovny, které také často obsahují (z neprogramá­torského hlediska) odpad.

U běžných linuxových utilit obvykle příliš velkou úsporu místa nezískáme, bude se jednat o několik kilobajtů. U rozsáhlých programových balíků bude ovšem rozdíl velmi zřetelný. Například modul jazyka PHP pro www server Apache má po kompilaci velikost asi 4 MB. Po odstranění ladicích informací zjistíme, že zabírá jen necelé 2 MB.

Našli jste v článku chybu?

3. 10. 2000 23:31

Selmi Lukoš (neregistrovaný)

Stripovat kniznice sa da uplne v pohode (dynamicke). Ja naviac rusim este sekcie .comment a .note, oplati sa to hlavne vtedy ak kompilovany program pozostaval z velkeho mnozstva zdrojakov - vtedy je vo vyslednom elfaci za kazdy zdrojak jeden riadok s identifikatorom kompilatora...

Inak ked sa vsetko odstripuje a miesta je stale malo, podumajte kus aj nad pakovanim (gzexe, upx)
taky upx --best netscape ma celkom zaujimave vysledky ;-)


28. 9. 2000 14:18

Stanislav Brabec (neregistrovaný)

Myslím, že to bude tím, že moderní ELF sdílené knihovny strip většinou snesou (--strip-unused snad vždy).
Pouze statické knihovny, linkovací moduly (např. do XFree86-4) a objekt kódy bych nestripoval. Jednou jsem takhle musel degradovat systém z glibc na libc5, protože jsem si po kompilaci glibc a gcc odstripoval /usr/lib/*crt*.o.
Jinak na to mám vystavené celkem spolehlivé skripty na Penguinu (~utx/build). Ty poznají, co se nesmí stripovat.



Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

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

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

DigiZone.cz: Dreambox DM900 Ultra HD přichází

Dreambox DM900 Ultra HD přichází

DigiZone.cz: Placené VoD a obsah zdarma

Placené VoD a obsah zdarma

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

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

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

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

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

Podnikatelům dorazí varování od BSA

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

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie