Jedną z moich maszyn jest 2 GB EeePC Surf , schludny netbook z bardzo ograniczonymi zasobami. Tak ograniczone, że mam teraz 22 MB wolnego miejsca.
Na nim uruchamiam Arch Linux z Openbox DE i wieloma potrzebnymi aplikacjami, aby działał jako komputer mobilny.
Jakie metody są dostępne, aby usunąć niepotrzebne miejsce?
arch-linux
openbox
efficiency
Stefan
źródło
źródło
du -sh /
aby zobaczyć, gdzie używana jest większość twojego miejsca.du -sh /*
?cd /
i biegnijdu -sh *
i wiercić się ... (tak naprawdę nie masz wystarczająco dużo pamięci RAM, aby przechowywać w nim rzeczy)Odpowiedzi:
Oto kilka punktów, od których możesz zacząć:
Spójrz na pakiety zainstalowane w systemie
pacman -Q
i usuń te, których nie potrzebujesz. Dobrym początkiem może być dodanie-t
przełącznika:Wyczyść pamięć podręczną pakietów Pacmana za pomocą
pacman -Sc
Zawsze używaj
pacman -Rs
do usuwania również nieużywanych zależności pakietów.Aby znaleźć „duże pliki” i foldery, które wykorzystują duże części dysku, dobrym dodatkiem
du
jestxdiskusage
. To małe narzędzie pozwala szybko przeglądać system plików i wyświetlać graficzną reprezentację użycia dysku przez foldery.źródło
pacman -cc
myślę, że do wyczyszczenia całej pamięci podręcznej, w tym zainstalowanych pakietów. Zwykle nie jest to zalecane, ponieważ mogą być później potrzebne jako kopie zapasowe.--cachedir
, więc nie muszę przechowywać żadnych plików pkg./
Znalazłempacgraph
bardzo przydatne do czyszczenia przestrzeni . Może sortować zainstalowane pakiety według rozmiaru, dzięki czemu możesz lepiej ustalić, co sensowne jest usunięcie. (Może nawet rysować wykresy zależności SVG, ale jest przydatny z poziomu wiersza poleceń.)ncdu
to fajna alternatywa dla wiersza poleceńxdiskusage
. Baobab jest jednak zdecydowanie najlepszą aplikacją graficzną do tego celu.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:
/usr/lib/firmware
)/usr/lib/modules/...
).a
plików/usr/lib
(tylko jeśli nigdy nie korzystasz z systemu do kompilacji oprogramowania. Uwaga: obejmuje to także używaniemakepkg
)/usr/include
(tylko jeśli nigdy nie używasz systemu do kompilacji oprogramowania)/usr/share/doc
i/usr/share/info
/usr/share/man
/usr/share/terminfo
i niepotrzebnych plików strefy czasowej/usr/share/zoneinfo
strip *
na wszystkich folderach zawierających wykonywalne pliki binarne (/usr/bin
i/usr/sbin
)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życieupx
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 jakrm *\@*.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żonygcc-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 ilocale.alias
. Dla mnie tutaj w Stanach Zjednoczonych, utrzymanieen_US
ilocale.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
lubdiet-libc
lub coś podobnego. To może być fajny letni projekt. :-)źródło
upx
, nie działa dobrze ze wszystkimi rodzajami ekwipunków, np. opuściło mysqld i mongodb segfaultingNoExtract
definicje (można zdefiniować wiele razy), możesz rozwiązać ten problem na stałe. Jeden przykład, aby zaktualizować tylko sterowniki Realtek nic:NoExtract = usr/lib/firmware/* !usr/lib/firmware/rtl_nic/*
find /usr/lib/firmware -atime +30
znajdzie pliki oprogramowania układowego, które nie są dostępne w ciągu 30 dni. Usunięcie tych plików powinno być bezpieczne.TLDR
Po pierwsze, co jest duże w systemie
To pokazuje posortowaną listę największych katalogów w
/
Możesz zrobić dwa poziomy niżej:Mój wynik to:
Ignoruję
/mnt
(ponieważ jest to dysk zewnętrzny). Przypominają mi się dwa katalogi:var
iusr
. Zobaczmy, co jest w środku:Potem nieco głębiej:
Zacznijmy od dzienników
Mam 717 MB w
/var/log
.Nie jestem fanem losowego usuwania katalogów, więc zróbmy to w czysty sposób:
Zostawmy tylko 100 MB dzienników:
Więcej informacji o tym, jak skonfigurować dziennik tutaj .
Pakiety
Mam
660M /var/cache/pacman
. To było 1,8 GB, ale pobiegłem,pacman -Sc
aby usunąć nieużywane pakiety. Usuńmy resztę:/ usr / share / locale
Wielu użytkowników go usuwa, a przynajmniej czyści. Ale mogę być problemem . Ale kasa bleachbit (następny akapit).
Bleachbit
Automatyczny środek czyszczący . Usunie wiele rzeczy, ale były to głównie lokalizacje.
Możesz poszukać więcej rzeczy do usunięcia:
źródło
Total Installed Size: 209.70 MiB
du -xkd1
w/
katalogu, nie zejdzie on do innych punktów montowania.Na dysku 4 GB w moim Eeepc z Ubuntu pomogło usunąć niektóre pliki ustawień regionalnych (z / usr / share / locale) i pliki pomocy Gnome (z / usr / share / gnome / help /). Oba zostały zainstalowane dla języków, których nie używam. Nie jestem jednak pewien, czy Arch Linux w ogóle instaluje wszystkie te pliki.
źródło
du -hs /usr/share/locale
ma około 300 MB ... czy mogę po prosturm -rf
niepotrzebnych plików?/etc/locale.gen
i uruchamiasz ponownielocale-gen
, powinieneś mieć mniej wstępnie skompilowanych ustawień narodowych. Jeśli chcesz zwolnić więcej miejsca w sposób zautomatyzowany, możesz spróbować również aur.archlinux.org/packages.php?ID=11975 . (Ale to nie jest obsługiwane, a jeśli zepsuje system, musisz zachować elementy.)Sugerowałbym AUTOMATYCZNĄ analizę twoich własnych bardzo starych plików i sprawdzenie, czy jest to konieczne, i usunięcie ich. Można to zrobić za pomocą dwóch rzeczy. Jeden pisze
find
polecenie, aby wyszukać bardzo stare pliki. i używając tego wyjścia (być może potoku) dolograte
skryptu do archiwizacji plików starszych niż 3 miesiące i usuwania plików starszych niż 3 miesiące w archiwum i wysyłania wiadomości e-mail na 1 dzień przed usunięciem. Aby mieć pewność, że nie straciłeś żadnego ważnego pliku. W końcu potrzebne byłyby następujące polecenia, aby wykonać powyższe:Nie zamierzam cię karmić łyżką. Zrobiłem to już wcześniej, z powodzeniem, a później zostałem zlikwidowany, ponieważ zdecydowaliśmy się
nagios
na monitorowanie, ponieważ było bardziej dostrojone do robienia tego rodzaju rzeczy na serwerze korporacyjnym. Myślę, że jeślimail
polecenie nie jest już skonfigurowane, może się okazać, że najtrudniejszy odpoczynek powinien być prosty. Wszystko to należy zrobić poprzez skrypt bash i umieszczenie go w zadaniu cron oraz uruchamianie co x dni. Naucz się skryptów bash, będzie to bardzo przydatne nie tylko do tego, ale ułatwi ci życie z * nix. Więc użyj swojej ulubionej wyszukiwarki internetowej i przeczytaj o powyższych poleceniach i skryptach bash. Połącz je i przetestuj. Raz usatysfakcjonowany, należy go regularnie używać. Zapewniam, że fajnie będzie to robić. Dowiesz się dużo, jeśli wcześniej tego nie robiłeś.źródło