Адміністрування пакетів та служб у FreeBSD / OpenBSD / NetBSD
09:12, 07.03.2024
FreeBSD, OpenBSD і NetBSD - операційні системи, які є альтернативою Linux у парадигмі UNIX-подібних операційних систем. Вони дуже часто використовуються як серверні операційні системи, маючи як свої переваги, так і особливості. Сьогодні ми, зокрема, розглянемо адміністрування пакетів у цих трьох ОС.
Особливості FreeBSD
Ключові особливості FreeBSD такі:
Портативність: Доступна на архітектурах x86, ARM, AArch64, RISC-V, POWER та PowerPC.
Стабільність та надійність: FreeBSD часто хвалять за стабільність та надійність. Крім того, система дуже добре підходить для роботи в мережі зі стеком TCP/IP.
Jails віртуалізація: 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 та Менеджера пакетів FreeBSD.
FreeBSD Ports Collection являє собою набір файлів, які використовуються для автоматизації компіляції програми з вихідного коду. Цей набір файлів містить інформацію, необхідну для автоматичного завантаження, розпакування, виправлення, компіляції та встановлення програми.
Крім того, існує велика кількість програм, які вже перенесено на FreeBSD і які можна завантажити у попередньо скомпільованому вигляді.
Що стосується команд керування пакетами FreeBSD, то вони використовуються для виконання різноманітних дій з пакетами. Такі маніпуляції, як реєстрація, додавання, вилучення, оновлення тощо виконуються за допомогою менеджера пакетів pkg.
Обидва підходи вміють працювати з залежностями.
Якщо під час встановлення програми буде пропущено якусь бібліотеку, її буде додано автоматично.
Використання колекції портів
Колекція портів складається з набору makefiles, тобто різних типів файлів, які беруть участь у компіляції та встановленні програми у FreeBSD. Оригінальним каталогом для колекції портів є /usr/ports/.
У колекції портів ви можете знайти каталоги для кожної категорії програмного забезпечення, які, у свою чергу, розбито на підкаталоги, з файлами, які, по суті, є інструкціями з компіляції та встановлення програми, які зазвичай називають скелетом портів. Основними файлами та каталогами для скелету портів є
makefile: Містить інструкції щодо компіляції та розташування компонентів, які потрібно встановити.
distinfo: Містить назви та контрольні сукупності файлів, які слід завантажити для збірки порту.
files/: Патчі, необхідні для компіляції та встановлення.
pkg-descr: Детальний опис програми.
pkg-plist: Список файлів для встановлення.
Процедури встановлення та оновлення портів
Збірник портів FreeBSD - це система, призначена для керування та встановлення програм сторонніх розробників у вашій системі FreeBSD. Давайте розглянемо деякі з її основних команд.
- Оновлення портів, необхідна операція, яку слід виконати перед встановленням або оновленням будь-чого:
sudo portsnap fetch update
- Перехід до каталогу портів: Кожен програмний пакет має власний каталог у колекції портів. Вам може знадобитися переміщатися між каталогами для встановлення різноманітного програмного забезпечення. Наприклад, якщо ви хочете встановити веб-сервер Apache, вам потрібно перейти до каталогу Apache:
cd /usr/ports/www/apache24
- Перегляд і налаштування параметрів: У багатьох портах ви можете налаштувати програмне забезпечення перед його встановленням. За допомогою команди "make config" ви можете відкрити меню з доступними опціями.
- Після того, як всі опції налаштовані, ви можете скомпілювати і встановити програмне забезпечення за допомогою команди:
make install clean
- У системі FreeBSD перенесення залежностей обробляється автоматично. Це означає, що якщо програма, яку ви встановлюєте, залежить від інших пакетів, система портів подбає про встановлення цих залежностей.
- Оновлення встановлених портів: Щоб оновити вже встановлений порт, вам слід перейти до його каталогу і виконати команду 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
<H4> Керування системними службами
У 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
##Увімкнути httpd##
httpd=YES
Перезавантажуємо:
$ sudo service httpd restart
Зупинити:
$ sudo service httpd stop
Запустіть httpd при запуску на порт 8080, відредагуйте файл додавання:
$ sudo vim /etc/rc.conf
##Додайте цей параметр##
httpd_flags='-I 8080'
Перезапустіть.
3 Керування пакетами та службами у OpenBSD
pkg_add - це менеджер пакетів OpenBSD, який використовується, зокрема, для встановлення сторонніх програм у двійковому форматі.
Якщо sudo вже встановлено, відредагуйте файл sudo так, щоб до нього було включено дані користувача:
# pkg_add sudo
#visudo
Спочатку оновіть системні пакети:
sudo pkg_add -u
Встановлення пакета:
sudo pkg_add <ім'я_пакета>
Видалення пакета:
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. Сподіваємось, що ми розглянули всі необхідні елементи і тепер ви будете більш впевнено почувати себе при знайомстві з цими операційними системами. Бажаємо успіхів!