Оглавление:
Статья последний раз была обновлена 19.12.2024
Рассмотрим работу с пакетами во FreeBSD. Для начала определимся, что из себя представляет пакет. Пакет это всего лишь архив, в котором содержатся компоненты программы. То есть файлы необходимые для запуска и работы программы. В корне архива лежат системные файлы описывающие пакет, а в директориях лежат компоненты программы, такие как исполняемые файлы, документация, библиотеки и т. д. Пакет содержит готовую к установке и использованию программу. Вы наверняка знаете, что в UNIX-подобных системах неn системного реестра, как в Windows, а установка софта по сути представляет из себя:
- распаковку архива,
- «правильное» (заданное разработчиком) расположение всех файлов приложения по системным каталогам,
- разрешение зависимостей пакетов (одним программам нужны другие программы для своего функционирования и эти нужды часто пересекаются, что необходимо регулировать).
Во FreeBSD можно использовать как бинарные пакеты, так и собранные из исходных кодов при помощи портов. Мы будем рассматривать бинарные пакеты. Устройство портов за последнее время никак не изменилось, а вот на смену утилитам для управления бинарными пакетами (pkg_add, pkg_info и пр.) в последних версиях FreeBSD (с версии 9.1) пришел новый пакетный менеджер — pkg, теперь нужно рассматривать только его команды.
Все примеры я выполняю из под суперпользователя (root), поэтому команда sudo не применяется. Предупреждаю, это инструкция для самых маленьких!
Установка пакетов во FreeBSD
Сперва необходимо установить сам pkg! Для этого просто вводим pkg и система сама предложит нам его установить.
Теперь необходимо обновить базу с информацией о доступных пакетах:
pkg update
В принципе, эта процедура будет происходить при каждой установки нового пакета, но после такой команды просто будет отрабатывать мгновенно.
Чтобы установить пакет из интернета, используется команда pkg install. Допустим мы хотим установить командный процессор bash, тогда нам следует выполнить следующую команду:
pkg install bash
Мы видим сообщение о зависимостях пакета.
Возникает вопрос, почему мы выбирали установку bash, а вместе с ним установятся еще gettext-runtime, indexinfo и readline? Дело в том, что для работы bash требуются эти 3 утилиты, это и есть его зависимости.
Средства управления пакетами в FreeBSD обладают механизмом разрешения зависимостей, и при установки какого-либо пакета автоматически установятся и те пакеты, которые необходимы для его работы.
Получение информации об установленных пакетах во FreeBSD
Для того чтобы посмотреть какие пакеты установлены в системе используем команду:
pkg info
После выполнения которой на экран будет выведен весь список пакетов, установленных на данный момент в системе.
Если же мы выполним:
pkg info -D bash
Увидим информацио об установленном пакете, его версию.
Деинсталяция пакетов из системы FreeBSD
Эта процедура выполняется простой командой pkg delete. Удалим пакет bash:
pkg delete bash
Пакет будет удален, но его зависимости остались в системе. Конечно, мы можем удалить все эти пакеты по памяти, но со временем у нас будут появляться созависимости (перекрестные зависимости), и таким действием мы можем навредить системе. Поэтому правильнее использовать команду pkg autoremove, которая удалит неиспользуемые пакеты. Введем:
pkg autoremove
Нам будет предложено удалить как раз те пакеты, которые остались после деинсталляции bash.
Обновление установленных пакетов в системе FreeBSD
Приведенных выше примеров достаточно для управления ПО, установленного в системе, но основной недостаток работы с пакетами заключается в том, что те пакеты которые находятся на официальном сервере ftp.freebsd.org (и его многочисленных зеркалах), как правило, очень быстро устаревают. Команда pkg upgrade поможет обновить установленные в системе пакеты:
pkg upgrade
Такая система управления пакетами очень напоминает Linux, есть и свои уникальные фичи, вроде проверки пакетов на уязвимости. В целом неплохая попытка (одна из) воскреснуть для фряхи, но консоли по прежнему не хватает «человечности», различных подсказок, предположений, что на самом деле имел в виду оператор.
- Поднимаем веб-сервер на Ubuntu - 16.09.2024
- Переадресация домена на другой домен - 08.08.2023
- Как установить и удалить GNOME? - 31.07.2023