Глава 2. Установка приложений.

Вот мы собственно и добрались до того момента, ради чего всё это затевалось. Операционная система - операционной системой, но нам нужно и работать :-) А для этого нам нужны дополнительные приложения.

Во FreeBSD все приложения имеют, как правило, несколько способов установки:

  1. Классический способ установки из исходников, когда приложение собирается и устанавливается набором команд:
    # ./configure
    # make
    # make install
    
    и т.п. Крайне не рекомендую к использованию, хотя в некоторых редких случаях к нему можно прибегнуть.
  2. Установка из так называемых портов. Это наиболее прогрессивный способ установки, который к тому же позволяет избежать множества проблем со взаимосвязями приложений. Рекомендую к применению для большинства приложений, размер архива исходных кодов которого не превышает 10-30Мбайт. Для остальных случаев лучше подходит 3 способ.
  3. Установка через набор приложений /usr/ports/ports-mgmt/portupgrade/. По сути это та же установка из портов, но позволяет облегчить управление установленными приложениями. Советую разобраться с этим способом по подробнее, т.к. он позволяет легко поддерживать систему в актуальном состоянии. Установка приложений производится через команду portinstall. Через команду portupgrade можно обновлять установленные программы. portversion позволяет выявить устаревшие программы.
  4. Установка из бинарных пакетов - packages. Порты и пакеты связаны между собой. Множество портов имеют файл со списком установочных файлов, благодаря чему можно создать package из порта. Это самый быстрый способ установки приложений, т.к. по сути дела представляет из себя извлечение файлов из архива в заранее определённые папки. Однако у этого способа есть и крупный недостаток - собранное приложение требует конкретные версии пакетов, от которых оно зависит, поэтому рекомендую использовать данный способ установки только для очень громоздких приложений (например, OpenOffice.org, сборка которого может занять больше суток на PIV 2,8ГГц). К слову сказать, дистрибутивные диски FreeBSD как раз содержат набор таких пакетов для установки.
  5. Специфические методы установки. Применяются в основном для приложений с закрытым исходным кодом. Собственно говоря сюда можно отнести все остальные способы установки, как говорится кто во что горазд.

Надстройкой над системой пакетов является утилита sysinstall. Вновь зайдём в меню Configure вышеуказанной утилиты и обратим внимание на пункт Packages. Это и есть менеджер пакетов, которые хранятся на дисках с дистрибутивом ОС. После выбора этого пункта нам предложат выбрать источник установки.

Дальнейшее меню предложит нам выбрать или пакеты из какого-то раздела системы портов, либо все имеющиеся пакеты в дистрибутиве (All). Выбор нужных приложений не составляет труда, учитывая то, что при выборе пакета выбираются все зависимые от него пакеты. Надеюсь вы тут быстро освоитесь.

Теперь посмотрим, как можно устанавливать пакеты вручную. Собственно ничего в этом сложного нет, достаточно выполнить команду

# pkg_add назание_пакета.tbz

После её выполнения произойдёт установка пакета, либо будет сообщено какие пакеты ещё не установлены, но требуются для работы приложения. Если эти пакеты уже имеются в той же самой папке, что они будут автоматически установлены. Установку пакета можно форсировать с помощью опции -f:

# pkg_add -f название_пакета.tbz

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

Также интересной опцией установки пакетов может являться вариант:

# pkg_add -r название_пакета

В этом случае будет произведён поиск пакета с указанным названием на ftp-сервере проекта FreeBSD, если заданный пакет будет обнаружен, то он будет скачан и установлен. Однако в этом случае повторная установка пакета уже не будет возможно, т.к. сам пакет после установки будет уничтожен. Так же будут скачаны и установлены все пакеты, от которых имеются зависомость.

Самый удобный способ установки приложений через утилиту portugrade. portupgrade это набор утилит, облегчающий установку и обновление пакетов из коллекции портов. Сама коллекция расположена по адресу /usr/ports. Все приложения разделены на категории, такие как: аудио, мультимедиа, графика, сетевые компоненты, WWW-сервера и клиенты и т.д. Коллекция портов напоминает собой живой организм, т.к. поддерживается большим числом людей. Порты обновляются после выхода новых версий приложений, а также при обнаружении каких-либо недоработок или неудобств в использовании установленных приложений. В отличие от других систем, вам не нужно бродить в интернете в поиске нужной программы, достаточно ознакомиться в содержимым коллекции портов. Большинство популярных приложений имеют уже готовые порты.

Установка приложений из портов не простое занятие, а очень простое!!! Достаточно набрать команду:

# make install

находясь в папке с интересующим приложением. Система проверить наличие необходимых исходных кодов в папке /usr/ports/distfiles и при их отсутствии загрузит их из источников распространения приложения. Если для работы приложения требуются какие-то дополнительные компоненты, то они будут установлены через соответствующие порты. Из этого достоинства вытекает "недостаток", ведь если у вас имеется доступ в интернет с довольно дорогой стоимостью мегабайта, нужно очень осторожно устанавливать приложения. Так например при установке веб-сервера с поддержкой PHP и MySQL может понадобится загрузка исходных кодов кроме Apache ещё и PHP и MySQL, что может составить довольно кругленькую сумму.

Если вы используете portupgrade, то установить приложение будет ещё проще. Достаточно дать команду

# portinstall port_name

Либо

# portupgrade -N port_name

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

Отдельно рассмотрим вариант, если на вашем компьютере нет доступа в интернет, тогда попытка загрузки необходимых файлов завершиться с ошибкой. В этом случае можно скачать необходимые файлы отдельно и поместить их в папку /usr/ports/distfiles (либо в папку внутри этой папки). Что скачать и куда поместить пожно разобраться внимательно ознакомившись с сообщениями об ошибках.

Если вы работаете через прокси, то необходимо его указать. Поскольку загрузка происходит с помощью команды fetch, то следует изучить man fetch. Из описания мы узнаем, что нужно определить переменные окружения HTTP_PROXY и FTP_PROXY (к слову сказать, при просмотре man fetch мы их не увидим, зато внутри описания есть ссылка на fetch(3), т.е. мы можем получить дополнительные подробности выполнив команду man 3 fetch). Сделать это можно отредактировав файл .cshrc в домашнем каталоге пользователя, от которого производится установка (обычно это root, т.е. нас интересует файл /root/.cshrc):

# cd ~
# ee .cshrc

далее добавляем строку следующего содержания

set HTTP_PROXY 192.168.1.1:3128

или

set FTP_PROXY 192.168.1.1:3129

где 192.168.1.1:3128 - адрес и порт HTTP-прокси, 192.168.1.1:3129 - адрес и порт FTP-прокси.

Если адрес FTP-прокси не указан, то при наличии записи HTTP-прокси, загрузка будет производиться через него, как имеющего поддержку FTP.

Для упрощения исследования системы я бы посоветовал установить следующий порт: /usr/ports/misc/mc/ - файловый менеджер в стиле Norton Commander - Midnight Commander. Позволит вам наглядно познакомится со структурой каталогов вашей системы. Однако его использование значительно урезает возможности коммандной строки. С набором опыта вполне возможно, что вам даже покажется неудобным использовать mc!