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

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

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

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

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

  • Каталог files. В каталоге files находится файл с именем md5. Этот файл именуется в честь алгоритма, используемого для подсчета контрольных сумм портов. Контрольная сумма - это число, получаемое после сложения всех данных вашего файла, который вы хотите проверить. Если меняется какой-либо символ, то контрольная сумма уже будет отличаться от оригинальной и будет выведено сообщение об ошибке, чтобы вы могли выяснить, где произошли изменения.

    В каталоге files могут также находиться и другие файлы, необходимые для порта, но которые не подходят для размещения где-то в другом месте структуры каталогов.

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

  • Каталог pkg. В нем, как правило, находятся три файла. Случается, что там помещают и более трех файлов, но это уже зависит от конкретного порта. Большинству требуются только три. Файлы такие:

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

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

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

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

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

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

    # whereis xchat
    xchat: /usr/ports/irc/xchat
    #
        

Это значит, что xchat (клиентская программа для irc) находится в каталоге /usr/ports/irc/xchat.

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

    # cd /usr/ports
    # make search key=xchat
    Port:	xchat-1.3.8
    Path:	/usr/ports/irc/xchat
    Info:	An X11 IRC client using the GTK+ toolkit, and optionally, GNOME
    Maint:	[email protected]
    Index:	irc
    B-deps: XFree86-3.3.5 bzip2-0.9.5d gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gmake-3.77 gtk-1.2.6
    		imlib-1.9.8 jpeg-6b png-1.0.3 tiff-3.5.1
    R-deps: XFree86-3.3.5 gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gtk-1.2.6 imlib-1.9.8 jpeg-6b
    		png-1.0.3 tiff-3.5.1
        

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

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

Теперь, когда вы нашли порт, который хотите установить, можно выполнять реальную установку.

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

Как вы, наверное, уже предположили, исходя из названия раздела, все, что здесь будет описано, предполагает, что у вас имеется набор компакт-дисков FreeBSD. Если у вас его нет, вы можете заказать его с сайта FreeBSD Mall.

Предположим, что ваш компакт-диск с FreeBSD находится в дисководе, он смонтирован в каталог /cdrom (а точкой монтирования обязан быть каталог /cdrom), и вы готовы к установке порта. Чтобы начать, смените текущий каталог на тот, в котором находится порт, который вы хотите установить:

    # cd /usr/ports/irc/xchat
          

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

    # make
    >> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
    >> Attempting to fetch from file:/cdrom/ports/distfiles/.
    ===>  Extracting for xchat-1.3.8
    >> Checksum OK for xchat-1.3.8.tar.bz2.
    ===>   xchat-1.3.8 depends on executable: bzip2 - found
    ===>   xchat-1.3.8 depends on executable: gmake - found
    ===>   xchat-1.3.8 depends on shared library: gtk12.2 - found
    ===>   xchat-1.3.8 depends on shared library: Imlib.5 - found
    ===>   xchat-1.3.8 depends on shared library: X11.6 - found
    ===>  Patching for xchat-1.3.8
    ===>  Applying FreeBSD patches for xchat-1.3.8
    ===>  Configuring for xchat-1.3.8
    ...
    [вывод конфигуратора опущен]
    ...
    ===>  Building for xchat-1.3.8
    ...
    [компиляция опущена]
    ...
    #
          

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

    # make install
    ===>  Installing for xchat-1.3.8
    ===>   xchat-1.3.8 depends on shared library: gtk12.2 - found
    ===>   xchat-1.3.8 depends on shared library: Imlib.5 - found
    ===>   xchat-1.3.8 depends on shared library: X11.6 - found
    ...
    [процедуры установки опущены]
    ...
    ===>   Generating temporary packing list
    ===>   Installing xchat docs in /usr/X11R6/share/doc/xchat
    ===>   Registering installation for xchat-1.3.8
    #
          

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

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

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

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

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

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

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

    # make install
    >> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
    >> Attempting to fetch from http://xchat.org/files/v1.3/.
    Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100%
    305543 bytes transferred in 2.9 seconds  (102.81 Kbytes/s)
    ===>  Extracting for xchat-1.3.8
    >> Checksum OK for xchat-1.3.8.tar.bz2.
    ===>   xchat-1.3.8 depends on executable: bzip2 - found
    ===>   xchat-1.3.8 depends on executable: gmake - found
    ===>   xchat-1.3.8 depends on shared library: gtk12.2 - found
    ===>   xchat-1.3.8 depends on shared library: Imlib.5 - found
    ===>   xchat-1.3.8 depends on shared library: X11.6 - found
    ===>  Patching for xchat-1.3.8
    ===>  Applying FreeBSD patches for xchat-1.3.8
    ===>  Configuring for xchat-1.3.8
    ...
    [вывод конфигуратора опущен]
    ...
    ===>  Building for xchat-1.3.8
    ...
    [компиляция опущена]
    ...
    ===>  Installing for xchat-1.3.8
    ===>   xchat-1.3.8 depends on shared library: gtk12.2 - found
    ===>   xchat-1.3.8 depends on shared library: Imlib.5 - found
    ===>   xchat-1.3.8 depends on shared library: X11.6 - found
    ...
    [процедуры установки опущены]
    ...
    ===>   Generating temporary packing list
    ===>   Installing xchat docs in /usr/X11R6/share/doc/xchat
    ===>   Registering installation for xchat-1.3.8
    #
          

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

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

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

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

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

    # cd /usr/ports/irc/xchat
    # make deinstall
    ===>  Deinstalling for xchat-1.3.8
    #
        

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