«Чистый» Linux: ещё один великолепный миф?

Алексей Федорчук

Как известно, установка «абсолютно чистой», то есть полностью лишённой не используемых компонентов, системы — вековая мечта линуксоидов всех стран и народов, столь же трепетная, как и сборка системы, идеально оптимизированной под «железо». Кстати, оба этих стремления тесно связаны друг с другом. В устремлённости к светлому будущему их можно сравнить только с идеей построения коммунизма в мировом масштабе.

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

Возьмём типовой пример построения собственной системы — установку с диска Debian netinstal, или Ubuntu в режиме CLI only (то есть без Иксов и каких бы то ни было сред), или Fedora в текстовом режиме, или Archlinux с установкой по FTP, или с диска Zenwalk Core… да примеры таких «полуфабрикатных» дистрибутивов можно умножать без счёта. Казалось бы, получив в свое распоряжение Base Linux, более или менее свободный от «избыточных» компонентов, мы имеем полную возможность доустанавливать только нужные пакеты, особенно имя дело с Deb based системами, допускающими очень дробное деление авторских пакетов.

Теоретически да. Но теоретически она лошадь, как говорил дед Щукарь, а практически она падает. Так и тут: у нас есть полная возможность установить Иксы в минимально необходимом объёме, то есть без лишних видеодрайверов или драйверов устройств ввода. В наших силах поставить любой нужный менеджер окон или базовые компоненты интегрированный среды без излишеств вроде kdeeducation или kdetoys. И, казалось бы, обрести чистоту и счастье.

Но не тут-то было. Как только мы начинаем ставить пользовательские приложения, типа офисных пакетов и графических редакторов, как с удивлением обнаруживаем, что в систему тихой сапой проникли и cups, и samba, и sane — и это даже при физическом отсутствии принтеров, сканеров, разделяемых Windows-ресурсов. Проникли просто как зависимости — потому что майнтайнеры пакетов считают, что Openoffice.org не сможет выполнять свою работу без возможности печатать, GIMP — без возможности сканировать, и так далее. Я уж не говорю об изобилии локализаций — почему-то считается, что пользователь интегрированной графической среды должен, в порядке крепления международной солидарности, обязательно использовать тамильский или зулусский язык.

В некоторых случаях (например, с Fedora) от лишних локализаций удаётся избавиться только путём утраты некоторой функциональности — если и не жизненно необходимой, то весьма желательной (например, потери шрифтов Dejavu). В других случаях, как с Debian или Arch, от всего балласта избавиться таки можно — но тут платой будут затраты времени, абсолютно несоизмеримые с выигрышем дискового пространства. И в итоге возникает вопрос: а стоит ли заниматься этим вообще? Тем более, что нет никаких гарантий от восстания из пепла удалённых компонентов после первого же существенного обновления системы.

Предвижу возражение: всё сказанное относилось к пакетным дистрибутивам. Но ведь есть ещё и дистрибутивы Source Based, где пользователь может скомпилировать только то, что ему действительно нужно, посредством опций конфигурирования избавившись от всех ненужных зависимостей. Как давний пользователь FreeBSD и один из первых дженедужников Советского Союза могу ответить на это только ржунимагуем испацтуло. Потому как это и есть величайшая из иллюзий соурсбейзников.

Потому что мало того, что сборка системы и приложений из исходников требует наличия полного комплекта стандартного сборочного инструментария в виде gcc, bunutils etc., которые пользователю в обыденной жизни, далёкой от разработки и майнтайнинга, могут быть без надобности. Нет, установка какой-либо безобидной утилиты может потребовать и инструментария абсолютно нестандартного, более никогда не понадобящегося.

Так какая, простите, разница — несёт ли наша система в качестве балласта cups и sane или кучу средств разработки? Тем более, что представить ситуацию, когда функции печати или сканирования вдруг действительно понадобятся. А вот представить себе, что пользователь ощутит необходимость в использовании языка Ada самого по себе — я не могу даже теоретически. Не говоря уже о двух или трёх параллельных версиях autoconf и automake, необходимых при сборке Gentoo со stage1.

Конечно, и от всего сборочного инвентаря можно избавиться по завершении установки Source Based системы. Однако он неизбежно потребуется при первом же её обновлении — а ведь лёгкость поддержания системы в актуальном состоянии есть вторая главная иллюзия дженедужнегов иже с ними.

Что же до избавления от лишних зависимостей при компиляции — начал мучительно вспоминать, а какие из зависимостей «мягких» мне действительно мешали по жизни? «Падежей припомнил только два» — сборка links и mc с поддержкой gpm при запуске в чистой консоли. Да, действительно, мешала: так и не привык нажимать Shift для использования в них мыши по её прямому Юниксовому назначению — как устройства ввода, а не указателя-позиционерщика.

Правда, тут же начал припоминать: а когда я последний раз запускал хоть одну из этих программ в чистой консоли, помимо терминального окна? Не припомнил… В Иксовых же терминалах поддержка gpm для программ такого рода отнюдь не лишняя.

Подведу итог: достижение «чистоты» системы, служащей пользовательским десктопом, возможно путём:

  • жёсткого ограничения функциональности,
  • отказа от всех  «мягких» зависимостей,
  • возможно, даже статической линковки, и, как следствие,
  • практически отказа от обновления системы штатными средствами данного дистрибутива.

После чего система перестаёт быть пользовательским десктопом в расхожем понимании этого термина. Превращаясь во что? Правильно, в элегантные шорты. То есть — тот самый пресловутый узкофункциональный АРМ, о необходимости которого время от времени напоминают непринадлеженцы к любым информационно-политическим партиям. Но это совсем другая история.

А завершая историю нынешнюю, вернусь к первому абзацу заметки и процитирую Михаила Рудаченко aka Ali. О том, что привычка бороться с излишними зависимостями на пользовательском десктопе —

… вредная. Ну зачем с ними бороться? Диск нынче дёшев, а ёмкость растет быстрее размера пакетов.

И в этом аспекте кардинальный недостаток пакетов rpm-формата — отсутствие вариативных зависимостей — превращается где-то в достоинство. Избавляя от мозго… полоскания в тех случаях, когда таковое явно излишне. Но оставляя достаточно простора для творческого индивидуализма при необходимости. Что надеюсь проиллюстрировать в ближайшее время.

«Чистый» Linux: ещё один великолепный миф?: 12 комментариев

  1. Во-во. Я когда пришёл к этой же нехитрой мысли — поставил себе гном. Что толку собирать DE по крупицам, если самые «вкусные» для меня приложения тянут почти весь Гном?
    Примерно в то же время его аппетиты к памяти уменьшились, а скорость — возросла (к KDE это тоже относится, да).

  2. Забавно, опять «параллелизм» мышления наблюдается :).

    Не скажу, что я читал обсуждение на posix-е, но видно как-то всё же заглядывал, и, кажется, именно там прочитал фразу об «окончании золотого века Linux с уходом RedHat 7.3» (не дословно). Что, в свою очередь, натолкнуло меня на размышления об усложнении систем и т.д. Я даже (по дороге к месту старта байдарочного похода) какие-то заметки накропал в palm-e. От этого, однако, даже до блогометки ещё далековато.

    А если по сути, то:
    — пользователя IBM PC надо бы просто освободить от настроек, инсталяций, update-ов и прочая. Он уже давно к этому стремится. Чем окончательно свести (для него) IBM PC к бытовому прибору. Не вижу технических препятствий.
    — разработчика (включая любителей) желательно снабдить простой и прозрачной системой начального уровня, допускающей бесконечную эволюцию хоть в производственных/коммерческих, хоть в личных целях.

    В результате первый будет избавлен от непосильного умственного труда, а интеллектуальные ресурсы второго будут направлены более — на создание, менее — на изучение монстроподобных дистрибутивов, бесконечно преследующих одну и ту же недостижимую цель: сделать интеллектуальную деятельность бездумной.

    Отчасти — шучу, отчасти — утрирую. Но, «в каждой шутке…» ;)

  3. Откровения путешественника, который облазив все эти Америки, обнаружил что, родные березы роднее.

  4. Дядька Попов все правильно говорит. Пользователю пользователево, а цезарю цезарево.

  5. 2 popov.v.n
    > сделать интеллектуальную деятельность бездумной.
    ___
    В афонаризмы, на скрижали!
    Кстати, твоё последнее сочинения в блоге я прочитал — хоть RSS’ом и не пользуюсь, но на читаемые блоги заходить не ленюсь,

    Женя и Олег, касаемо ваших каментов — да мысль же носится в воздухе. Ну в своё время затратил я немало сил на FreeBSD, Gentoo и LFS. О чём не жалею — много интересного узнал.
    Но нынче, если бы мне пришлось заниматься практической работой — писать проекты/отчёты, романы там, или даже петрогеохимию считать — не стал бы я заморачиваться с чистыми системами, а юзал бы первую подвернувшуюся.
    Но что делать — нынче моя работа находить трудности там, где пользователь о них и не подозревает, а потом рассказывать ему, как он их может героически побороть.
    Тоже шутка с долей оной :)

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

  6. 2 alv
    > федора не встаёт убунтой на мандриву

    Думал…, хихикал….

  7. из личных наблюдений:
    рядом сидящие админы настраивают свои ОС под АРМ:

    виндоус — полдня с дальнейшим пересетапом каждый месяц как минимум :) (маладежь… чо с нее взять? пусть играется)
    мандрива (с сексом установки КДЕ3) — неделю с дальнейшим сексом приживления ПО в ДЕ (данный админ не гонится за куррентом)
    убунту — 2 дня с дальнейшим сексом убитых настроек при апдейтах
    генту — 3 недели, зато железно и надолго (апдейты идут в фоне)
    фрибсд — неделю (или две при КДЕ3) без дальнейшего секса (таких тута двое, один из них я (причом у мну нет кде) ;) ) апдейты идут в фоне и не мешают работе

    набор программ стандартен для админа обычного производственного предприятия

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

    Исходя из вышеизложенного анализа, у меня сложилось мнение — чем бы дитя ни тешилось… :) однако «пальцевые» инстинкты вкупе с приобретенной привычкой видеть процессы глазами, дают админам от фрибсд больше шансов разобраться в ситуациях на серверах (ОС не важна). Админы использующие АРМ с пакетными дистрами отвыкают от сермяжности командной строки и теряются при нестандартных ситуациях на серверах

    ЗЫ это ИМХО голимое и на последнюю инстанцию не претендующее… высказано просто как «крик души»

  8. 2 polkan
    > “пальцевые” инстинкты вкупе с приобретенной привычкой видеть процессы глазами, дают админам от фрибсд больше шансов разобраться в ситуациях на серверах (ОС не важна).
    ___
    Примерно то же самое можно сказать о слакварщиках, например, или тех же джентушниках.
    Мне кажется, тут дело не столько в ОС/дистре, сколько в том, что и FreeBSD, и Slackware, и Gentoo просто таки провоцируют пользователя (вовсе даже не админа по жизни) на чтение документации. Благо в любом из перечисленных есть что почитать — она подробная и структурированная. А уж комментарии в конфигах Патрика можно читать если не как романы, то как новеллы — точно.

  9. Как для музыканта инструмент вторичное, первичное уровень развития музыканта как музыканта так и ОС так же не существенно так как Окно использовать все его возмозности не хватит и 100 лет.

  10. 2 Aksyusha
    А про колбасу из уларов слабо написать?
    Вроде как тоже индейка, хотя и очень горная.

  11. 2 Aksyusha
    И кстати, а Вам не приходилось слышать про то, что Паганини скрипки умел строгать? Причём такие, что профессиональным скрипострогальщикам было завидно.

  12. а вот мечтал на старой железке поднять сервер разработки, совмещенный торрентом.
    в итоге остановился на «телефонном» CentOS (sipFoundry sipXecs).

    теперь вот думаю как без иксов винду воткнуть в эмуляторе

Обсуждение закрыто.