pkg — Утилита управления пакетами во FreeBSD

Задача:
---------------------------------------------------------------Разобраться на примерах, как можно использовать утилиту pkg
На только что установленной системе, при первом запуске утилиты pkg, система попросит её скачать и установить. Нажимаем «y» и устанавливаем.

После этого необходимо обновить репозиторий
pkg update

После этого можно полноценно пользоваться утилитой. Первая и наверно самая главная команды — это поиск необходимого софта. Для этого можно воспользоваться соответствующей командой.
Поиск пакетов
pkg search имя_пакета
К примеру, чтобы найти пакет nginx, нужно выполнить:
pkg search nginx
На экране увидите список пакетов с именем nginx и номерами версий:

Чтобы получить подробную информацию о пакете, используем флаг –f.
pkg search -f имя_пакета
К примеру, выводим информацию о nxinx. Тут видно что вводит в собранный пакет, и при отсутствии необходимого, вам лучше самостоятельно собрать пакет
root@nc:/ # pkg search -f nginx-1.16.0_1,2
nginx-1.16.0_1,2
Name : nginx
Version : 1.16.0_1,2
Origin : www/nginx
Architecture : FreeBSD:12:amd64
Prefix : /usr/local
Repository : FreeBSD [pkg+http://pkg.FreeBSD.org/FreeBSD:12:amd64/quarterly]
Categories : ipv6 www
Licenses : BSD2CLAUSE
Maintainer : joneum@FreeBSD.org
WWW : https://nginx.org/
Comment : Robust and small WWW server
Options :
AJP : off
ARRAYVAR : off
AWS_AUTH : off
BROTLI : off
CACHE_PURGE : off
CLOJURE : off
CT : off
DEBUG : off
DEBUGLOG : off
DEVEL_KIT : off
DRIZZLE : off
DSO : on
DYNAMIC_UPSTREAM: off
ECHO : off
ENCRYPTSESSION : off
FASTDFS : off
FILE_AIO : on
FORMINPUT : off
GOOGLE_PERFTOOLS: off
GRIDFS : off
GSSAPI_BASE : off
GSSAPI_HEIMDAL : off
GSSAPI_MIT : off
HEADERS_MORE : off
HTTP : on
HTTPV2 : on
HTTP_ACCEPT_LANGUAGE: off
HTTP_ADDITION : on
HTTP_AUTH_DIGEST: off
HTTP_AUTH_KRB5 : off
HTTP_AUTH_LDAP : off
HTTP_AUTH_PAM : off
HTTP_AUTH_REQ : on
HTTP_CACHE : on
HTTP_DAV : on
HTTP_DAV_EXT : off
HTTP_EVAL : off
HTTP_FANCYINDEX: off
HTTP_FLV : on
HTTP_FOOTER : off
HTTP_GEOIP2 : off
HTTP_GUNZIP_FILTER: on
HTTP_GZIP_STATIC: on
HTTP_IMAGE_FILTER: off
HTTP_JSON_STATUS: off
HTTP_MOGILEFS : off
HTTP_MP4 : on
HTTP_MP4_H264 : off
HTTP_NOTICE : off
HTTP_PERL : off
HTTP_PUSH : off
HTTP_PUSH_STREAM: off
HTTP_RANDOM_INDEX: on
HTTP_REALIP : on
HTTP_REDIS : off
HTTP_RESPONSE : off
HTTP_REWRITE : on
HTTP_SECURE_LINK: on
HTTP_SLICE : on
HTTP_SSL : on
HTTP_STATUS : on
HTTP_SUB : on
HTTP_SUBS_FILTER: off
HTTP_TARANTOOL : off
HTTP_UPLOAD : off
HTTP_UPLOAD_PROGRESS: off
HTTP_UPSTREAM_CHECK: off
HTTP_UPSTREAM_FAIR: off
HTTP_UPSTREAM_STICKY: off
HTTP_VIDEO_THUMBEXTRACTOR: off
HTTP_XSLT : off
HTTP_ZIP : off
ICONV : off
IPV6 : on
LET : off
LUA : off
MAIL : on
MAIL_IMAP : off
MAIL_POP3 : off
MAIL_SMTP : off
MAIL_SSL : on
MEMC : off
MODSECURITY : off
MODSECURITY3 : off
NAXSI : off
NJS : off
PASSENGER : off
POSTGRES : off
RDS_CSV : off
RDS_JSON : off
REDIS2 : off
RTMP : off
SET_MISC : off
SFLOW : off
SHIBBOLETH : off
SLOWFS_CACHE : off
SMALL_LIGHT : off
SRCACHE : off
STREAM : on
STREAM_SSL : on
STREAM_SSL_PREREAD: on
THREADS : on
VOD : off
VTS : off
WEBSOCKIFY : off
WWW : on
XSS : off
Shared Libs required:
libpcre.so.1
Annotations :
FreeBSD_version: 1200086
cpe : cpe:2.3:a:nginx:nginx:1.16.0:::::freebsd12:x64:1
Flat size : 1.36MiB
Pkg size : 443KiB
Description :
NGINX is a high performance edge web server with the lowest memory footprint
and the key features to build modern and efficient web infrastructure.
NGINX functionality includes HTTP server, HTTP and mail reverse proxy, caching,
load balancing, compression, request throttling, connection multiplexing and
reuse, SSL offload and HTTP media streaming.
WWW: https://nginx.org/
WWW: https://nginx.com/
Поиск по описанию
Если вы не знаете название пакета или хотя бы его часть, то есть возможность найти пакет по описанию. К примеру, чтобы найти все пакеты, содержащие в описании proxy, используйте:
pkg search -D proxy
Справка по командам
Чтобы получить список всех доступных опций pkg, используйте:
pkg help
К примеру, чтобы получить подробности о команде search, вводим:
pkg help search
После того как необходимый пакет был найден, переходим к его установке.
Установка пакетов
Так как нам уже известно имя пакета, который нужно установить, используем команду:
pkg install имя_пакета
Можно сразу установить несколько пакетов, разделив их только при помощи пробела:
pkg install package1 package2
Для примера установим mc
root@nc:/ # pkg install mc
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 24 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
mc: 4.8.22_1
libXext: 1.3.4,1
libXau: 1.0.9
libX11: 1.6.8,1
libxcb: 1.13.1
libXdmcp: 1.1.3
xorgproto: 2019.1
libxml2: 2.9.9
libpthread-stubs: 0.4
diffutils: 3.7
indexinfo: 0.3.1
libsigsegv: 2.12
gettext-runtime: 0.20.1
libssh2: 1.8.2,3
python27: 2.7.16_1
readline: 8.0.0
libffi: 3.2.1_3
perl5: 5.28.2
libslang2: 2.3.2_1
png: 1.6.37
pcre: 8.43_1
glib: 2.56.3_5,1
python36: 3.6.9
libiconv: 1.14_11
Number of packages to be installed: 24
The process will require 301 MiB more space.
53 MiB to be downloaded.
Proceed with this action? [y/N]:
Для продолжения установки, подтверждаем , нажав «Y» и «ENTER». После этого перечисленные на экране пакеты будут загружены и установлены. Некоторые предоставят важную после установочную информацию или инструкции, которые обязательно необходимо выполнить. В нашем случае с midnight commander инструкций не будет, поэтому выполняем команду ‘mc’ и запускаем файловый менеджер

Если в оболочке tcsh или csh, с запуском возникнет проблема, необходимо восстановить список бинарных пакетов в PATH при помощи команды
rehash
Также важно помнить, если вы устанавливаете приложения, которые работают как сервисы, то необходимо дополнительно конфигурировать, например добавить в автоагрузку.
Запуск сервисов
Во FreeBSD, установленные через пакеты сервисы, предоставляют скрипт инициализации , которые можно найти в /usr/local/etc/rc.d
Для примера, запустим nginx
service nginx start
Сервис не будет запущен, а на экране появится сообщение:
Cannot 'start' nginx. Set nginx_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'.
Чтобы включить сервис в автозагрузку, необходимо добавить строку в /etc/rc.conf . Это можно сделать двумя способами:
echo 'apache24_enable="YES"' >> /etc/rc.conf
и второй способ
sysrc nginx_enable=yes
Теперь nginx запустится при загрузке системы, но при необходимости, можно запустить вручную:
service nginx start
Если есть необходимость запустить сервис без добавления в автозагрузку, можно воспользоваться onestart. В этом случае скрипт будет запущен сразу, без последующего автоматического запуска при загрузке системы.
service nginx onestart
Информации о пакете
Чтобы просмотреть информацию об установленном пакете
pkg info имя_пакета
Команда выведет информацию о пакете, описание, опции, использованные при его компиляции, и список библиотек и зависимостей.
Обновление пакета
Чтобы получить последние доступные версии установленных ранее пакетов, используйте команду:
pkg upgrade
Удаление пакета
pkg delete имя_пакета
Удаление зависимостей
После удаления пакета в системе могут остаться ненужные зависимости. Чтобы удалить пакеты, которые больше не нужны ни одному из оставшихся в системе пакетов, выполните следующую команду:
pkg autoremove
К какому пакету относится файл
root@nc:/ # pkg which /usr/local/bin/mc /usr/local/bin/mc was installed by package mc-4.8.22_1 root@nc:/ #
Полный список файлов в пакете:
pkg info -l имя_пакета
Загружаем базу известных уязвимостей:
proot@nc:/ # pkg audit -F Fetching vuln.xml.bz2: 100% 798 KiB 817.1kB/s 00:01 0 problem(s) in 0 installed package(s) found. root@nc:/ #
Проверяем установленные пакеты на предмет наличия известных уязвимостей, с ссылками на подробные отчеты:
pkg audit
Проверяем все установленные пакеты на предмет валидности контрольных сумм входящих в пакеты файлов:
root@nc:/ # pkg check -s -a Checking all packages: 100% root@nc:/ #
Проверяем все установленные пакеты на предмет отсутствия требуемых зависимостей:
pkg check -d -a
Удаляем из кэша старые пакеты:
pkg clean
Смотрим статистику:
root@nc:/ # pkg stats
Local package database:
Installed packages: 29
Disk space occupied: 317 MiB
Remote package database(s):
Number of repositories: 1
Packages available: 31753
Unique packages: 31753
Total size of packages: 82 GiB
root@nc:/ #
Запрещаем обновление конкретного пакета:
pkg lock имя_пакета
Разрешаем обновление конкретного пакета:
pkg unlock имя_пакета
Посмотреть список «залоченых» пакетов:
pkg lock -l
Откатиться к более старой версии пакета:
pkg remove mc pkg install /var/cache/pkg/mc-4.8.22_1-bbc5fee4ff.txz

1 комментарий
[…] Основная цель, найти решение ошибки возникающей в процессе установки. Устанавливать vnStat будем при помощи менеджера пакетов pkg. Я уже частично касался его в статье: “pkg – Утилита управления пакетами во FreeBSD“ […]