Posiadam laptopa, na którym obok fabrycznie dołączonego Windows 95 zainstalowałem Linuksa. Zajmowaną przez Windows przestrzeń dyskową ograniczyłem do 500 MB, co dało mi 240 MB wolnego miejsca. Niby niewiele, a jednak dzięki rozsądnej gospodarce wolną przestrzenią zmieściłem tam w pełni funkcjonalną instalację Linuksa (Red Hat 4.1).
Jeśli brakuje ci wolnej przestrzeni na twardym dysku, wykorzystaj informacje zawarte w niniejszym dokumencie -- pomogą ci one znacznie zwiększyć jej ilość. Zanim jednak przejdziemy do rzeczy, muszę cię ostrzec: nie obwiniaj mnie, jeśli coś pójdzie nie tak. Niektóre z wykorzystywanych w procedurze odzyskiwania wolnego miejsca programów mogą być niebezpieczne pomimo, iż sprawdziły się u mnie.
Potrzebować będziesz:
gzip
lub jego zamiennika: bzip2.
bzip2
kompresuje lepiej, niż gzip,
jest jednak nieco powolniejszy i zużywa mnóstwo pamięci.
Oba te programy znajdziesz pod adresem
ftp://sunsite.unc.edu:/pub/Linux/utils/compress,upx
dostępnego pod adresami
http://cdata.tvnet.hu/~ml/upx.html oraz
http://wildsau.idv.uni-linz.ac.at/mfx/upx.html,zlibc
dostępnego pod adresem
ftp://sunsite.unc.edu:/pub/Linux/libs/compression.
Plik nazwany jest zlibc-X.X.tar.gz,
gdzie X.X
jest numerem najnowszej wersji programu.Istnieją też inne programy do kompresji plików wykonywalnych. Jednym z nich jest gzexe
-- najlepiej od razu o nim zapomnij. tcx
był niezły, został jednak zdetronizowany przez upx.
Kolejny program, tzx,
teoretycznie powinien sprawować się nawet lepiej, niż tcx.
Niestety, kompletnie zawiódł podczas prób, które przeprowadziłem na zapasowym
komputerze; być może z mojej winy. Najlepiej użyj więc upx
-- jest to program sprawdzony, wydajny i wygodny.
Istnieją łatki umożliwiające jądru obsługę skompresowanych systemów plików "w locie", jednak w momencie pisania tego tekstu żadna z nich nie cieszy się opinią stabilnej i bezpiecznej. Najbezpieczniej jest trzymać się od nich z daleka.
Źródła jądra zajmują ponad 20 MB, możesz więc rozważyć ich usunięcie. Jeśli się na to zdecydujesz, proponuję, żebyś najpierw raz a dobrze skompilował jądro odpowiednie dla twojego komputera; potem możesz źródła skasować. Ale uważaj:
Nie kasuj źródeł jądra dopóki nie jesteś pewien, że twój system jest prawidłowo skonfigurowany. Pamiętaj również, że kompilacja programów napisanych w C wymaga plików nagłówkowych (#include) jądra. Przemyśl to!
Kasując źródła jądra oszczędź katalog include/linux/, chyba, że jesteś pewien, że nigdy niczego nie będziesz na swoim komputerze kompilował.
Teraz musisz zadecydować, których programów naprawdę
potrzebujesz. Niektóre aplikacje mogą okazać się w twoim przypadku zbędne;
na przykład zastanów się, czy naprawdę musisz mieć na dysku emacsa?
Zamiast niego możesz używać jeda.
Decyzja należy do Ciebie; przed jej podjęciem rozważ następujące fakty:
gcc
jest bardzo dużym pakietem używanym do kompilowania jądra oraz
wszelkich aplikacji, które rozprowadzane są w formie kodów źródłowych.
Pakiet ten jest oczywiście również niezbędny, jeśli piszesz własne
programy w C lub Fortranie (z f2c lub g77).
Zastanów się nad swoimi potrzebami, zanim usuniesz gcc.
Alternatywne kompilatory, jak np. lcc
też są niezłe, ale ustępują gcc.
Podsumowując, proponuję pozostawić ten pakiet na dysku.
xterm,
usuń czcionki 100 dpi, itd.
xdvi czy ghostview.
Zamiast nich użyj programów dvitty, dvivga
i podobnych. Przy okazji zastanów się: skoro nie używasz X do
przeglądania dvi, może wcale tego pakietu nie potrzebujesz...?Rozpoczynamy proces zmniejszania wielkości plików binarnych. Wejdź do katalogu /usr/bin i wydaj w nim polecenie:
/usr/bin# strip *
Usunie to symbole z plików binarnych. Powtórz ten krok w /usr/X11R6/bin/ i pozostałych zawierających binarne pliki wykonywalne katalogach (nie zapomnij też odnaleźć binariów pakietów TeX i gcc).
Jeśli cenisz sobie swój system, nie wykonuj tego polecenia w katalogach /sbin, /bin ani /usr/sbin/ !
Rozpocznij od zainstalowania pakietu upx
i przeczytania jego dokumentacji. Następnie wejdź do katalogu
/usr/bin i wykonaj w nim polecenie
/usr/bin# upx *
Skompresuje to wszystkie pliki wykonywalne, w tym te z suid (txc
nie poradziłby sobie z tym). Powtórz ten krok w kolejnych katalogach według
opisu zawartego w poprzednim podrozdziale.
Pamiętaj o kompresowaniu plików wykonywalnych pojawiających się po instalacji nowego oprogramowania!
W systemie znajduje się mnóstwo plików, które możesz raz na zawsze skompresować. Rozpocznij od wejścia do katalogu /usr/doc/ (od tłumacza: w nowszych dystrybucjach jest to /usr/share/doc/) i wydaj w nim polecenie:
/usr/doc# find . -type f -exec gzip -9 {} \; 2> /dev/null
Pamiętaj o kompresowaniu dokumentów dołączanych do później instalowanych programów!
Powtórz ten krok w katalogu zawierających dokumentację systemu TeX (u mnie jest to /usr/lib/texmf/texmf/doc/).
Jeśli naprawdę wiesz, co robisz, możesz katalogi z dokumentacją całkowicie skasować.
Zainstaluj teraz program zlibc
i skompiluj go. Jeśli twój system przypomina mój, podczas kompilacji
zobaczysz komunikaty o braku statycznej biblioteki libc. Nie przejmuj
się: jest to kwestia odnalezienia pliku uncompress.o,
przeniesienia go do /usr/local/lib/ i dodania następującej linii
do pliku /etc/profile:
export LD_ELF_PRELOAD=/usr/local/lib/uncompress.o
Dzięki powyższemu będziesz teraz mógł kompresować gzipem nie tylko dokumentację, ale również pliki z wykorzystywanymi przez różne programy danymi; programy będą nadal mogły ich używać. Teoretycznie sztuczka ta powinna działać z większością aplikacji, praktycznie nie zawsze tak jest -- w moim przypadku sukces nie był oszałamiający.
Oto co ja osiągnąłem zastosowawszy wyżej opisaną procedurę. Przed rozpoczęciem
operacji system wg df zajmował 398.798 bloków 1024.
upx
pliki znajdujące się katalogach /usr/bin,
/usr/X11R6/bin, /usr/lib/texmf/bin/i586-linux
oraz /usr/lib/gcc-lib/i386-linux/2.7.2.1.
Zajętych bloków: 226.270.
Liczba zajętych bloków przed rozpoczęciem operacji: 398.798, po jej
zakończeniu: 198.745. Uzyskałem 200.000 wolnych bloków! A gdybym użył
bzip2 zamiast gzipa,
wolnych bloków byłoby jeszcze więcej.
Jeśli od samego początku działasz świadomie, instalując wyłącznie niezbędne aplikacje i kompresując pliki wykonywalne i dokumentację, oszczędzisz około 20 MB. W przypadku laptopów jest to znacząca liczba.
O ile nie zaznaczono inaczej dokumenty HOWTO chronione są prawami autorskimi należącymi odpowiednio do ich autorów. Zezwala się na powielanie i dystrybucję tych dokumentów w całości lub w części na jakimkolwiek fizycznym bądź elektronicznym nośniku pod warunkiem pozostawienia na wszystkich kopiach niniejszej informacji o prawach autorskich. Zezwala się i zachęca do redystrybucji komercjalnej; autor jednak życzy sobie być powiadamiany o każdej z takiej dystrybucji.
Niniejsze prawa autorskie dotyczą również wszelkich tłumaczeń, prac pochodnych, składających się z, lub zawierających jakiekolwiek dokumenty HOWTO. Oznacza to, że niedozwolone jest stworzenie pracy pochodnej od dokumentu HOWTO i nałożenie dodatkowych ograniczeń na jej dystrybucję. W pewnych szczególnych okolicznościach możliwe są odstąpienia od tych zasad. Po bliższe informacje należy skontaktować się z koordynatorem projektu Linux HOWTO pod adresem podanym poniżej.
W skrócie: chcemy promować rozprzestrzenianie się podanych tu informacji poprzez możliwie wiele kanałów. Zatrzymujemy jednak prawa autorskie do dokumentów HOWTO i chcielibyśmy być informowani o jakichkolwiek planach redystrybucji tych dokumentów.
W przypadku pytań skontaktuj się z koordynatorem projektu Linux HOWTO Timem Bynymem, tjbinum@sunsite.unc.edu.
Autorem niniejszego dokumentu jest Guido Gonzato, REMOVE_MEguido@ibogeo.df.unibo.it.
Dokument ten jest udostępniony 'jak jest'. Starałem się napisać go jak najlepiej, jednak wszelkich zawartych tu informacji możesz użyć tylko na własne ryzyko. Nie ponoszę odpowiedzialności za żadne szkody wynikłe z zastosowania tych informacji.
Ucieszą mnie wszelkie reakcje: prośby, sugestie, wyzwiska, itd.
Ciesz się Linuksem i życiem,
Guido =8-)
Wersja oryginalna niniejszego dokumentu znajduje się pod adresem http://sunsite.unc.edu/LDP/.
Tłumaczenia pozostałych dokumentów HOWTO na język polski:
http://www.jtz.org.pl.
Copyright for the translation
(c) 2001 by Tomasz 'tsca' Sienicki, tsca@edb.dk