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 emacs
a?
Zamiast niego możesz używać jed
a.
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 gzip
a,
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
© 2001 by Tomasz 'tsca' Sienicki, tsca@edb.dk