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“ […]