Site icon 8HOST.COM

Управление пакетами в FreeBSD 10.1

Менеджер бинарных пакетов FreeBSD по имени pkg позволяет управлять установкой предварительно скомпилированных приложений. По сравнению с другим распространенным методом установки программного обеспечения в системе FreeBSD, – компиляцией портов при помощи коллекции портов (FreeBSD Ports Collection), – использование пакетов является гораздо более простым, быстрым и универсальным способом установки. Пакеты, однако, не обладают такой гибкостью, как порты, поскольку они не могут быть изменены; потому при необходимости отредактировать параметры установки программного обеспечения рекомендуется использовать порты вместо пакетов.

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

Требования

Для запуска команд данного руководства необходимы привилегии root. Это значит, пользователь должен войти на сервер FreeBSD как root и создать альтернативного пользователя с расширенными привилегиями при помощи команды sudo. В целом, можно просто использовать учётную запись root, но это более опасно.

Установка пакетов при помощи pkg

Если вам известно имя пакета, который нужно установить, используйте следующую команду:

sudo pkg install имя_пакета

Можно также указать сразу несколько пакетов, разделив их при помощи пробела:

sudo pkg install package1 package2 ...

Для примера можно установить популярный веб-сервер Nginx:

sudo pkg install nginx

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

В данном примере будет установлен только nginx. Нажмите y, чтобы подтвердить установку.

New packages to be INSTALLED:
nginx: 1.6.2_1,2
The process will require 654 KB more space.
244 KB to be downloaded.
Proceed with this action? [y/N]: y

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

В стандартной оболочке (tcsh или csh) нужно восстановить список бинарных пакетов в PATH при помощи команды:

rehash

Также важно помнить, что приложения, которые используются как сервисы, не запускаются автоматически и не являются сервисами по умолчанию.

Запуск сервисов

В системе FreeBSD сервисы, установленные через пакеты, предоставляют скрипт инициализации в /usr/local/etc/rc.d. Установив nginx, который можно запустить как сервис, нужно выполнить его скрипт запуска, который называется nginx.

Чтобы посмотреть, что произойдет, если попытаться запустить приложение, которое не включено как сервис, сразу после его установки, попробуйте использовать команду service:

sudo service nginx start

Сервис не будет запущен, а на экране появится сообщение:

Cannot 'start' nginx. Set nginx_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'.

Чтобы включить сервис, следуйте инструкциям этого сообщения и добавьте в /etc/rc.conf следующую строку:

nginx_enable="YES"

Можно либо открыть /etc/rc.conf в редакторе, либо использовать утилиту sysrc:

sudo sysrc nginx_enable=yes

Теперь nginx включен как сервис. Он запустится при загрузке системы; чтобы запустить его вручную, используйте команду:

sudo service nginx start

Чтобы запустить сервис только один раз, не включая его, используйте подкоманду onestart. В этом случае скрипт будет запущен сразу, но он не будет запускаться при загрузке системы.

sudo service nginx onestart

Субкоманда onestart полезна при тестировании настроек сервиса.

Просмотр информации о пакете при помощи pkg

Чтобы просмотреть информацию об установленных  пакетах, используйте команду pkg info.

pkg info имя_пакета

Это выведет на экран информацию о заданном пакете, включая описание ПО, опции, использованные при его компиляции, и список библиотек и зависимостей.

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

Чтобы получить последние доступные версии установленных ранее пакетов, используйте команду:

sudo pkg upgrade

Эта команда сравнит установленные пакеты с версиями в каталоге репозитория и выведет список пакетов, которые можно обновить.

Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
The following 2 packages will be affected (of 0 checked):
Installed packages to be UPGRADED:
python27: 2.7.8_6 -> 2.7.9
perl5: 5.18.4_10 -> 5.18.4_11
The process will require 2 MB more space.
23 MB to be downloaded.
Proceed with this action? [y/N]: y

Введите y, после чего пакеты, указанные в списке, будут обновлены.

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

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

sudo pkg delete имя_пакета

Можно также удалить сразу несколько пакетов, указав имена пакетов через пробел:

sudo pkg delete package1 package2 ...

Теперь попробуйте удалить пакет Nginx:

sudo pkg delete nginx

На экране появится сообщение и запрос на подтверждение:

Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
nginx-1.6.2_1,2
The operation will free 654 KB.
Proceed with deinstalling packages? [y/N]: y

После подтверждения указанный пакет будет удалён.

Удаление зависимостей

После удаления пакета в системе может остаться ряд ненужных зависимостей. Чтобы удалить пакеты, которые больше не нужны ни одному из оставшихся в системе пакетов, выполните следующую команду:

sudo pkg autoremove

На экране появится список пакетов, которые будут удалены, и запрос на подтверждение. Подтвердите удаление пакетов, введя y.

Поиск пакетов

Чтобы найти бинарный файл, доступный в репозитории, используйте команду pkg search.

Поиск по имени

Основной способ поиска нужного пакета – это поиск по имени пакета. Для этого используется команда:

pkg search имя_пакета

К примеру, чтобы найти пакет по имени nginx, нужно выполнить:

pkg search nginx

На экране появится список пакетов с именем nginx и номерами версий:

nginx-1.6.2_1,2
nginx-devel-1.7.8
p5-Nginx-ReadBody-0.07_1
p5-Nginx-Simple-0.07_1
p5-Test-Nginx-0.24

Чтобы получить подробную информацию о пакете, используйте флаг –f.

pkg search -f имя_пакета

Эта опция выведет на экран информацию обо всех найденных пакетах с таким именем.

Поиск по описанию

Если точное имя пакета вам неизвестно, можно использовать поиск по описанию пакета; для этого существует опция –D. по умолчанию, поисковой шаблон нечувствителен к регистру.

pkg search -D поисковой шаблон

К примеру, чтобы найти все пакеты, содержащие в описании java, используйте:

pkg search -D java

Это выведет на экран имена и информацию обо всех доступных пакетах с заданным описанием.

Примечание: Утилита pkg очень гибкая; конечно, данное руководство неспособно охватить все её функции. К счастью, существует простой способ получить более подробную информацию о работе pkg.

Чтобы получить список всех доступных опций pkg, используйте:

pkg help

Кроме того, можно ознакомиться с руководством по субкомандам pkg; для этого используйте команду pkg help в таком виде:

pkg help субкоманда

К примеру, чтобы получить подробности о команде search, введите:

pkg help search

На экране появится страница руководства по использованию pkg search.

Заключение

Теперь вы знакомы с основами использования менеджера пакетов pkg на сервере FreeBSD.