Jak rozebrać system Linux?


24

Budowałem dystrybucję Linuksa i usunąłem pliki binarne itp. System nie będzie korzystał z GCC ani narzędzi programistycznych, ponieważ będzie to kiosk Chrome, więc byłoby bardzo pomocne, gdybym mógł usunąć system ...

Zastanawiałem się, czy istnieje sposób, aby usunąć wszystkie nieużywane pliki systemowe (takie jak pliki binarne itp.), Obserwując, jakie pliki / biblioteki są używane w czasie wykonywania? Może preferowana jest inna metoda, ale czy istnieje sposób na osiągnięcie czegoś takiego?


3
Rzeczywiście jesteś tym razem we właściwym miejscu :)
phunehehe

2
Teraz mogę zapytać, dlaczego istnieje osobna witryna Stack Exchange oparta na Ubuntu? Myślę, że powinny się połączyć z tą stroną, ponieważ AFAICT, Ubuntu należy uznać za Linux / Unix, ale nie jestem zbyt pewien;) Jeśli nie, przygotuj się na GentooOverflow i FedoraOverflow!
Blender

3
@Blender: To połączenie zostało rozpatrzone i odrzucone. Spójrz na historię dwóch witryn Meta.
Gilles „SO- przestań być zły”

3
Odkryłem, że strona Ubuntu to dużo więcej na temat programów GNOME i interfejsu użytkownika. Tutaj twoja odpowiedź prawie na pewno będzie komendą terminalową.
Falmarri,

2
Rozumiem, że AskUbuntu jest dla Unixa i Linuksa, tak jak Unix i Linux jest dla SuperUser: jeśli jest to pytanie specyficzne dla Ubuntu, trafia do AU; jeśli jest inaczej n x-ish, idzie tutaj; w przeciwnym razie przechodzi do SU lub ServerFault.
intuicyjnie

Odpowiedzi:


11

Istnieją programy takie jak Bootchart , których można użyć do pokazania, jakie programy uruchomiłeś podczas uruchamiania - prawdopodobnie możesz kontynuować działanie po uruchomieniu, aby zobaczyć, co zostało wywołane podczas sesji.

Lepszym rozwiązaniem może być użycie narzędzi do remasteringu.

Istnieją narzędzia do remasteringu Fedory , Ubuntu i innych; możesz użyć ich do dostosowania dystrybucji.

Możesz spojrzeć na Tiny Core Linux . Jest też facet, który pracuje nad tym scenariuszem .


Kiedy wrócę do domu, zdecydowanie wypróbuję Bootchart. Skłamałem jednak, ponieważ system właśnie zakończył kompilację zeszłej nocy, więc naprawdę muszę go uruchomić w ciągu kilku najbliższych dni. Znalazłem TinyX (to jest to, czego szukałem, ponieważ nie mogę dowiedzieć się, jakich modułów XOrg naprawdę potrzebuję), ale strona internetowa nie działa ... No cóż, ale bardzo dziękuję!
Blender

Bootchart to jest! Skompilowałem to, uruchomiłem i dało mi to bardzo szczegółowe i przydatne wyniki. Nie zamierzam się rozebrać system tylko jeszcze, jak mam zamiar wdrożyć source opartych menedżera pakietów (Gentoo?), Ale na pewno będę korzystać z tego. Dzięki!
Blender

6

Między innymi chcesz usunąć wszystko , czego nie potrzebujesz. Upewnij się, że system plików jest w atimepełni włączony; możesz to ustawić /etc/fstab. Obecne ustawienie domyślne to, relatimeale chcesz po prostu użyć atime. Za każdym razem, gdy plik jest otwierany, znacznik czasu będzie aktualizowany. Następnie zrób użytek przez kilka dni, aby zobaczyć, które pliki nigdy nie były aktualizowane. Zrobiłbym to wszystko na maszynie wirtualnej i bardzo ostrożnie, ponieważ wyobrażam sobie, że istnieje kilka plików, które są odczytywane, gdy system jest w trybie tylko do odczytu. Uwaga: ustaw go, noatimegdy będziesz gotowy do produkcji, w przeciwnym razie będziesz pisać po każdym czytaniu; to jest nieefektywne.

Chociaż szczerze mówiąc, spojrzałbym na Damn Small Linux ; czy naprawdę musisz być mniejszy? Zbuduj swój w oparciu o jego dystrybucję i po prostu usuń menedżera okien i kilka dodatkowych programów. Zostaw wszystkie narzędzia wiersza poleceń, w ten sposób, jeśli będziesz musiał naprawić lub ponownie załadować, masz powłokę.


Dzięki! Próbuję to zrobić sam, ponieważ tak naprawdę nigdy nie uruchomiłem w pełni funkcjonalnego systemu LFS, ale wcześniej grałem w DLS. W rzeczywistości próbuję zbudować klon ChromeOS, który nie jest utworzony za pomocą SuSEStudio (ten z chromium.org) i jest nieco mniejszy niż 600 MB;) Moim celem jest> 50 MB, ponieważ DSL zawiera mnóstwo innego oprogramowania, ale instaluję tylko OpenBox, Chrome i niestandardowego Thunara (i oczywiście kilka innych dodatków). Dzięki!
Blender

5

zakładając, że używasz Debiana lub jego pochodnych

Po kilku dniach (intensywnego) użytkowania uruchom popularity-contest. Wyświetli najstarsze nieużywane pakiety na dole. Odinstaluj je, ale uważnie obserwuj, czy istnieją rzeczy zależne od nich.

Oto fragment wyniku:

1294222606 1292570417 vlc /usr/lib/vlc/plugins/gui/libqt4_plugin.so
1294222606 1292570109 xulrunner-1.9.2 /usr/share/xulrunner-1.9.2/chrome/classic.jar
1294222606 1292507839 ttf-dejavu-extra /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
1294222606 1292507459 x11-utils /usr/bin/xprop

Kolumny oznaczają atime , ctime , nazwa-pakietu i dostęp do pliku .


1

Aktywnie używaj swojego systemu przez chwilę z włączonymi czasami dostępu do plików. Zobacz, które pliki nigdy nie mają zmodyfikowanego czasu dostępu. Są to kandydaci do usunięcia (ale upewnij się, że nie ma powodu, aby je zachować, np. Ponieważ są to sterowniki sprzętowe dla sprzętu, którego nie masz, lub są potrzebne na początku procesu rozruchu, gdy partycja root jest nadal montowane tylko do odczytu).

Ponieważ będziesz mieć kilka dużych aplikacji, sprawdź, które biblioteki są używane przez pojedynczy plik wykonywalny. Rozważ połączenie ich statycznie.

ldd /bin/* /usr/bin/* |sed -n 's/^.* => \(.*\) (.*)$/\1/p' |sort |uniq -c

0

Od czego dokładnie zaczynasz? Czy rozbijasz istniejącą dystrybucję? Czy jest powód, dla którego musisz zacząć od jakiejś dystrybucji?

Możesz rozważyć zbudowanie systemu osadzonego od zera i załadować tylko to, czego potrzebujesz.


Buduję z instalacji LFS + Xorg, Python i Google Chrome. Nic fajnego.
Blender

Używał GCC, Pythona itp. Do budowania, ale są one teraz przestarzałe dla moich celów.
Blender
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.