21 мая, 2012

Linux From Scratch book(LFS): о пользе и вреде

Когда я только начинал свой путь в Linux, все собиралось и пересобиралось из исходников. Это было так давно, что даже не верится. С тех пор Linux сильно изменился, исключая нишу embeded, где битва идет за каждый байт, и сейчас абсолютное большинство установок используют дистрибутивы с бинарными пакетами. Так какой смысл возвращаться в прошлое?

Мнения о LFS варьируются от "Сервера можно ставить только на LFS, кто делает иначе - идиоты" до "Эти идиоты только делают свой вклад в глобальное потепление". Истина, как обычно, где-то посредине.

Достоинства решений на основе LFS:

  1. Полный контроль над составом и параметрами сборки, в идеале - ни одной лишней зависимости
  2. Как следствие из п.1 - минимальный размер системы
  3. Еще одним достоинством является уникальность системы - большинство червей, взломав прикладное ПО, ничего не смогут сделать - даже минимальные отличия ломают автоматику проникновения и сокрытия
Недостатки решений на основе LFS:
  1. Состав, параметры сборки, патчи - все должно быть задокументировано, иначе контроль превращается в фикцию. Не то, чтобы полного документирования не требовали системы на основе бинарных пакетов, но в них функция документирования является частью пакетного менеджера и при определенных усилиях есть возможность восстановить контроль над системой без переустановки.
  2. Минимальный размер системы и нестандартные зависимости станут препятствием на пути расширения функциональности. Например переход на централизованную авторизацию в LDAP потребует пересборки всего ПО, входящего в состав сервера и продолжительного тестирования. (Сравните с установкой нескольких пакетов одной командой и прописыванием пары настроек в конфигах на пакетном дистрибутиве)
  3. Поиск причин неисправности на уникальном дистрибутиве всегда превращается в увлекательно мероприятие, надолго парализующее работу сервера.
  4. Обновление (с закрытием уязвимостей или для получения нового функционала) является задачей неподъемной. Обычно собрать пакетную базу заново с обновлением намного проще, чем обновить один компонент и удостовериться, что все остальное не сломалось.
На мой взгляд недостатки использования LFS в реальной жизни намного перевешивают достоинства. Если в вашей организации используются решения на LFS (в меньшей степени на Gentoo) - спросите администратора о комплекте документации по его сборке и настройке. Если документации нет - гоните этого псевдоадмина с записью о полной профнепригодности в трудовой книжке.

Но LFS есть еще одно достоинство - это прекрасное учебное пособие по архитектуре современного дистрибутива Linux. Времена Slackware 1.0 с которого я начинал ушли безвозвратно. Современные дистрибутивы стремятся скрыть максимальное количество подробностей за красивым графическим инсталятором и средствами автоматизации. Их цель понятна - снижения порога вхождения в технологию. Любой школьник сейчас способен установить Linux, некоторые даже способны пересобрать инсталятор(привет Попову). Побочным эффектом является понижение процента людей, которые могут решить нетривиальную задачу. Просто потому, что мало кто знает о взаимосвязях компонентов и их взаимовлиянии. 

Я всегда настоятельно рекомендую каждому, чья профессия связана с администрированием Linux (да и в целом Unix) систем один раз собрать собственную систему по мотивам LFS. Характер вопросов меняется кардинально: вместо криков по телефону "Ой, у меня все поломалось" приходят письма с полным описанием что не работает, что было предпринято и не помогло, логами strace. И если первых стараешься вежливо или не очень послать по всем известному адресу, то вторым стараешься помочь, понимая что в дальнейшем и сам можешь обратиться к ним за помощью.

3 комментария:

Алексей Федорчук комментирует...

Ну обычно на LFS и не возвращаются. Как сказал знаменитый линуксоид Уинстон Черчилль:
> Тот, кто не собирал LFS в (информационной) юности - не имеет сердца. Тот, кто продолжает собирать её в (информационной) зрелости - не имеет разума.

Unknown комментирует...

Если иметь непрерывный опыт работы в качестве админа Linux, то смысла возвращаться нет. А если случаются большие перерывы... Я вот никак не могу "въехать" в systemd, потому что пропустил момент начала его внедрения... Нужно сесть и собрать LFS с systemd и тогда все станет опять ясно и понятно :)

Алексей Федорчук комментирует...

а может, не надо?
это я про сисемдизацию...
для меня LFS был всегда не догмой, а руководством к размышлению
И ведь, видимо, Вы должны помнить другой проект из той же оперы - Джо Торпа, где был чуть другой подход к вытягиванию себя за косичку от парика
PS ни разу не админ, а простой советский юзер