Администрирование пакетов и сервисов в FreeBSD / OpenBSD / NetBSD
08:50, 07.03.2024
FreeBSD, OpenBSD и NetBSD - операционные системы, представляющие собой альтернативу Linux в парадигме UNIX-подобных операционных систем. Они слишком часто используются в качестве серверных операционных систем, имея как свои преимущества, так и особенности. Сегодня мы, в частности, рассмотрим администрирование пакетов в этих трех ОС.
Знакомство с FreeBSD
Среди обозреваемых ОС наиболее популярной является FreeBSD. Ее ключевыми особенностями являются:
Портативность: Она доступна на архитектурах x86, ARM, AArch64, RISC-V, POWER и PowerPC.
Стабильность и надежность: FreeBSD часто хвалят за стабильность и надежность. Кроме того, система отлично подходит для работы в сети с помощью стека TCP/IP.
Virtualization Jails: Virtualization Jails - это легкие встроенные решения виртуализации для создания изолированных сред и повышения безопасности и управления ресурсами.
Коллекция портов: Коллекция портов - это мощный фреймворк для управления и установки сторонних приложений.
Файловая система ZFS: FreeBSD поддерживает файловую систему ZFS с такими функциями, как проверка целостности данных, поддержка больших объемов хранения, эффективное сжатие данных и надежные возможности создания моментальных снимков.
Безопасность: Помимо всего прочего, FreeBSD уделяет большое внимание безопасности, что выражается в активной работе команды безопасности, регулярных обновлениях безопасности и установке по умолчанию, в которой приоритет отдается безопасным конфигурациям.
Обзор OpenBSD
Еще одна многоплатформенная операционная система на базе UNIX и 4.4BSD, ориентированная на портативность, стандартизацию, точность, безопасность и интегрированную криптографию. OpenBSD находится в открытом доступе. Она разработана энтузиастами и использовалась в ряде успешных проектов.
Ключевые особенности NetBSD
NetBSD - это бесплатная ОС на базе UNIX с открытым исходным кодом. Ее особенности включают в себя:
Портативность: NetBSD очень портативна, поддерживается на платформах x86, ARM, MIPS, SPARC, PowerPC и других.
Кроссплатформенная совместимость: Система пакетов NetBSD отличается высокой переносимостью и кроссплатформенностью, что позволяет собирать и устанавливать пакеты программ на различные Unix-подобные операционные системы.
Поддержка современных технологий хранения данных: NetBSD поддерживает файловые системы ZFS, программное обеспечение RAIDframe, RAID-системы и шифрование дисков cgd.
Поддержка аппаратного обеспечения ARM: NetBSD имеет надежную поддержку архитектур ARM, что делает ее универсальной для использования на различных устройствах на базе ARM, от встраиваемых систем до одноплатных компьютеров и серверов на базе ARM.
Поддержка виртуализации Xen и NVMM: Эта поддержка виртуализации позволяет пользователям одновременно запускать несколько операционных систем на одном и том же оборудовании, причем каждая операционная система работает в своей изолированной виртуальной среде.
Поддержка современного оборудования x86: NetBSD предлагает сильную поддержку современного оборудования x86, включая совместимость с широким спектром процессоров, чипсетов и периферийных устройств, обычно встречающихся в современных компьютерных системах.
Администрирование пакетов и служб в FreeBSD, OpenBSD и NetBSD
1. Управление пакетами и службами во FreeBSD
Установка стороннего программного обеспечения во FreeBSD происходит с помощью двух технологий - FreeBSD Ports Collection и FreeBSD Package Manager.
FreeBSD Ports Collection представляет собой набор файлов, которые используются для автоматизации компиляции приложения из исходного кода. Этот набор файлов содержит информацию, необходимую для автоматической загрузки, извлечения, исправления, компиляции и установки приложения.
Кроме того, существует большое количество приложений, которые уже перенесены на FreeBSD и могут быть загружены в предварительно скомпилированном виде.
Что касается команд управления пакетами FreeBSD, то они используются для выполнения различных действий с пакетами. Такие манипуляции, как регистрация, добавление, удаление, обновление и многое другое, выполняются с помощью менеджера пакетов pkg.
Оба подхода умеют работать с зависимостями.
В случае если во время установки приложения не хватает какой-либо библиотеки, она будет добавлена автоматически.
Использование коллекции портов
Коллекция портов состоит из набора makefiles, то есть различных типов файлов, участвующих в компиляции и установке приложений на FreeBSD. Исходный каталог для коллекции портов - /usr/ports/.
В коллекции портов вы можете найти каталоги для каждой категории программного обеспечения, которые, в свою очередь, разбиты на подкаталоги с файлами, которые в основном представляют собой инструкции по компиляции и установке приложения, которые принято называть скелетом портов. Основными файлами и каталогами для скелета портов являются:
makefile: Содержит инструкции по компиляции и расположению компонентов для установки.
distinfo: Содержит имена и контрольные суммы файлов, которые должны быть загружены для сборки порта.
files/: Патчи, необходимые для компиляции и установки.
pkg-descr: Подробное описание программы.
pgk-plist: Список файлов для установки.
Процедуры установки и обновления портов
Коллекция портов FreeBSD - это система, используемая для управления и установки сторонних приложений на вашу систему FreeBSD. Давайте рассмотрим некоторые из ее основных команд.
- Обновление совокупности портов - необходимая операция, которую следует выполнить перед установкой или обновлением чего-либо:
sudo portsnap fetch update
- Переход в каталог Poer: Каждый пакет программного обеспечения имеет свой собственный каталог в Коллекции портов. Для установки различных программ вам может понадобиться перемещаться между каталогами. Например, если вы хотите установить веб-сервер Apache, вам нужно перейти в каталог Apache:
cd /usr/ports/www/apache24
- Просмотрите и настройте параметры: Во многих портах вы можете настроить программное обеспечение до его установки. С помощью команды "make config" вы можете открыть меню с доступными опциями:
- После того как все параметры настроены, вы можете скомпилировать и установить программу командой:
make install clean
- В системе портов FreeBSD зависимости обрабатываются автоматически. Это означает, что если устанавливаемое вами приложение зависит от других пакетов, система Ports позаботится о том, чтобы эти зависимости также были установлены.
- Обновление установленных портов: Для обновления уже установленного порта необходимо перейти в его каталог и выполнить команду make upgrade:
cd /usr/ports/www/apache24
make upgrade
Таким образом вы получите последний исходный код, перекомпилируете программу и обновите ее до последней версии.
- Чтобы удалить порт, используйте команду make deinstall:
make deinstall
Хотя программное обеспечение будет удалено, зависимости останутся.
- Если вам нужно найти один конкретный порт, воспользуйтесь командой make search:
make search keyword=nginx
Дополнительные инструменты: Кроме описанных выше, существует ряд дополнительных инструментов, используемых для управления портами, таких как portmaster, poudriere и другие.
Управление сервисами во FreeBSD
Давайте посмотрим, как управлять сервисами во FreeBSD.
Чтобы запустить веб-сервис Nginx во FreeBSD, необходимо изменить значение nginx_enable на YES в файле /etc/rc.conf:
nginx_enable="YES "
Затем выполните команду:
$ sudo /usr/local/etc/rc.d/nginx start
Или:
$ service nginx start
И наоборот, чтобы остановить службу веб-сервера Nginx:
$ sudo /usr/local/etc/rc.d/nginx stop
Или:
service nginx stop
Чтобы перезапустить службу веб-сервера Nginx:
$ sudo /usr/local/etc/rc.d/nginx restart
Или:
sudo service nginx restart
Чтобы проверить конфигурационный файл Nginx на наличие ошибок:
$ sudo nginx -c /usr/local/etc/nginx/nginx.conf -t
2. Управление пакетами и службами в NetBSD
Для управления и установки стороннего программного обеспечения в NetBSD используется фреймворк pkgsrc. Фреймворк можно использовать либо для установки пакетных инструментов, либо для использования уже готовых бинарных пакетов, либо для создания собственных пакетов, комбинируя их с пакетами сторонних разработчиков.
Установка бинарных пакетов с помощью pkgin
NetBSD по умолчанию содержит двоичные файлы для множества программных пакетов. Обычный способ их установки - с помощью pkgin в каталог /usr/pkg/ по умолчанию.
Если pkgin еще не установлен, вы можете сделать это самостоятельно:
sudo pkg_add pkgin
Обновление пакета:
sudo pkgin update && pkgin upgrade -y
Поиск пакета:
pkgin search <pkg_name>
Установка пакета:
pkgin install <pkg_name>
Установка и поиск веб-сервера Nginx:
$ sudo pkgin install nginx
$ pkgin search nginx
Список установленных пакетов:
$ pkgin list
Посмотреть доступные для pkgin:
$ pkgin help
Удаление пакета:
$ sudo pkgin remove nginx
Управление системными сервисами
В NetBSD запуск системы и управление сервисами осуществляется через систему rc(8), хранящуюся в /etc/rc.d.
В качестве примера рассмотрим, как установить и управлять Apache:
sudo pkgin install apache
Перезапуск:
$ sudo /etc/rc.d/httpd onerestart
В противном случае вы можете отредактировать /etc/rc.conf и включить httpd:
sudo vim /etc/rc.conf
##Enable httpd##
httpd=YES
Перезапустите:
$ sudo service httpd restart
Остановить:
$ sudo service httpd stop
Запустите httpd при запуске на порту 8080 отредактируйте файл, добавив:
$ sudo vim /etc/rc.conf
##Add this parameter##
httpd_flags='-I 8080'
Перезапустите.
3. Работа с пакетами и сервисами в OpenBSD
pkg_add - это менеджер пакетов OpenBSD, который используется, в частности, для установки сторонних приложений в бинарном формате.
Если sudo уже установлен, отредактируйте файл sudo так, чтобы в него были включены данные пользователя:
# pkg_add sudo
#visudo
Сначала обновите системные пакеты:
sudo pkg_add -u
Установка пакета:
sudo pkg_add <pkg_name>
Удаление пакета:
sudo pkg_delete <pkg_name>
Поиск установленного пакета:
pkg_info -Q <pkg_name>
Отображение информации о пакетах:
pkg_info <pkg_name>
Управление службами (системные Daemons)
Системные демоны (daemons) управляются с помощью скрипта rc(8) через rc.d(8). Большинство служб и демонов устанавливаются в OpenBSD через переменные из /etc/rc.conf.
Вместо модификации конфигурационного файла обычно удобнее использовать утилиту rcctl, чтобы не вносить в него изменения, которые могут помешать обновлению.
Чтобы установить Apache и управлять службами:
sudo pkg_add php
sudo pkg_add php-apache
sudo pkg_add php-mysqli
Включите Apache:
sudo rcctl enable apache2
Запуск службы Apache:
sudo rcctl start apache2
apache2(ok)
Проверка состояния Apache2:
rcctl check apache2
apache2(ok)
Остановка службы Apache2:
$ sudo rcctl stop apache2
apache2(ok)
Заключение
Это был обзор управления пакетами и сервисами FreeBSD, OpenBSD и NetBSD. Надеемся, что мы рассмотрели все основные моменты, и теперь вы будете более уверены в себе при знакомстве с этими операционными системами. Удачи!