Ныне положение изменилось – и в Source Based дистрибутивах Linux широко используются портообразные системы, развившиеся под сильным влиянием своего FreeBSD-прототипа: портежи Gentoo, Sorcery из Sorcerer'а, порты CRUX, Archlinux Building System из одноименного дистрибутива. Они подчас превосходят своего прародителя по универсальности, гибкости, глобализации настроке или прозрачности устройства, использования и модернизации. К тому же за десятилетие своего развития порты FreeBSD стали весьма громоздким и труднообозримым сооружением, поддержание которого в актуальном состоянии представляет собой отдельную задачу. Далеко не всегда решаемую с помощью дополнительных средств типа portupgrade
И тут уместно сказать пару слов еще об одной широко распространенной легенде – будто бы сборка из исходников посредством портообразных управляющих комплексов всегда приводит к более «чистой» (то есть свободной от лишних компонентов) системе. Это далеко не всегда так.
Во первых, в самой природе портов (и их клонов) часто заложена некоторая избыточность устанавливаемых компонентов. Хрестоматийный пример – cvs-up
modula
(поскольку на нем написан), который дальнейшем не пригодится никому, кроме приверженцев этого языка программирования.Что меня всегда удивляло в портах FreeBSD – ситуация со сборкой моего любимого редактора joe
make
входит в состав FreeBSD Distributions – и собрать с его посредством joe
руками – не составляет никаких проблем.А вообще «чистота» установки пакета очень зависит от конкретной реализации порта. Давеча вот обнаружил я где-то в новостях сообщение о новом оконном менеджере под названием edo
Однако если вы думаете, что такое поведение портов – особенность FreeBSD, и создатели их Linux-клонов учли ошибки прошлого, – уверяю это не всегда так. Причем в Linux ситуация усугубляется особенностями базовой системы – точнее, несогласованностью развития отдельных ее компонентов.
Каждый, кому доводилось собирать Linux from Scratch, знает, что некоторые версии пакетов Base Linux имеют обыкновение собираться только с определенными (отнюдь не обязательно – самыми свежими) версиями таких утилит, как autoconf
automake
, категорически отказываясь делать это с другими их версиями (пусть даже более свежими и прогрессивными).Разработчики Source Based дистрибутивов Linux подчас обходят эту сложность тем, что принудительно вносят в список зависимостей таких «склизких» пакетов autoconf
automake
«прошлогоднего» розлива – при том, что сам по себе базовый комплект включает уже текущие на данный момент их версии. В результате чего, например, в Gentoo при выполнении бутстраппинга или emerge system
можно с удивлением наблюдать, как система лезет в Интернет за бородатым, как Карл Маркс, autoconf
– хотя свежая его версия только что была развернута из тарбалла stage1. А если вспомнить, что многие полагают, будто по настоящему стабильное ядро Linux может быть собрано только с gcc
версии 2.9.X, результатом чего оказывается присутствие в системе двух компиляторов, – о какой «чистоте» сборки можно еще говорить?Впрочем, достижение разумного баланса между развертыванием прекомпилированных пакетов, установкой их из портообразной системы и самостоятельной «штучной» сборкой – тема совершенно отдельного разговора. А пока рискну сформулировать еще пару «объективок»:
•
•
Если тщательно подсчитать приведенные выше плюсы и минусы обеих операционок, можно прийти к выводу, что счет между ними – равный. Возможно, с незначительным позиционным преимуществом FreeBSD, но столь незначительным, что вполне резонно согласиться на ничью. Однако каждая ОС устанавливается, настраивается и наращивается приложениями не ради себя самой, а для практического использования. И потому следует рассмотреть в сравнении их