Использование Коллекции Портов

4.5. Использование Коллекции Портов

В этих разделах описаны основные приемы использования коллекции портов для установки и удаления программ из вашей системы.

4.5.1. Получение Коллекции Портов

Перед тем, как вы сможете устанавливать порты, вы сначала должны установить коллекцию портов--она представляет собой в основном набор make-файлов, патчей, файлов описаний, и размещается обычно в /usr/ports.

При установке вашей системы FreeBSD утилита Sysinstall запрашивает, требуется ли вам установка коллекции портов. Если вы ответили отрицательно, то можете следовать этим указаниям для установки коллекции портов.

Метод с использованием Sysinstall

В этом методе повторно используется sysinstall для ручной установки коллекции портов.

  1. Работая как пользователь root, запустите /stand/sysinstall так, как это показано ниже:

        # /stand/sysinstall
  2. Опуститесь вниз и выберите Configure, нажмите Enter

  3. Опуститесь вниз и выберите Distributions, затем нажмите Enter

  4. Опуститесь вниз к ports, нажмите пробельную клавишу

  5. Поднимитесь вверх к Exit, нажмите Enter

  6. Выберите желаемый носитель для установки, например, CDROM, FTP и так далее.

  7. Пройдите по меню до выхода (Exit) из sysinstall.

Альтернативный метод получения и постоянной актуализации вашей коллекции портов заключается в использовании CVSup. Посмотрите на файл CVSup из портов, /usr/share/examples/cvsup/ports-supfile. Прочтите раздел Использование CVSup () для получения более полной информации об использовании CVSup и указанного файла.

Метод с использованием CVSup

Это быстрый способ получения коллекции портов при помощи CVSup. Если вы хотите поддерживать ваше дерево портов в актуальном состоянии, или узнать больше о CVSup, то прочтите вышеотмеченные разделы.

  1. Установите порт net/cvsup. Обратитесь к разделу Установка CVSup () для получения более подробной информации.

  2. Работая как пользователь root, скопируйте /usr/share/examples/cvsup/ports-supfile в новое место, например, в каталог /root или в ваш домашний каталог.

  3. Отредактируйте ports-supfile.

  4. Измените CHANGE_THIS.FreeBSD.org на близкий к вам CVSup. Посмотрите раздел Зеркала CVSup () для получения полного списка зеркалирующих сайтов.

  5. Запустите cvsup

        # cvsup -g -L 2 /root/ports-supfile
  6. В дальнейшем при повторных запусках этой команды все последние изменения будут переноситься в вашу коллекцию портов.

4.5.2. Установка портов

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

  • Makefile. Makefile содержит различные директивы, которые определяют, как приложение должно быть откомпилировано и куда в вашей системе оно должно быть установлено

  • Файл distinfo. Этот файл содержит информацию о файлах, которые должны существовать на вашей системе для успешной сборки порта, и контрольные суммы, для того чтобы быть уверенным, что файлы не были повреждены в процессе скачки.

  • Каталог files. Этот каталог содержит патчи, использование которых необходимо для компиляции и установки программы в вашей системе FreeBSD. Патчи - это, как правило, маленькие файлы, в которых содержатся изменения, которые нужно внести в какой-то конкретный файл. Они имеют обычный текстовый формат и в основном содержат указания типа "Удалить строку 10" или "Заменить строку 26 на такую ...". Патчи также называются "diff-файлами" или просто "диффами", потому что они генерируются программой diff.

    Этот каталог также может содержать другие файлы используемые в процессе сборки порта.

  • pkg-comment. Это однострочное описание программы.

  • pkg-descr. Это более подробное, зачастую многострочное описание программы.

  • pkg-plist. Это список всех файлов, которые будут установлены портом. В нем также содержатся указания системе портов на удаление определенных файлов во время удаления порта.

В некоторых портах присутствуют и другие файлы, такие, как pkg-message. Система портов использует эти файлы для обработки особых ситуаций. Если вы хотите узнать более подробно об этих файлах и о портах вообще, то обратитесь к Руководству по созданию портов для FreeBSD.

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

Однако, прежде чем мы этим займемся, вам нужно выбрать порт для установки. Есть несколько способов сделать это, самый простой из которых заключается в использовании списка портов на сайте FreeBSD. Вы можете просто полистать весь список портов или воспользоваться возможностями поиска на сайте. Каждый порт также включает описание, так что вы можете прочесть некоторую информацию о каждом из портов, прежде чем решить его установить.

Другой метод заключается в использовании команды whereis. Чтобы ей воспользоваться, просто наберите в приглашении "whereis file ", где file - программа, которую вы хотите установить. И если она имеется в вашей системе, вам об этом будет сообщено, примерно так:

    # whereis lsof
    lsof: /usr/ports/sysutils/lsof

Это говорит о том, что lsof (системная утилита) находится в каталоге /usr/ports/sysutils/lsof.

Ещё одним способом поиска конкретного порта является использование встроенной возможности поиска в коллекции портов. Чтобы ею воспользоваться, вы должны находиться в каталоге /usr/ports. Очутившись в этом каталоге, выполните команду make search name=program-name, где program-name - это название программы, которую вы хотите найти. Например, если вы ищете lsof:

    # cd /usr/ports
    # make search name=lsof
    Port:   lsof-4.56.4
    Path:   /usr/ports/sysutils/lsof
    Info:   Lists information about open files (similar to fstat(1))
    Maint:  obrien@FreeBSD.org
    Index:  sysutils
    B-deps:
    R-deps:

Вам следует обратить особое внимание на строчку "Path:", так как в ней указывается, где найти программу. Остальная сообщаемая информация для непосредственно установки порта не нужна, поэтому здесь она не описывается.

Для выполнения более глубокого поиска вы можете также использовать make search key=string, где string представляет собой некоторый текст, который ищется. При этом будет выполнен поиск в именах портов, комментариях, описаниях и зависимостях, и его можно использовать для поиска портов, связанных с некоторой темой, если вы не знаете названия программы, которую вы ищете.

В обоих этих случаях строка поиска нечувствительна к регистру. Поиск "LSOF" приводит к тому же самому результату, что и поиск "lsof".

Note: Для установки портов вы должны иметь привилегии пользователя root.

Теперь, когда вы нашли порт, который хотите установить, можно выполнять реальную установку. В порт включены инструкции относительно того, как выполнять построение из исходного кода, но сам код в порт не включён. Вы можете получить исходный код с компакт-диска или из Интернет. Исходный код распространяется в том виде, какой предпочёл выбрать разработчик. Зачастую это tar-файл, обработанный утилитой gzip, но он может также быть упакованным каким-то другим инструментом или быть не сжатым. Исходный код программы, в каком бы то виде он ни был, называется "дистрибутивным" (distfile). Вы можете получить дистрибутивный файл с CDROM или через Интернет.

4.5.2.1. Установка портов с компакт-диска

Официальные образы CDROM Проекта FreeBSD больше не содержат файлы дистрибутивов. На них есть достаточно места, которое лучше использовать для предкомпилированных пакетов. Продукты на CDROM, такие, как FreeBSD PowerPak, включают дистрибутивные файлы, и вы можете заказать их от таких поставщиков, как FreeBSD Mall. В этом разделе предполагается, что у вас есть такой набор CDROM с FreeBSD.

Вставьте ваш CDROM с FreeBSD в привод. Смонтируйте его в каталог /cdrom. (Если вы используете другую точку монтирования, то установка работать не будет.) Чтобы начать, перейдите в каталог с портом, который вы хотите установить:

    # cd /usr/ports/sysutils/lsof

Оказавшись в каталоге lsof, вы увидите скелет порта. Следующим шагом является шаг компиляции (также называемый шагом построения) порта. Это выполняется простой выдачей команды make в ответ на приглашение командного процессора. Как только вы это сделаете, вы увидите нечто, выглядящее примерно так:

    # make
    >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
    >> Attempting to fetch from file:/cdrom/ports/distfiles/.
    ===>  Extracting for lsof-4.57
    ...
    [выдача процесса распаковки опущена]
    ...
    >> Checksum OK for lsof_4.57D.freebsd.tar.gz.
    ===>  Patching for lsof-4.57
    ===>  Applying FreeBSD patches for lsof-4.57
    ===>  Configuring for lsof-4.57
    ...
    [вывод конфигуратора опущен]
    ...
    ===>  Building for lsof-4.57
    ...
    [компиляция опущена]
    ...
    #

Заметьте, что, как только компиляция закончится, вы снова вернетесь к приглашению вашего командного процессора. Следующим шагом является установка порта. Чтобы это сделать, вам нужно просто добавить одно слово к команде make, а именно слово install:

    # make install
    ===>  Installing for lsof-4.57
    ...
    [процедуры установки опущены]
    ...
    ===>   Generating temporary packing list
    ===>   Compressing manual pages for lsof-4.57
    ===>   Registering installation for lsof-4.57
    ===>  SECURITY NOTE:
          This port has installed the following binaries which execute with
          increased privileges.
    #

Как только вы вернулись к приглашению вашей оболочки, вы должны суметь запустить приложение, которое только что установили. Так как lsof является программой, которая запускается с повышенными правами, то выдаётся предупреждение о безопасности. Во время построения и установки портов вы должны принимать во внимание все выдаваемые предупреждения.

Note: Вы можете сэкономить лишний шаг, просто выдав команду make install вместо make и последующей make install в двух отдельных шагах.

Note: Пожалуйста, будьте готовы к тому, что лицензии некоторых портов не позволяют помещать их на компакт-диск. Это может делаться из-за обязательности заполнения регистрационной формы перед сгрузкой, запрета на дальнейшее распространение и так далее. Если вы хотите установить порт, которого нет на компакт-диске, вам нужно иметь подключение к Интернет, чтобы это сделать (обратитесь к следующему разделу).

4.5.2.2. Установка портов из Интернет

Как и в предыдущем разделе, здесь предполагается, что у вас имеется работающее подключение к Интернет. Если это не ваш случай, вам нужно выполнить установку с компакт-диска.

Установка порта из Интернет производится точно так же, как если бы делали ее с компакт-диска. Единственным отличием между ними является тот факт, что дистрибутивный файл сгружается из Интернет, а не берётся с компакт-диска.

Выполняются те же самые шаги:

    # make install
    >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
    >> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
    Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
    439860 bytes transferred in 18.0 seconds (23.90 kBps)
    ===>  Extracting for lsof-4.57
    ...
    [выдача процесса распаковки опущена]
    ...
    >> Checksum OK for lsof_4.57D.freebsd.tar.gz.
    ===>  Patching for lsof-4.57
    ===>  Applying FreeBSD patches for lsof-4.57
    ===>  Configuring for lsof-4.57
    ...
    [вывод конфигуратора опущен]
    ...
    ===>  Building for lsof-4.57
    ...
    [компиляция опущена]
    ...
    ===>  Installing for lsof-4.57
    ...
    [процедуры установки опущены]
    ...
    ===>   Generating temporary packing list
    ===>   Compressing manual pages for lsof-4.57
    ===>   Registering installation for lsof-4.57
    ===>  SECURITY NOTE:
          This port has installed the following binaries which execute with
          increased privileges.
    #

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

Это всё об установке портов на вашу систему. В следующем разделе вы узнаете, как удалить порт из вашей системы.

4.5.3. Удаление установленных портов

Теперь, когда вы знаете, как устанавливать порты, вы наверное, уже задумывались о том, как же их удалять, просто даже на тот случай, если вы установили один из них, а позже решили, что установили не тот порт. Мы удалим порт из нашего предыдущего примера (а это была программа lsof, если вы обратили внимание). Как и при установке портов, первым делом вы должны перейти в каталог с портом, /usr/ports/sysutils/lsof. После смены каталога вы готовы к удалению xchat. Это делается командой make deinstall:

    # cd /usr/ports/sysutils/lsof
    # make deinstall
    ===>  Deinstalling for lsof-4.57

Это было достаточно легко. Вы удалили lsof из вашей системы. Если вам захочется переустановить эту программу, то это можно будет сделать, выдав команду make reinstall из каталога /usr/ports/sysutils/lsof.

Последовательность команд make deinstall и make reinstall не сработает, если вы запустите команду make clean. Если вы хотите убрать порт из системы после зачистки каталога, используйте команду pkg_delete так, как это описано в разделе о пакетах Руководства.