Verwaltung von Paketen und Diensten in FreeBSD / OpenBSD / NetBSD
13:14, 06.03.2024
FreeBSD, OpenBSD und NetBSD sind Betriebssysteme, die eine Alternative zu Linux im Paradigma der UNIX-ähnlichen Betriebssysteme darstellen. Auch sie werden häufig als Serverbetriebssysteme eingesetzt und haben sowohl ihre Vorteile als auch ihre Besonderheiten. Heute werden wir insbesondere die Paketverwaltung in diesen drei Betriebssystemen untersuchen.
Erforschung von FreeBSD
Unter den Protagonisten dieses Artikels ist FreeBSD das beliebteste System. Seine wichtigsten Eigenschaften sind:
Portabilität: Es ist auf x86, ARM, AArch64, RISC-V, POWER und PowerPC Architekturen verfügbar.
Stabilität und Zuverlässigkeit: FreeBSD wird oft für seine Stabilität und Zuverlässigkeit gelobt. Außerdem ist das System sehr gut für die Vernetzung mit dem TCP/IP-Stack geeignet.
Virtualisierungs-Jails: Virtualisierungs-Jails sind leichtgewichtige, integrierte Virtualisierungslösungen zur Schaffung isolierter Umgebungen und zur Verbesserung der Sicherheit und des Ressourcenmanagements.
Ports-Sammlung: Die Ports-Sammlung ist ein leistungsfähiges Framework für die Verwaltung und Installation von Drittanbieter-Anwendungen.
ZFS-Dateisystem: FreeBSD unterstützt das ZFS-Dateisystem mit Funktionen wie Datenintegritätsprüfung, Unterstützung für große Speicherkapazitäten, effiziente Datenkompression und robuste Snapshot-Funktionen.
Sicherheit: Unter anderem hat FreeBSD einen Schwerpunkt auf Sicherheit, was sich in einem proaktiven Sicherheitsteam, regelmäßigen Sicherheitsupdates und einer Standardinstallation, die sichere Konfigurationen bevorzugt, ausdrückt.
Überblick über OpenBSD
Ein weiteres 4.4BSD-basiertes UNIX-ähnliches Multiplattform-Betriebssystem mit dem Schwerpunkt auf Portabilität, Standardisierung, Korrektheit, Sicherheit und integrierter Kryptographie. OpenBSD ist frei verfügbar. Es wird von Enthusiasten entwickelt und wurde für eine Reihe erfolgreicher Projekte verwendet.
Hauptmerkmale von NetBSD
NetBSD ist ein freies und quelloffenes UNIX-ähnliches Betriebssystem. Seine Eigenschaften umfassen:
Portabilität: NetBSD ist hochgradig portabel und wird auf x86, ARM, MIPS, SPARC, PowerPC und mehr unterstützt.
Plattformübergreifende Kompatibilität: Das Paketsystem von NetBSD ist hochgradig portabel und plattformübergreifend, so dass Sie Softwarepakete auf verschiedenen Unix-ähnlichen Betriebssystemen erstellen und installieren können.
Unterstützung moderner Speichertechnologien: NetBSD unterstützt ZFS-Dateisysteme, RAIDframe-Software, RAID-Systeme und cgd-Plattenverschlüsselung.
ARM-Hardware-Unterstützung: NetBSD verfügt über eine solide Unterstützung für ARM-Architekturen, wodurch es vielseitig auf einer Vielzahl von ARM-basierten Geräten eingesetzt werden kann, von eingebetteten Systemen bis hin zu Einplatinencomputern und ARM-basierten Servern.
Xen- und NVMM-Virtualisierungsunterstützung: Diese Virtualisierungsunterstützung ermöglicht es Benutzern, mehrere Betriebssysteme gleichzeitig auf derselben Hardware auszuführen, wobei jedes Betriebssystem in seiner eigenen isolierten virtuellen Umgebung läuft.
Unterstützung für moderne x86-Hardware: NetBSD bietet eine starke Unterstützung für moderne x86-Hardware, einschließlich der Kompatibilität mit einer breiten Palette von Prozessoren, Chipsätzen und Peripheriegeräten, die in modernen PC-Systemen üblich sind.
Verwaltung von Paketen und Diensten in FreeBSD, OpenBSD und NetBSD
1. Verwaltung von Paketen und Diensten in FreeBSD
Die Installation von Software von Drittanbietern in FreeBSD erfolgt mit Hilfe von zwei Technologien - FreeBSD Ports Collection und FreeBSD Package Manager.
Die FreeBSD Ports Collection enthält eine Reihe von Dateien, die für die automatische Kompilierung einer Anwendung aus dem Quellcode verwendet werden. Dieser Satz von Dateien enthält die notwendigen Informationen für das automatische Herunterladen, Extrahieren, Patchen, Kompilieren und Installieren einer Anwendung.
Außerdem gibt es eine große Anzahl von Anwendungen, die bereits auf FreeBSD portiert sind und in vorkompilierter Form heruntergeladen werden können.
Die Befehle der FreeBSD-Paketverwaltung werden verwendet, um eine Vielzahl von Aktivitäten mit Paketen durchzuführen. Solche Manipulationen wie Registrieren, Hinzufügen, Entfernen, Aktualisieren und mehr werden mit Hilfe des pkg-Paketmanagers durchgeführt.
Beide Ansätze wissen, wie man mit Abhängigkeiten umgeht.
Falls eine Bibliothek fehlt, während eine App installiert wird, wird diese automatisch hinzugefügt.
Verwendung der Ports Collection
Die Ports Collection besteht aus einer Reihe von makefiles, das sind verschiedene Arten von Dateien, die an der Kompilierung und Installation einer Anwendung unter FreeBSD beteiligt sind. Das ursprüngliche Verzeichnis für die Ports-Sammlung ist /usr/ports/.
In der Ports Collection finden Sie Verzeichnisse für jede Software-Kategorie, die wiederum in Unterverzeichnisse unterteilt sind, mit Dateien, die im Grunde genommen Anweisungen zur Kompilierung und Installation einer Anwendung sind, die gemeinhin als Ports-Skelett bezeichnet werden. Die grundlegenden Dateien und Verzeichnisse für ein Ports-Skelett sind:
makefile: Enthält Anweisungen für die Kompilierung und den Ort der zu installierenden Komponenten.
distinfo: Enthält Namen und Prüfsummen von Dateien, die für die Erstellung des Ports heruntergeladen werden sollen.
files/: Patches, die für die Kompilierung und Installation benötigt werden.
pkg-descr: Eine detaillierte Programmbeschreibung.
pgk-plist: Die Liste der zu installierenden Dateien.
Verfahren zur Installation von Ports und Upgrades
Die FreeBSD-Port-Sammlung ist ein System zur Verwaltung und Installation von Anwendungen von Drittanbietern auf Ihrem FreeBSD-System. Sehen wir uns einige der grundlegenden Befehle an.
- Aktualisieren des Ports-Baums, ein notwendiger Vorgang, der vor der Installation oder Aktualisierung von irgendetwas durchgeführt werden muss:
sudo portsnap fetch update
- Zum Ports-Verzeichnis navigieren: Jedes Softwarepaket hat sein eigenes Verzeichnis in der Ports-Sammlung. Für die Installation verschiedener Software müssen Sie möglicherweise zwischen den Verzeichnissen wechseln. Wenn Sie zum Beispiel den Apache-Webserver installieren möchten, müssen Sie in das Apache-Verzeichnis wechseln:
cd /usr/ports/www/apache24
- Überprüfen und Anpassen der Optionen: In vielen Ports können Sie die Software anpassen, bevor Sie sie installieren. Mit dem Befehl "make config" können Sie ein Menü mit den verfügbaren Optionen öffnen:
- Nachdem alle Optionen konfiguriert wurden, können Sie die Software mit dem Befehl kompilieren und installieren:
make install clean
- Im FreeBSD Ports-System werden Abhängigkeiten automatisch verwaltet. Das heißt, wenn die Anwendung, die Sie installieren, auf andere Pakete angewiesen ist, sorgt das Ports-System dafür, dass diese Abhängigkeiten ebenfalls installiert werden.
- Aktualisieren von installierten Ports: Um einen bereits installierten Port zu aktualisieren, sollten Sie zu seinem Verzeichnis navigieren und den Befehl make upgrade ausführen:
cd /usr/ports/www/apache24
make upgrade
Auf diese Weise holen Sie sich den neuesten Quellcode, kompilieren die Software neu und aktualisieren sie auf die neueste Version.
- Um einen Port zu entfernen, sollten Sie den make deinstall Befehl verwenden:
make deinstall
Während die Software deinstalliert wird, bleiben die Abhängigkeiten bestehen.
- Wenn Sie einen bestimmten Port finden müssen, verwenden Sie den make search Befehl:
make search keyword=nginx
- Zusätzliche Tools: Neben den oben beschriebenen gibt es eine Reihe von zusätzlichen Werkzeugen für die Verwaltung von Ports, wie portmaster, poudriere, und andere.
Dienstverwaltung in FreeBSD
Schauen wir uns an, wie man Dienste unter FreeBSD verwaltet.
Um den Nginx Web Service unter FreeBSD zu starten, müssen Sie nginx_enable in der Datei /etc/rc.conf auf YES ändern:
nginx_enable="YES"
Führen Sie dann den Befehl aus:
$ sudo /usr/local/etc/rc.d/nginx start
oder:
$ service nginx start
Umgekehrt kann der Webserver-Dienst Nginx gestoppt werden:
$ sudo /usr/local/etc/rc.d/nginx stop
oder:
service nginx stop
So starten Sie den Nginx-Webserverdienst neu:
$ sudo /usr/local/etc/rc.d/nginx restart
oder:
sudo service nginx restart
So überprüfen Sie die Nginx-Konfigurationsdatei auf Fehler:
$ sudo nginx -c /usr/local/etc/nginx/nginx.conf -t
2. Verwaltung von Paketen und Diensten in NetBSD
Um Software von Drittanbietern in NetBSD zu verwalten und zu installieren, wird das pkgsrc Framework verwendet. Das Framework kann entweder verwendet werden, um Paketwerkzeuge zu installieren oder um vorgefertigte Binärpakete zu verwenden, oder um eigene Pakete zu erstellen, indem man sie mit Paketen von Drittanbietern kombiniert.
Installation von Binärpaketen mit pkgin
NetBSD enthält standardmäßig Binärdateien für eine Vielzahl von Softwarepaketen. Ein üblicher Weg, diese zu installieren, ist mit pkgin im Standardverzeichnis /usr/pkg/.
Falls pkgin noch nicht installiert ist, können Sie es auch selbst tun:
sudo pkg_add pkgin
Paket aktualisieren:
sudo pkgin update && pkgin upgrade -y
Suchen Sie nach einem Paket:
pkgin search <pkg_name
Paket-Installation:
pkgin install <pkg_name
Installation und Suche nach dem Webserver Nginx:
$ sudo pkgin install nginx
$ pkgin search nginx
Die Liste der installierten Pakete:
$ pkgin list
Um zu sehen, was für pkgin verfügbar ist:
$ pkgin help
Entfernen eines Pakets:
$ sudo pkgin remove nginx
Verwaltung von Systemdiensten
In NetBSD werden der Systemstart und die Verwaltung der Dienste durch das rc(8)-System durchgeführt, das in /etc/rc.d gespeichert ist.
Schauen wir uns als Beispiel an, wie man Apache installiert und verwaltet:
sudo pkgin install apache
Neu starten:
$ sudo /etc/rc.d/httpd onerestart
Ansonsten kann man /etc/rc.conf bearbeiten und httpd aktivieren:
sudo vim /etc/rc.conf
##httpd aktivieren
httpd=YES
Neu starten:
$ sudo service httpd restart
Anhalten:
$ sudo service httpd stop
Führen Sie httpd beim Start auf Port 8080 aus und fügen Sie die Datei hinzu:
$ sudo vim /etc/rc.conf
##Hinzufügen dieser Parameter##
httpd_flags='-I 8080'
Neustart.
3. Umgang mit Packages und Diensten in OpenBSD
pkg_add ist der Paketmanager von OpenBSD, der besonders für die Installation von Anwendungen von Drittanbietern im Binärformat verwendet wird.
Wenn sudo bereits installiert wurde, editieren Sie die sudo-Datei, so dass die Benutzerdetails enthalten sind:
# pkg_add sudo
#visudo
Aktualisieren Sie zunächst Ihre Systempakete:
sudo pkg_add -u
Installieren eines Pakets:
sudo pkg_add <pkg_name
Entfernt ein Paket:
sudo pkg_delete <pkg_name
Auffinden eines installierten Pakets:
pkg_info -Q <pkg_name
Informationen zu den Paketen anzeigen:
pkg_info <pkg_name
Dienstverwaltung (System-Daemons)
System-Daemons werden durch das rc(8)-Skript über rc.d(8) reguliert. Die meisten Dienste und Daemons werden unter OpenBSD über Variablen aus /etc/rc.conf installiert.
Anstatt die Konfigurationsdatei zu modifizieren, ist es im Allgemeinen bequemer, das rcctl-Werkzeug zu benutzen, um Änderungen in der Datei zu vermeiden, die möglicherweise mit Upgrades interferieren könnten.
Um Apache zu installieren und Dienste zu verwalten:
sudo pkg_add php
sudo pkg_add php-apache
sudo pkg_add php-mysqli
Aktivieren Sie Apache:
sudo rcctl enable apache2
Starten des Apache-Dienstes:
sudo rcctl start apache2
apache2(ok)
Überprüfen des Status von Apache2:
rcctl check apache2
apache2(ok)
Stoppen des Apache2-Dienstes:
$ sudo rcctl stop apache2
apache2(ok)
Schlussfolgerung
Dies war der Überblick über die Paket- und Dienstverwaltung von FreeBSD, OpenBSD und NetBSD. Wir hoffen, dass wir alle wesentlichen Grundlagen abgedeckt haben und dass Sie nun mehr Sicherheit haben, wenn Sie sich mit diesen Betriebssystemen vertraut machen. Viel Erfolg!