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

Print Friendly, PDF & Email

Задача:

Разобраться на примерах, как можно использовать утилиту 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

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *