Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #58, ОКТЯБРЬ 2003 г.

Обновление системы

Владимир Осинцев aka 0с

Xakep, номер #058, стр. 058-074-3


Различия портов и портежей

Портежи предоставляют возможность устанавливать не только последние версии программы, но и более старые - это удобно с точки зрения совместимости или при наличии под рукой исходников определенной версии. Из-за большого количества скриптов коллекция портежей имеет довольно большой размер. В бзде тоже возможно устанавливать разные версии одной и той же программы, но реализовано это по-другому: на каждую версию свой порт, т.е. java/jdk13 и java/jdk14 установят "Java Development Kit" - последние стабильные версии из веток 1.3 и 1.4 соответственно.

В портах этот вопрос решен более рационально, разные версии есть там, где они действительно нужны. Очень приятно, что дерево портов можно обновлять с помощью CVSup не целиком, а лишь нужные категории. Gentoo такой функции не предоставляет, и при команде 'emerge rsync' у тебя синхронизируется ВСЕ дерево целиком. Также в Gentoo абсолютно все ПО устанавливается через портежи: и ядро, и системные библиотеки, и компилятор, и все прочее. В FreeBSD сама система и прикладное ПО разделены, исходники системы лежат в /usr/src, а коллекция портов находится в /usr/ports, они существуют независимо друг от друга, хотя и обновляются при помощи CVSup.

Вычислительные способности Gentoo пока не могут удовлетворить всех заинтересовавшихся этим дистрибутивом, что выражается в регулярном падении зеркал. Насколько мне известно, полноценного зеркала в России Gentoo пока, к сожалению, не имеет. У FreeBSD таких проблем нет. Информация о портах (название, описание и прочее) в системе портов индексируется, что делает поиск, как по названию, так и по ключевому слову, мгновенным. При сравнении портов и портежей стоит обратить внимание на качество этих самых скриптов. В FreeBSD задействовано намного больше народа, и я бы сказал, более квалифицированного. Gentoo относительно молодой дистрибутив, который быстро развивается, но даже при наличии 4000 портежей их поддерживают 100 человек, т.е. в среднем 40 портежей на одного человека: новые версии программ появляются не так часто, как хотелось бы.

Порты в FreeBSD

Подробнее: http://linuxcenter.ru/?sid=S52V3I2g&good=367. Находятся это порты в /usr/ports/. Как мы уже говорили, коллекция портов представляет собой набор скриптов для корректной компиляции, установки и удаления программы из системы. Каждый порт устанавливается по следующему алгоритму: проверяется наличие исходника в /usr/ports/distfiles, и если его там нет, то он закачивается. Затем проверяется MD5 checksum, если он верный, то файл распаковывается в подкаталог work/, применяются специфичные патчи, и начинается конфигурирование. Проверяются зависимости двух типов Build и Run, т.е. список пакетов, нужных для корректной компиляции и запуска порта соответственно. При необходимости, по Run- и Build-зависимостям через систему портов устанавливаются нужные пакеты. Основные команды для работы с портами:

#cd /usr/ports

#make search name=<название_программы> // поиск порта по названию

#make search key=<ключевое_слово> // поиск порта по ключевому слову

Назад на стр. 058-074-2  Содержание  Вперед на стр. 058-074-4