Заметки о FreeBSD — работаем с пакетами

Статья последний раз была обновлена 26.07.2023

Рассмотрим работу с пакетами во FreeBSD. Для начала определимся, что из себя представляет пакет. Пакет это всего лишь архив, в котором содержатся компоненты программы. То есть файлы необходимые для запуска и работы программы. В корне архива лежат системные файлы описывающие пакет, а в директориях лежат компоненты программы, такие как исполняемые файлы, документация, библиотеки и т. д. Пакет содержит готовую к установке и использованию программу. Вы наверняка знаете, что в UNIX-подобных системах неn системного реестра, как в Windows, а установка софта по сути представляет из себя:

  1. распаковку архива,
  2. «правильное» (заданное разработчиком) расположение всех файлов приложения по системным каталогам,
  3. разрешение зависимостей пакетов (одним программам нужны другие программы для своего функционирования и эти нужды часто пересекаются, что необходимо регулировать).

Во FreeBSD можно использовать как бинарные пакеты, так и собранные из исходных кодов при помощи портов. Мы будем рассматривать бинарные пакеты. Устройство портов за последнее время никак не изменилось, а вот на смену утилитам для управления бинарными пакетами (pkg_add, pkg_info и пр.) в последних версиях FreeBSD (с версии 9.1) пришел новый пакетный менеджер — pkg, теперь нужно рассматривать только его команды.

Предупреждаю, это инструкция для самых маленьких!

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

Сперва необходимо установить сам pkg! Для этого просто вводим pkg и система сама предложит нам его установить.

установка pkg

Теперь необходимо обновить базу с информацией о доступных пакетах:

pkg update

В принципе, эта процедура будет происходить при каждой установки нового пакета, но после такой команды просто будет отрабатывать мгновенно.

Чтобы установить пакет из интернета, используется команда pkg install. Допустим мы хотим установить командный процессор bash, тогда нам следует выполнить следующую команду:

pkg install bash

Мы видим сообщение о зависимостях пакета.

установка bash

Возникает вопрос, почему мы выбирали установку bash, а вместе с ним установятся еще gettext-runtime, indexinfo и readline? Дело в том, что для работы bash требуются эти 3 утилиты, это и есть его зависимости.

Средства управления пакетами в FreeBSD обладают механизмом разрешения зависимостей, и при установки какого-либо пакета автоматически установятся и те пакеты, которые необходимы для его работы.

Получение информации об установленных пакетах во FreeBSD

Для того чтобы посмотреть какие пакеты установлены в системе используем команду:

pkg info

После выполнения которой на экран будет выведен весь список пакетов, установленных на данный момент в системе.

вывод команды pkg info

Если же мы выполним:

pkg info -D bash

Увидим информацио об установленном пакете, его версию.

Деинсталяция пакетов из системы FreeBSD

Эта процедура выполняется простой командой pkg delete. Удалим пакет bash:

pkg delete bash

Пакет будет удален, но его зависимости остались в системе. Конечно, мы можем удалить все эти пакеты по памяти, но со временем у нас будут появляться созависимости (перекрестные зависимости), и таким действием мы можем навредить системе. Поэтому правильнее использовать команду pkg autoremove, которая удалит неиспользуемые пакеты. Введем:

pkg autoremove

Нам будет предложено удалить как раз те пакеты, которые остались после деинсталляции bash.

вывод команды pkg autoremove

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

Приведенных выше примеров достаточно для управления ПО, установленного в системе, но основной недостаток работы с пакетами заключается в том, что те пакеты которые находятся на официальном сервере ftp.freebsd.org (и его многочисленных зеркалах), как правило, очень быстро устаревают. Команда pkg upgrade поможет обновить установленные в системе пакеты:

pkg upgrade

Такая система управления пакетами очень напоминает Linux, есть и свои уникальные фичи, вроде проверки пакетов на уязвимости. В целом неплохая попытка (одна из) воскреснуть для фряхи, но консоли по прежнему не хватает «человечности», различных подсказок, предположений, что на самом деле имел в виду оператор.

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

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