Как раздеть систему Linux?


24

Я строил дистрибутив Linux, я удалил двоичные файлы и т. Д. Система не будет использовать GCC или инструменты разработки, так как это будет киоск Chrome, поэтому было бы очень полезно, если бы я мог урезать систему ...

Мне было интересно, есть ли способ, которым я могу удалить все неиспользуемые системные файлы (например, двоичные файлы и т. Д.), Наблюдая, какие файлы / библиотеки используются во время выполнения? Может быть, предпочтительнее другой метод, но есть ли способ сделать что-то подобное?


3
На самом деле вы находитесь в правильном месте на этот раз :)
phunehehe

2
Теперь я могу спросить, почему существует отдельный сайт Stack Exchange на основе Ubuntu? Я думаю, что они должны объединиться с этим сайтом, потому что AFAICT, Ubuntu следует рассматривать как Linux / Unix, но я не слишком уверен;) Если нет, будьте готовы к GentooOverflow и FedoraOverflow!
Блендер

3
@Blender: это слияние было рассмотрено и отклонено. Посмотрите в мета двух сайтов для истории.
Жиль "ТАК - перестань быть злым"

3
Я обнаружил, что на сайте Ubuntu гораздо больше о программах gnome и пользовательском интерфейсе. Здесь ваш ответ почти наверняка будет командой терминала.
Фальмарри

2
Насколько я понимаю, AskUbuntu относится к Unix и Linux, как Unix, а Linux - к SuperUser: если это вопрос, относящийся к ubuntu, он переходит к AU; если это иначе n x-ish, это идет здесь; в противном случае он идет к SU или ServerFault.
интуитивно

Ответы:


11

Существуют такие программы, как Bootchart, которые могут использоваться для отображения программ, которые вы запускали во время запуска, - вы, вероятно, можете сохранить их после загрузки, чтобы увидеть, что было вызвано во время сеанса.

Лучшим решением может быть использование инструментов ремастеринга.

Есть инструменты для ремастеринга для Fedora , Ubuntu и других; Вы можете использовать их для настройки дистрибутива.

Возможно, вы захотите взглянуть на Tiny Core Linux . Для этого есть парень, который работает над сценарием ремастера .


Когда я вернусь домой, я обязательно попробую Bootchart. Однако я солгал, так как система только что закончила компилировать прошлой ночью, поэтому мне придется по- настоящему запустить ее в ближайшие несколько дней. Я нашел TinyX (это то, что я искал, так как не могу понять, какие модули XOrg мне действительно нужны), но веб-сайт не работал ... О, хорошо, но большое спасибо!
Блендер

Загрузочный график это! Я скомпилировал его, запустил, и он дал мне очень подробные и полезные результаты. Я не собираюсь раздеваться система только все же, как я собираюсь реализовать источник на основе менеджера пакетов (Gentoo?), Но я определенно буду использовать это. Благодарность!
Блендер

6

Среди прочего, вы хотите удалить все, что вам не нужно. Убедитесь, что файловая система atimeполностью включена; Вы можете установить это в /etc/fstab. Текущее значение по умолчанию - relatimeно вы хотите использовать только atime. Каждый раз, когда к файлу обращаются, отметка времени будет обновляться. Затем используйте несколько дней, чтобы увидеть, какие файлы никогда не обновлялись. Я сделал бы все это на виртуальной машине, и очень осторожно, потому что я представляю, что есть несколько файлов, которые читаются, когда система находится в режиме только для чтения. Примечание: установите его, как noatimeтолько вы будете готовы к производству, иначе вы будете делать запись каждый раз, когда читаете; это неэффективно.

Хотя, если честно, я бы посмотрел на Damn Small Linux ; Вы действительно должны быть меньше, чем это? Создайте свой на основе своего дистрибутива и просто удалите менеджер окон и несколько дополнительных программ. Оставьте все инструменты командной строки таким образом, если вам когда-нибудь понадобится восстановить или перезагрузить, у вас есть оболочка.


Благодарность! Я пытаюсь сделать это сам, так как я никогда не получал полностью работающую систему LFS, но я играл с DLS раньше. На самом деле я пытаюсь создать клон ChromeOS, который не сделан с SuSEStudio (который есть на chromium.org) и немного меньше 600 МБ;) Моя цель> 50 МБ, так как DSL включает в себя тонну другого программного обеспечения, но я только устанавливаю OpenBox, Chrome и пользовательский Thunar (и некоторые другие вкусности, конечно). Благодарность!
Блендер

5

при условии, что вы используете Debian или его производные

После нескольких дней (тяжелого) использования бегите popularity-contest. Он будет отображать самые старые неиспользованные пакеты внизу. Удалите их, но внимательно следите за тем, есть ли что-то в зависимости от того, установлены они или нет.

Вот фрагмент вывода:

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

Столбцы означают atime , ctime , имя пакета и доступ к файлу .


1

Активно используйте вашу систему некоторое время с включенным временем доступа к файлам. Посмотрите, какие файлы никогда не изменяют время доступа. Это кандидаты на удаление (но убедитесь, что нет причин их хранить, например, потому что они являются аппаратными драйверами для оборудования, которого у вас нет, или они необходимы в начале процесса загрузки, когда корневой раздел все еще монтируется только для чтения).

Поскольку у вас будет несколько больших приложений, проверьте, какие библиотеки используются одним исполняемым файлом. Подумайте о том, чтобы связать их статически.

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

0

С чего именно вы начинаете? Вы раздеваете существующий дистрибутив? Есть ли причина, по которой вы должны начать с какого-либо дистрибутива?

Возможно, вы захотите создать встроенную систему с нуля и загружать только то, что вам нужно.


Я строю из LFS install + Xorg, Python и Google Chrome. Ничего фантастического.
Блендер

Он использовал GCC, Python и т. Д. Для сборки, но теперь они устарели для моих целей.
Блендер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.