Comment dépouiller un système Linux?

24

J'ai construit une distribution Linux, et j'ai supprimé les binaires, etc. Le système n'utilisera pas GCC ou des outils de développement, car ce sera un kiosque Chrome, donc cela aiderait grandement si je pouvais supprimer le système ...

Je me demandais, est-il possible de supprimer tous les fichiers système inutilisés (comme les binaires, etc.) en regardant quels fichiers / bibliothèques sont utilisés pendant l'exécution? Peut-être qu'une autre méthode est préférée, mais existe-t-il un moyen d'accomplir quelque chose comme ça?

Mixeur
la source
3
En effet vous êtes au bon endroit cette fois :)
phunehehe
2
Maintenant, puis-je demander, pourquoi existe-t-il un site Stack Exchange séparé basé sur Ubuntu? Je pense qu'ils devraient fusionner avec ce site, car AFAICT, Ubuntu devrait être considéré comme Linux / Unix, mais je ne suis pas trop sûr;) Sinon, préparez-vous pour GentooOverflow et FedoraOverflow!
Blender
3
@Blender: Cette fusion a été envisagée et rejetée. Regardez dans la méta des deux sites pour l'histoire.
Gilles 'SO- arrête d'être méchant'
3
J'ai trouvé que le site ubuntu est beaucoup plus sur les programmes gnome et les trucs d'interface utilisateur. Ici, votre réponse sera presque certainement une commande de terminal.
Falmarri
2
Ma compréhension est que AskUbuntu est pour Unix et Linux comme Unix et Linux pour SuperUser: si c'est une question spécifique à Ubuntu, elle va à AU; si c'est autrement n x-ish, il va ici; sinon, il passe à SU ou à ServerFault.
intuition

Réponses:

11

Il existe des programmes comme Bootchart qui peuvent être utilisés pour montrer quels programmes vous avez exécutés au démarrage - vous pouvez probablement le faire continuer après le démarrage pour voir ce qui a été invoqué pendant une session.

Une meilleure solution peut être d'utiliser des outils de remasterisation.

Il existe des outils de remasterisation pour Fedora , Ubuntu et autres; vous pouvez les utiliser pour personnaliser une distribution.

Vous voudrez peut-être regarder Tiny Core Linux . Il y a aussi un gars qui travaille sur un script de remasterisation .

Shawn J. Goff
la source
Quand je rentrerai, j'essaierai certainement Bootchart. J'ai menti, cependant, car le système vient de terminer la compilation la nuit dernière, donc je devrai vraiment le faire fonctionner dans les prochains jours. J'ai trouvé TinyX (ce que je cherchais, car je ne peux pas comprendre de quels modules XOrg j'ai vraiment besoin), mais le site Web était en panne ... Oh bien, mais merci beaucoup!
Blender
C'est Bootchart! Je l'ai compilé, l'ai exécuté et cela m'a donné des résultats extrêmement verbeux et utiles. Je ne vais pas supprimer le système pour l' instant, car je vais implémenter un gestionnaire de packages basé sur la source (Gentoo?), Mais je vais certainement l'utiliser. Merci!
Blender
6

Entre autres choses, vous souhaitez supprimer tout ce dont vous n'avez pas besoin. Assurez-vous que le système de fichiers est atimeentièrement activé; vous pouvez le régler /etc/fstab. La valeur par défaut actuelle est relatimemais vous souhaitez utiliser uniquement atime. Chaque fois qu'un fichier est accédé, l'horodatage sera mis à jour. Ensuite, faites quelques utilisations pendant quelques jours pour voir quels fichiers n'ont jamais été mis à jour. Je ferais tout cela dans une machine virtuelle, et très soigneusement, car j'imagine qu'il y a quelques fichiers qui sont lus lorsque le système est en mode lecture seule. Remarque: définissez-le sur noatimeune fois que vous êtes prêt pour la production, sinon vous ferez une écriture à chaque lecture; c'est inefficace.

Mais pour être honnête, je regarderais Damn Small Linux ; avez-vous vraiment besoin d'être plus petit que ça? Construisez le vôtre en fonction de leur distribution et supprimez simplement le gestionnaire de fenêtres et quelques programmes supplémentaires. Laissez tous les outils de ligne de commande, de cette façon, si vous avez besoin de réparer ou de recharger, vous avez le shell.

xénoterracide
la source
Merci! J'essaie de le faire moi-même, car je n'ai jamais vraiment fait fonctionner un système LFS entièrement utilisable, mais j'ai déjà joué avec DLS. J'essaie en fait de créer un clone ChromeOS qui n'est pas fait avec SuSEStudio (celui de chromium.org est) et est un peu plus petit que 600 Mo;) Mon objectif est> 50 Mo, car DSL comprend une tonne d'autres logiciels, mais j'installe uniquement OpenBox, Chrome et un Thunar personnalisé (et quelques autres goodies, bien sûr). Merci!
Blender
5

en supposant que vous utilisez Debian ou ses dérivés

Après quelques jours d'utilisation (intensive), exécutez popularity-contest. Il affichera les paquets inutilisés les plus anciens en bas. Désinstallez-les, mais en veillant à ce qu'il y ait ou non des éléments en fonction de leur installation.

Voici un extrait de la sortie:

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

Les colonnes désignent atime , ctime , nom-package et fichier accédé .

tshepang
la source
1

Utilisez activement votre système pendant un certain temps avec les temps d'accès aux fichiers activés. Voir quels fichiers n'ont jamais leur temps d'accès modifié. Ce sont des candidats à la suppression (mais assurez-vous qu'il n'y a pas de raison de les conserver, par exemple parce que ce sont des pilotes matériels pour du matériel que vous n'avez pas, ou qu'ils sont nécessaires au début du processus de démarrage lorsque la partition racine est encore monté en lecture seule).

Puisque vous aurez peu de grosses applications, vérifiez quelles bibliothèques sont utilisées par un seul exécutable. Pensez à les lier statiquement.

ldd /bin/* /usr/bin/* |sed -n 's/^.* => \(.*\) (.*)$/\1/p' |sort |uniq -c
Gilles 'SO- arrête d'être méchant'
la source
0

D'où partez-vous exactement? Êtes-vous en train de supprimer une distribution existante? Y a-t-il une raison pour laquelle vous devez commencer par une distribution?

Vous voudrez peut-être envisager de créer un système intégré à partir de zéro et de ne charger que ce dont vous avez besoin.

Falmarri
la source
Je construis à partir d'une installation LFS + Xorg, Python et Google Chrome. Rien d'extraordinaire.
Blender
Il a utilisé GCC, Python, etc. pour construire, mais ils sont maintenant obsolètes pour mes besoins.
Blender