Besparen van Ruimte mini-HOWTO

Door Guido Gonzato, <mailto:guido@ibogeo.df.unibo.it>,

Vertaald door: Ellen Bokhorst <mailto:bokkie@nl.linux.org> v1.0.1, 7 april 1999

Deze mini-HOWTO geeft je aanwijzingen je Linux-installatie in zo min mogelijk ruimte te persen. Het is vooral gericht op gebruikers van een notebook.

Inhoudsopgave

1 Introductie 1

2 Software benodigdheden 1

3 De procedure 2

3.1 Verwijderen van de Kernel Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3.2 Ontdoen van Applicaties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3.3 Strippen van Binaire bestanden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.4 Comprimeren met upx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.5 Gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4 Een Voorbeeld uit het Echte Leven 4

5 Het Einde 4

5.1 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

5.2 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1 Introductie

Ik heb een notebook waarop ik Linux heb geïnstalleerd, naast Windows 95 wat was voorgeïnstalleerd. Ik perste de Windows-partitie samen tot 500 Mb, om ruimte te maken voor een 240 Mb partitie voor Linux. De laatste partitie kan klein lijken, ik heb het echter voor elkaar gekregen om er een tamelijk compleet Linux Systeem op te installeren, gebaseerd op Red Hat 4.1 en wat magic om zoveel mogelijk ruimte te besparen.

Als je om ruimte verlegen zit, zullen de te vinden aanwijzingen in de volgende secties een aanmerkelijke hoeveelheid harddiskruimte vrijmaken. De enige waarschuwing die ik je geef is: geef mij niet de schuld als er iets verkeerd gaat! We zullen gebruik gaan maken van een paar programma’s die voor mij prima werkte, maar die inherent gevaarlijk zijn. Je bent gewaarschuwd.

2 Software benodigdheden

Je hebt nodig:

• een volledig werkend Linux-systeem (elke versie zou Ok moeten zijn):

• het algemene gzip compressie utility, of als alternatief bzip2 dat je kunt vinden op <ftp://sunsite. unc.edu:/pub/Linux/utils/compress>; deze tool comprimeert beter dan gzip, maar het is ook wat langzamer en slurpt een hoop geheugen op;

• de upx uitvoerbare compressor, waarvan de home-page te vinden is op <http://cdata.tvnet.hu/

     ~ml/upx.html> en <http://wildsau.idv.uni-linz.ac.at/mfx/upx.html>;
   • het zlibc package, beschikbaar op <ftp://sunsite.unc.edu:/pub/Linux/libs/compression>. Het

wordt zlibc-X.X.tar.gz genoemd, waar X.X voor de laatste versie staat.

Er zijn andere uitvoerbare compressors. Één daarvan is gzexe (vergeet het), terwijl tcx waarschijnlijk de beste was voordat upx beschikbaar kwam; nog een ander is tzx, in theorie beter dan tcx. Het geval is, dat het alles verpestte toen ik het op een reserve PC uitprobeerde, alhoewel ik er niet zeker van ben, of ik iets verkeerds deed. Je kunt je maar beter bij upx houden: het is betrouwbaar, efficïent en erg handig.

Er zijn kernel-patches beschikbaar die voorzien in een transparante compressie van bestandssystemen a la Stacker, maar tijdens dit schrijven, heeft geen daarvan nog de reputatie stabiel en betrouwbaar te zijn. Blijf het voor de zekerheid uit de weg.

3 De procedure

3.1 Verwijderen van de Kernel Sources

De kernel-sources nemen meer dan 20 Mb in beslag, en misschien dat je ze wilt verwijderen. Als dit zo is, raad ik je aan een nieuwe kernel te compileren die voor eens en voor altijd aan je computer is aangepast. Wees echter voorzichtig.

Ik raad je niet aan je kernel-sources te verwijderen, tenzij je er zeker van bent dat je computer juist is geconfigureerd. Bovendien heb je de kernel #includes nodig om C-programma’s te compileren. Bedenk je tweemaal!

Als je toch besluit dit te doen, verwijder dan niet de include/linux tree, tenzij je weet dat je nooit applicaties op je computer zal compileren.

3.2 Ontdoen van Applicaties

Neem nu de beslissing over welke applicaties je echt nodig hebt. Een aantal kan overtollig blijken: ben je er bijvoorbeeld zeker van niet zonder emacs te kunnen? Je zou in plaats daarvan jed kunnen gebruiken.

Het is aan jou te beslissen wat je wilt behouden. Een aantal algemene punten:

• gcc is een tamelijke groot package. Het is nodig voor het compileren van de kernel en alle applicaties waar geen voorgefabriceerde binaire Linux-bestanden voor zijn. Het is uiteraard ook nodig als je je eigen C of Fortran (met f2c of g77) programma’s schrijft; overweeg wat je nodig hebt voordat je het verwijdert. Andere compilers zoals lcc zijn prima, maar niet tot aan het niveau van gcc. Ik raad je aan het te houden;

• X11 is afgrijselijk groot, maar het is fijn om te hebben. Als je besluit het niet op te kunnen geven, probeer het dan met zo min mogelijk af te kunnen: alleen de juiste X-server, één eenvoudige window manager, één xterm, geen 100 dpi fonts, enzovoort;

• TeX en de daarbij behorende packages zijn inderdaad erg groot. Het opgeven van LaTeX en het houden op gewoon TeX bespaart een hoop ruimte; het opgeven van X11-previewers, zoals xdvi en ghostview is mogelijk als je dvitty, dvivga en dergelijke gebruikt. Het elimineren van X11 dviware zou zelfs X11 overtollig maken;

• spellen zijn nooit “nodig”.

3.3 Strippen van Binaire bestanden

Laten we beginnen met het laten afnemen van de grootte van binaire bestanden. Ga naar /usr/bin en geef het commando

     machine:/usr/bin# strip *

waarmee alle symbolen ingesloten in de binaire bestanden zullen worden verwijderd. Herhaal deze stap in /usr/X11R6/bin/ en andere directory’s met uitvoerbare bestanden die je mogelijk hebt (vergeet de binaire bestanden van TeX en gcc niet te lokaliseren), maar voer het niet uit onder /sbin, /bin, of /usr/sbin/ als je prijs stelt op je installatie!

3.4 Comprimeren met upx

Installeer als eerste upx en lees de documentatie ervan. Ga dan naar /usr/bin en voer ’t uit met het commando upx *; het zal alle uitvoerbare bestanden comprimeren, inclusief de suid bestanden (tcx zou dit niet doen). Herhaal deze stap net als hierboven in andere directory’s.

Denk eraan de uitvoerbare bestanden te comprimeren wanneer je een nieuw package installeert!

3.5 Gzip

Er zijn heel wat andere bestanden die voor eens en voor altijd kunnen worden gecomprimeerd. Laten we eens beginnen met /usr/doc/; ga naar deze directory en pas het volgende commando toe:

     machine:/usr/doc# find . -type f -exec gzip -9 {} \; 2> /dev/null

Denk eraan de docs te comprimeren als je een nieuw package installeert!

Herhaal deze stap in de directory met de documentatie voor TeX (op mijn systeem, /usr/lib/texmf/texmf/ doc/. Als je het echt zeker weet, verwijder deze directory’s dan voorgoed.

Installeer nu zlibc en compileer het. Als je systeem net als dat van mij is, dan zal het compilatie-proces worden afgebroken en een melding geven over een ontbrekend (static) libc. Doet er niet toe: er zal een bestand genaamd uncompress.o te vinden zijn, dat is wat ik nodig had. Verplaats het naar /usr/local/lib/ en voeg deze regel toe aan /etc/profile:

     export LD_ELF_PRELOAD=/usr/local/lib/uncompress.o

Nu kun je met gzip niet alleen documentatie comprimeren, maar ook gegevenbestanden: de applicaties waarmee ze worden gebruikt, zullen ze niettemin kunnen gebruiken. In theorie zou de truc bij de meeste applicaties moeten kunnen werken, maar in praktijk kan de mate van succes variëren. De mijne was niet bepaald indrukwekkend.

4 Een Voorbeeld uit het Echte Leven

Dit kreeg ik toen ik de bovenstaande procedure op één van mijn computers toepaste. Voor de behandeling, rapporteerde df dat ik 398,798 1024–blokken in gebruik had:

• Ik verwijderde niet de kernel-sources en kernel-headers;

• Ik de-installeerde verscheidene applicaties en alle spellen, maar ik liet X11, X11 development, C en Fortran development, Tcl/Tk, network-tools, en een paar andere standaardapplicaties achter. df rapporteerde 244,668 gebruikte blokken;

   • Ik paste upx toe op /usr/bin, /usr/X11R6/bin, /usr/lib/texmf/bin/i586-linux, en /usr/lib/
     gcc-lib/i386-linux/2.7.2.1. 226,270 gebruikte blokken;

• Ik comprimeerde de documentatie onder /usr/doc en /usr/lib/texmf/texmf/doc: 198,745 gebruikte blokken.

Samenvattend startte ik met 398,798 blokken en eindigde met 198,745. Bedenk je eens wat je in die 200.000 vrijgekomen blokken kunt stoppen! Ik zou zelfs meer kunnen hebben bespaard, als ik bzip2 had gebruikt in plaats van gzip.

Gemiddeld zal je zo ongeveer 20 Mb besparen als je vanaf het begin zorgvuldig te werk gaat en alleen de benodigde applicaties installeert, uitvoerbare bestanden en documenten comprimeert. Voor een notebook kan dit voldoende zijn om ’t mee te redden.

5 Het Einde

5.1 Copyright

Tenzij anders vastgesteld, vallen Linux HOWTO documenten onder het copyright van de respectieve auteurs. Linux HOWTO documenten mogen geheel of gedeeltelijk via elke fysiek of elektronisch medium worden gereproduceerd en gedistribueerd, zolang deze copyrightmelding behouden blijft op alle kopieën. Commerciële herdistributie is toegestaan en wordt aangemoedigd; de auteur zou echter graag in kennis worden gesteld van een dergelijke distributie.

Alle vertalingen, afgeleide werken, of verzamelde werken waarin Linux HOWTO documenten zijn verenigd moeten van deze copyright-melding zijn voorzien. Dat wil zeggen dat je geen afgeleide werken van een HOWTO mag produceren en aanvullende beperkingen mag opleggen op de distributie ervan. Uitzonderingen op deze regels worden onder bepaalde condities verleend; neem alsjeblieft contact op met de Linux HOWTO coördinator via het hieronder gegeven adres.

In het kort, we willen verspreiding van deze informatie zoveel mogelijk aanmoedigen via zo veel mogelijk kanalen. We willen echter het copyright op deze HOWTO documenten blijven behouden, en zouden graag in kennis worden gesteld van plannen om deze HOWTO’s opnieuw te distribueren.

Neem alsjeblieft voor vragen contact op met Tim Bynam, de Linux HOWTO coördinator, op tjbinum@sunsite.unc.edu via email.

5.2 Disclaimer

“Saving Space mini-HOWTO” werd geschreven door Guido Gonzato, <REMOVE_MEguido@ibogeo.df.unibo.

it>.

Dit document onder voorwaarde “zoals ’t er staat”. Ik heb veel moeite gedaan om dit zo accuraat mogelijk te beschrijven, maar je gebruikt de informatie hieruit op eigen risico. In geen enkel geval zal ik aansprakelijk kunnen worden gesteld voor schade die voortkomt uit het gebruik van dit document. Feedback is welkom. Voor alle verzoeken, suggestie, flames, enz., kun je gerust contact met me opnemen. Veel plezier met Linux en ’t leven. Guido =8-)