ВНИМАНИЕ: Эти идеи предназначены только для пользователей, которые хорошо разбираются как в Linux в целом, так и в Arch Linux.
Если вы хотите проникнуть на опасную территорию, вы можете уменьшить базовую установку Arch до менее 500 МБ. Это требует выполнения некоторых очень опасных вещей:
- удаление всех ненужных локалей (уже охвачено)
- удаление любых файлов прошивки, не необходимых для запуска вашей системы (из
/usr/lib/firmware
)
- удаление любых модулей ядра, не необходимых для запуска вашей системы (из
/usr/lib/modules/...
)
- удаление любых
.a
файлов /usr/lib
(только если вы никогда не используете систему для компиляции программного обеспечения. Примечание: это включает использование makepkg
)
- удаление всего внутри
/usr/include
(только если вы никогда не используете систему для компиляции программного обеспечения)
- удаление ненужной документации
/usr/share/doc
и/usr/share/info
- (ОЧЕНЬ ПЛОХАЯ ИДЕЯ, если не для сервера) удаление страниц руководства из
/usr/share/man
- (тоже плохая идея) удаление ненужных терминальных дескрипторов
/usr/share/terminfo
и ненужных файлов часовых поясов из/usr/share/zoneinfo
- (ОПАСНО) работает
strip *
на всех папках, содержащих исполняемые файлы ( /usr/bin
и /usr/sbin
)
- (в экстремальных ситуациях) использование такого инструмента, как
upx
сжатие больших двоичных файлов (двоичные файлы Samba пригодны для этого, поскольку они имеют тенденцию быть довольно большими, поскольку они часто компилируются статически.) Также обратите внимание, что использование upx
означает, что весь несжатый двоичный файл должен соответствовать ОЗУ во время выполнения, поэтому будьте измотаны на системах с низким ОЗУ
Прежде чем делать что-либо из этого, создайте полную резервную копию вашей системы. К счастью, Linux делает это относительно легко - если вы можете подключить и смонтировать внешний том (например, USB-диск), вы можете сделать что-то вроде cd / && tar -cf /mnt/usb/mySystem.tar /
резервного копирования всей системы.
Еще раз отметим, что я на самом деле не рекомендую делать вышеизложенное (особенно с 7 по 9), если у вас нет глубоких знаний, опыта и понимания внутренних компонентов Linux и Arch Linux . Игра с любым из перечисленных мною файлов может нанести ужасный ущерб системе, так что вы были предупреждены. Если вы не знаете, нужен ли вашей системе определенный файл прошивки, модуль и т. Д., Прежде чем связываться с ним, проведите исследование. (Имейте в виду, что удаление модулей ядра, в которых нуждается ваша система, может привести к невозможности загрузки системы или к системе без поддержки клавиатуры / сетевой карты / звука / дисплея / и т. Д., Или ко всякому другому необъяснимому поведению.)
Также обратите внимание, что любые обновления пакетов могут и будут восстанавливать многие файлы, которые вы удалили выше. Если вы решите пойти по этому пути, вы, возможно, захотите в конечном итоге написать сценарий удаления ненужных файлов и запускать свой скрипт после каждого обновления основного пакета. (Пример: обновление ядра вернет все модули ядра, а также обновит через зависимый пакет linux-firmware, вернув все прошивки /usr/lib/firmware
.)
Наконец, следите за тем, /var/log
как файлы журнала со временем будут расти. Вы можете удалить прошлые журналы, но сохранить текущие, выполнив что-то вроде rm *\@*.journal
своей папки журнала.
Я успешно запускал NAS-сервер с устройства Disk-on-Module объемом 512 МБ в течение нескольких месяцев, используя эти методы, однако они все еще не для слабонервных. (Я также использовал LinuxFromScratch для создания аналогичного проекта только на 128 МБ памяти, но это другая история ...)
EDIT / ADD:
Вот еще несколько методов, которые вы можете использовать, чтобы получить дополнительное пространство:
Избавляемся от libgo
. libgo
Библиотека поставляется с gcc-libs
и AFAIK используется только приложений , написанных на языке Go. Я не могу вспомнить ни одно приложение, которое я использую, которому нужна эта библиотека. В моей системе это 40 МБ. Когда вы пытаетесь похудеть, это много места. Я удалил его из своих «мини» установок без каких-либо вредных последствий для всего, что я делаю (но опять же, это я, YMMV!)
Сокращение libicudata.so
. Это 27 МБ в моей системе. В основном это тонна данных юникода / локали, сжатых в объект библиотеки. В сети есть инструмент, который может создавать меньшие версии этого файла, но он не обновлялся для текущей версии (и вы не можете использовать более старые файлы в более новых версиях). Я не пробовал делать это вручную, но если вы можете понять, как, вы можете побрить около 20-22 МБ от этого файла.
Если вы используете Python, вы можете сохранить 37MB или так удалением test
библиотеки из python2: rm -r /usr/lib/python2.7/test
и о 66MB, удалив его Python3: rm -r /usr/lib/python3.6/test
.
Опять же для Python, вы можете избавиться от .pyo
файлов и .py
файлов. Эти .pyo
файлы «оптимизированы» файлы, но Python никогда действительно не использует их. Эти .py
файлы являются сырым исходным кодом стандартной библиотеки. Единственные файлы, которые Python обычно читает при запуске кода Python, - это .pyc
файлы (скомпилированные Python). cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
а такжеcd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
Удаление ненужных языковых данных. Существует пакет AUR с именем, localepurge
который автоматизирует это. В противном случае, вы должны поиграть в /usr/share/locale
. Вы должны сохранить свой собственный язык и locale.alias
. Для меня здесь , в США, сохраняя en_US
и locale.alias
и удалить все остальное сбрил о 80MB.
Теперь я хочу увидеть инструмент, который анализирует вашу систему и определяет, какие модули ядра вам нужны, а также какие файлы прошивки вам нужны. Это был бы хороший способ "безопасно" очистить эти папки ...
Или может быть кто - то должен собрать арку «дистрибутивом» , который использует uClibc
или diet-libc
или что - то подобное. Это может быть веселый летний проект. :-)