OSTRZEŻENIE: Te pomysły są przeznaczone tylko dla użytkowników, którzy są dobrze obeznani zarówno w Linuksie jako całości, jak i Arch Linux.
Jeśli chcesz wkroczyć na niebezpieczne terytorium, możesz zmniejszyć podstawową instalację Arch do mniej niż 500 MB. Wymaga to robienia bardzo niebezpiecznych rzeczy:
- usuwanie wszystkich niepotrzebnych ustawień regionalnych (już uwzględnionych)
- usuwanie wszelkich plików oprogramowania układowego, które nie są potrzebne do uruchomienia systemu (z
/usr/lib/firmware
)
- usunięcie wszelkich modułów jądra niepotrzebnych do uruchomienia systemu (z
/usr/lib/modules/...
)
- usuwanie jakichkolwiek
.a
plików /usr/lib
(tylko jeśli nigdy nie korzystasz z systemu do kompilacji oprogramowania. Uwaga: obejmuje to także używanie makepkg
)
- usunięcie wszystkiego
/usr/include
(tylko jeśli nigdy nie używasz systemu do kompilacji oprogramowania)
- usuwanie niepotrzebnej dokumentacji z
/usr/share/doc
i/usr/share/info
- (BARDZO ZŁA POMYSŁ, chyba że dla serwera) usuwanie stron podręcznika
/usr/share/man
- (również zły pomysł) usuwanie niepotrzebnych deskryptorów terminali
/usr/share/terminfo
i niepotrzebnych plików strefy czasowej/usr/share/zoneinfo
- (NIEBEZPIECZEŃSTWO) działający
strip *
na wszystkich folderach zawierających wykonywalne pliki binarne ( /usr/bin
i /usr/sbin
)
- (w ekstremalnych sytuacjach) przy użyciu narzędzia takiego jak
upx
kompresja większych plików binarnych (pliki binarne Samby dobrze sobie z tym radzą, ponieważ są one zwykle dość duże, ponieważ często są kompilowane statycznie). Należy również pamiętać, że użycie upx
oznacza, że cały nieskompresowany plik binarny musi się zmieścić Pamięć RAM podczas wykonywania, więc bądź zmęczony na systemach z niską pamięcią RAM.
Zanim zrobisz JAKIEKOLWIEK z tego, ZRÓB PEŁNĄ kopię zapasową swojego systemu. Linux na szczęście czyni to stosunkowo łatwym - jeśli możesz podłączyć i zamontować zewnętrzny wolumin (np. Dysk USB), możesz zrobić coś takiego, jak cd / && tar -cf /mnt/usb/mySystem.tar /
wykonać kopię zapasową całego systemu.
Jeszcze raz zauważ, że tak naprawdę nie zalecam wykonywania powyższych czynności (szczególnie od 7 do 9), chyba że posiadasz dogłębną wiedzę, doświadczenie i zrozumienie wewnętrznych elementów Linuksa i Arch Linux . Granie z dowolnymi plikami, które wymieniłem, może uszkodzić system w okropny sposób, więc zostałeś ostrzeżony. Jeśli nie wiesz, czy Twój system potrzebuje określonego pliku oprogramowania układowego, modułu itp., Przeprowadź badania, zanim zaczniesz z nim zadzierać. (Ostrzegamy, że usunięcie modułów jądra, których potrzebuje Twój system, może spowodować, że system nie da się uruchomić lub system bez obsługi klawiatury / karty sieciowej / dźwięku / wyświetlacza / itp. Lub wszelkiego rodzaju inne niewytłumaczalne zachowanie).
Należy również pamiętać, że wszelkie aktualizacje pakietów mogą przywracać wiele plików usuniętych powyżej. Jeśli zdecydujesz się pójść tą drogą, możesz ostatecznie chcieć skryptu usunąć niepotrzebne pliki i uruchomić skrypt po każdej dużej aktualizacji pakietu. (Przykład: uaktualnienie jądra przywróci wszystkie moduły jądra, a także zaktualizuje poprzez zależność pakiet oprogramowania układowego linux przywracając całe oprogramowanie /usr/lib/firmware
).
Wreszcie, miej oko na /var/log
to, że z czasem pliki dziennika będą rosły. Możesz usunąć poprzednie dzienniki, ale zachować bieżące, robiąc coś takiego jak rm *\@*.journal
w folderze dzienników.
Od miesięcy z powodzeniem korzystam z serwera NAS na urządzeniu 512 MB Disk-on-Module przy użyciu tych technik, jednak nadal nie są one dla osób o słabym sercu. (Użyłem również LinuxFromScratch do zbudowania podobnego projektu przy zaledwie 128 MB pamięci, ale to już inna historia ...)
EDYCJA / DODAJ:
Oto kilka innych metod, których możesz użyć, aby uzyskać dodatkową przestrzeń:
Pozbyć się libgo
. libgo
Biblioteka wyposażony gcc-libs
jest AFAIK używane tylko przez aplikacje napisane w języku Go. Nie mogę wymyślić żadnej używanej przeze mnie aplikacji, która potrzebuje tej biblioteki. W moim systemie ma on rozmiar 40 MB. Kiedy próbujesz schudnąć, to dużo miejsca. Usunąłem go z moich „mini” instalacji bez żadnych negatywnych skutków dla wszystkiego, co robię (ale znowu, to ja, YMMV!)
Kurczenie się libicudata.so
. W moim systemie jest to 27 MB. Zasadniczo jest to ton danych unicode / locale skompresowanych do obiektu biblioteki. Istnieje narzędzie online, które może tworzyć mniejsze wersje tego pliku, ale nie zostało ono zaktualizowane do bieżącej wersji (i nie można używać starszych plików w nowszych wersjach.) Nie próbowałem robić tego ręcznie, ale jeśli potrafisz dowiedzieć się, jak to zrobić, możesz ogolić około 20-22 MB tego pliku.
Jeśli używasz Pythona można zapisać 37MB lub tak usuwając test
bibliotekę z python2: rm -r /usr/lib/python2.7/test
a około 66MB usuwając go python3: rm -r /usr/lib/python3.6/test
.
Ponownie dla Pythona możesz pozbyć się .pyo
plików i .py
plików. Te .pyo
pliki są „zoptymalizowane” pliki, ale Python nigdy naprawdę je wykorzystuje. Te .py
pliki są surowy kod źródłowy biblioteki standardowej. Jedynymi plikami, które Python normalnie czyta podczas uruchamiania kodu Pythona, są .pyc
pliki (skompilowane w Pythonie). cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
icd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
Usuwanie niepotrzebnych danych regionalnych. Dostępny jest pakiet AUR, localepurge
który to automatyzuje. W przeciwnym razie musisz się pobawić /usr/share/locale
. Musisz zachować własne ustawienia regionalne i locale.alias
. Dla mnie tutaj w Stanach Zjednoczonych, utrzymanie en_US
i locale.alias
i usuwanie wszystkiego innego ogolił około 80MB.
Teraz chcę zobaczyć narzędzie, które analizuje system i określa, jakich modułów jądra potrzebujesz, a także jakich plików oprogramowania układowego potrzebujesz. Byłby to dobry sposób na „bezpieczne” wyczyszczenie tych folderów ...
A może ktoś powinien ułożyła „distro” Arch, który używa uClibc
lub diet-libc
lub coś podobnego. To może być fajny letni projekt. :-)