FreeBSD: порты и пакеты – поиск, установка, обновление

Автор: | 15/08/2011

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

FreeBSD даёт две взаимодополняющих технологии для установки программного обеспечения сторонних разработчиков в вашу систему:

  • Коллекция Портов FreeBSD
  • Бинарные пакеты с программным обеспечением

Любая из этих систем может быть использована для установки самых последних версий ваших любимых приложений с локальных носителей или прямо из сети.

На вопрос «Что такое порты и пакеты?» вам поможет статья BSD vs Linux. Что такое «Порт»?.

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

Пакеты

Установка пакета

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

где «-r» означает «remote», т.е. будет качаться с интернета.

Список установленных пакетов

# pkg_info

или информация о пакете

# pkg_info название_пакета

Удаление пакета

# pkg_delete название_пакета

Версия пакета

# pkg_version название_пакета

Поиск установленного пакета по части имени:

# pkg_info | grep название_пакета

к примеру:

# pkg_info |grep cla
clamav-0.97.3_1

Порты

Установка

# make install

Повторный вывод послеустановочной информации:

# pkg_info имя_пакета -D messagewall

Очень полезный ключ -L, выводит полный путь для каждого файла, который
был установлен для приложения:

# pkg_info имя_пакета -L

Что бы не смотреть все файлы, можно сделать выборку, например – страницы man:

# pkg_info -xL portupgrade | grep man

Проверка, какие пакеты зависят от выбранного:

# pkg_info имя_пакета -R

Проверка, сколько места занимает каждый из пакетов:

# pkg_info -as

Переустановка

# make reinstall

Удаление

# make deinstall

Очистка от промежуточных сборок

# make clean

Очистка от скачанных файлов

# make distclean

Предустановочная настройка (иначе установка будет производится по сохраненной при предыдущей сборке конфигурации)

# make rmconfig

и

# make config

Поиск порта по ключу

# make search key=КЛЮЧ

Поиск порта по названию

# make search name=ИМЯ

Это основные команды, более подробно на официальной странице руководства по FreeBSD

После установки ПО

Если вы используете оболочку sh – выполните «rehash», для того, чтобы не писать полный путь /path/to/program, а использовать сразу program:

# rehash

Обновления дерева портов

Утилита portsnap включена в состав базового дистрибутива с FreeBSD 6.0, для более ранних версий необходима установка (/usr/ports/sysutils/portsnap/).

При первом обновлении необходимо выполнить следующие команды:

# portsnap fetch && portsnap extract

При последующих обновлениях

# portsnap fetch update

Пример,

# cd /usr/ports/
portsnap fetch && portsnap extract

Более подробно тут.

Для ежедневного (каждую ночь в 03:00) обновления упакованного снимка и индексного файла при помощи portsnap и последующего отчета почтой об устаревших установленных пакетах добавьте в ваш файл /etc/crontab строку

0 3 * * * root portsnap cron && pkg_version -vIL=

Подробности можно почитать тут

Обновление пакетов

Утилиту portupgrade надо сначала установить.

# cd /usr/ports/sysutils/portupgrade/
make install clean

Обновление

# portupgrade название_программы

Используйте portupgrade pkgname, с флагом -r, если portupgrade должен обновить все пакеты, которые зависят от указанного, и использовать флаг -R для обвления всех пакетов, которые требуют указанный пакет.

Ёще рекомендую сайт www.freshports.org для поиска пакетов и портов.

Более подробно о portupgrade тут, тут и тут.