<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Virtual Machine Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/virtual-machine/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/virtual-machine/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Sun, 16 Apr 2023 10:40:08 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Virtual Machine Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/virtual-machine/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Docker &#8211; Verpacken, verteilen und überall ausführen &#8211; Laufzeitumgebung für Softwareanwendungen</title>
		<link>https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/</link>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 28 Oct 2022 12:18:00 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Betriebssystem]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Komponenten]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Laufzeitumgebung]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Portainer]]></category>
		<category><![CDATA[Registry]]></category>
		<category><![CDATA[Repository]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwareanwendung]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[VMs]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=82</guid>

					<description><![CDATA[<p>Docker ist ein beliebtes Open-Source-Tool, das eine portable und konsistente Laufzeitumgebung für Softwareanwendungen bietet. In anderen Worten: Ein Tool, mit dem Entwickler, Systemadministratoren und andere Normalsterbliche ihre Anwendungen einfach in einer Sandbox (genannt Container) bereitstellen &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/">Docker &#8211; Verpacken, verteilen und überall ausführen &#8211; Laufzeitumgebung für Softwareanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Docker ist ein beliebtes <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Tool, das eine portable und konsistente Laufzeitumgebung für Softwareanwendungen bietet. In anderen Worten: Ein Tool, mit dem Entwickler, Systemadministratoren und andere Normalsterbliche ihre Anwendungen einfach in einer Sandbox (genannt Container) bereitstellen können, um sie auf dem Host-Betriebssystem, z. B. auf Linux, auszuführen. Der Hauptvorteil besteht darin, dass es Benutzern ermöglicht, eine Anwendung mit all ihren Abhängigkeiten in eine standardisierte Einheit für die Softwareentwicklung zu verpacken. Im Gegensatz zu virtuellen Maschinen haben Container keinen hohen Overhead (Verwaltungsaufwand) und ermöglichen daher eine effizientere Nutzung des zugrunde liegenden Systems und der Ressourcen. Es kann für die gängigen Betriebsysteme auf der <a href="https://www.docker.com" target="_blank" rel="noreferrer noopener">Website</a> heruntergeladen werden (Achtung! &#8211; Die Desktop Version ist keine <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Anwendung!).</p>



<h2 class="wp-block-heading">Was sind Container?</h2>



<p>Zu dem heutigen Industriestandard gehört die Verwendung von virtuellen Maschinen (VMs) zur Ausführung von Softwareanwendungen zum Alltag. Ein Docker-Container ist eine Standardsoftwareeinheit, die einen Code in all seinen Abhängigkeiten speichert. So wird die Anwendung schnell und zuverlässig auf verschiedensten Computerumgebungen lauffähig. Ein Container bildet ein leichtes eigenständiges ausführbares Softwarepaket ab, das alles enthält, was zum Ausführen einer Anwendungscodelaufzeit benötigt wird. Was im Grunde genommen benötigt wird sind in der Regel der Programmcode, diverse RunTime-Engines, Systemtools, die dazugehörigen Systembibliotheken und so ziemlich alle Einstellungen. Diese containerisierte Software läuft unabhängig von dem Betriebssystem, also auf Linux-, Mac- und Windows-basierten Systemen. Und dies vollkommen unabhängig von der jeweiligen Infrastruktur. Die Container isolieren die Software von der Umgebung und stellen sicher, dass sie trotz der Unterschiede einheitlich funktioniert.</p>



<h2 class="wp-block-heading">Vorteile von Containern</h2>



<p>Docker-Container sind besonders beliebt, weil sie gegenüber&nbsp;<a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">Virtuellen Maschinen (VMs)</a>&nbsp;viele Vorteile bieten. <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">VMs</a> enthalten grundsätzlich vollständige Kopien eines umfassenden Betriebssystems, die Anwendung(en) selbst, alle erforderlichen Binärdateien und Bibliotheken. Diese Tatsache beansprucht in der Regel Unmengen an Speicherkapazität.</p>



<p><a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">VMs</a> booten im Vergleich auch ausgesprochen langsam. Container benötigen grundsätzlich weniger Speicherplatz, da ihre Images normalerweise nur wenige hundert Megabyte groß sind. So können bei dem Einsatz von Docker viel mehr Anwendungen gleichzeitig verarbeitet werden. Dies reduziert Verwendung von <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">VMs</a> und Betriebssystemen. </p>



<p>Auch der Einsatz von Containern auf&nbsp;Edge-Devices, z.B. auf kompakten Einplatinencomputern (Single-Board Computer (SBC) wie die beliebten Raspberry Pi&#8217;s oder NVIDIA Jetson&#8217;s, sowie robusten und wartungsarmen Embedded PC&#8217;s in der Industrie, ist problemlos möglich. Container sind flexibler und effektiver als <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">VMs</a> und die Verwendung von Docker in der Cloud ist ebenfalls sehr beliebt. Die Möglichkeit, dass verschiedene Anwendungen auf einer einzelnen Betriebssystem-Instanz ausgeführt werden können, verbessert vielfältige Einsatzmöglichkeiten immens. Ein weiterer entscheidender&nbsp;Vorteil von Containern&nbsp;ist die Fähigkeit, Apps nicht nur voneinander, sondern auch von ihrem zugrundeliegenden System zu isolieren. </p>



<p>So kann der Anwender leicht bestimmen, wie eine zugewiesene containerisierte Einheit das jeweilige System und die vorhandenen Ressourcen (CPU, GPU und Netzwerk) nutzt. Zudem stellt es auch sicher, dass Daten und Code voneinander getrennt bleiben was durchaus eine weitere Sicherheitsinstanz darstellen kann.</p>



<h2 class="wp-block-heading">Komponenten von Docker</h2>



<p>Die Docker-Plattform besteht aus einer Reihe von Komponenten. Desktop und Engine sind die zwei wesentlichen Bestandteile davon. Images definieren den Inhalt von Containern. Container sind lauffähige Instanzen von Images. Der Daemon ist eine Hintergrundanwendung, die Images und -Container verwaltet und ausführt. Der Client ist ein Befehlszeilenprogramm (CLI <em>Command-Line Interface</em>) &#8222;Ein Befehlszeileninterpreter oder Befehlszeilenprozessor.&#8220; Es verwendet eine Befehlszeilenschnittstelle, um Befehle von einem Benutzer in Form von Textzeilen zu empfangen, dass die API des Daemons aufruft. Registries enthalten Images, und der Hub ist ein weit verbreitetes öffentliches Registry. Zudem gibt es noch die&nbsp;Toolbox,&nbsp;um Docker auf Systeme zu bringen, die nicht nativ unterstützt werden. Dies wird dadurch erreicht, indem eine virtualisierte Linux-Instanz gestartet wird. Dies geschieht beispielsweise innerhalb von VirtualBox. Und Docker wird dann innerhalb dieser virtuellen Maschine ausgeführt.‎ Ein Großteil von Docker (jedoch nicht Desktop) ist <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a>. Lizenziert ist es unter der Apache-V2-Lizenz.</p>



<h2 class="wp-block-heading">Docker Desktop</h2>



<p>Während die meisten Komponenten sowohl für Windows, Mac und Linux verfügbar sind, und trotz der Tatsache, dass die meisten Container auf Linux lauffähig sind, ist Docker Desktop lediglich für Windows und Mac verfügbar. Docker Desktop ist ein GUI-Tool (Graphical User Interface / Grafische Benutzeroberfläche), welches im Wesentlichen eine <a href="https://ceosbay.com/2022/11/10/erklaerung-virtuelle-maschine/">virtuelle Maschineninstallation</a> abdeckt. Diese virtuelle Maschine ist unter Linux nicht notwendig, da hier direkt die Engine lauffähig ist. Docker Desktop dient unter Windows und Mac zum Management verschiedener Komponenten und Funktionen, einschließlich von Containern, Images, Volumes (an Container angehängter Speicher), lokalem Kubernetes (eine Automatisierung der Bereitstellung, Skalierung und Verwaltung von Container-Anwendungen &#8211; Doch hierzu später mehr), Entwicklungsumgebungen innerhalb von Containern und vielem mehr.</p>



<h2 class="wp-block-heading">Docker-Images und -Registry</h2>



<p>Ein Docker-Image ist eine unveränderliche Datei, die im wesentlichen Sinn einen Schnappschuss eines Containers darstellt. Images werden mit dem Befehl „build“ erstellt und erzeugen einen Container, wenn sie mit „run“ gestartet werden. Images werden in einer Registry wie „registry.hub.docker.com“ gespeichert. Sie sind so konzipiert, dass sie aus mehreren Schichten anderer Images bestehen können. So muss bei der Übermittlung von Images über das Netzwerk nur eine geringe Datenmenge übertragen werden.</p>



<h2 class="wp-block-heading">Docker-Container</h2>



<p>Als Programmierer spricht man bei einem Image immer von einer Klasse und bei Containern über eine Instanz einer Klasse – bzw. über ein Laufzeitobjekt. Container sind der Grund, warum Docker so vielfältig verwendet wird: Sie sind leichtgewichtige und portable Kapselungen einer Umgebung, in der Anwendungen ausgeführt werden können.</p>



<h2 class="wp-block-heading">Docker-Engine</h2>



<p>Bei einem Blick auf die Docker-Engine und ihre Komponenten, kann man eine grundlegende Vorstellung davon erhalten, wie das System funktioniert. Mit der Engine entwickelt man Anwendungen, stellt sie zusammen, liefert sie aus und im Anschluss kann man sie ausführen, indem die folgenden Komponenten verwenden: Der <strong>Docker Deamon</strong> &#8211; Ein dauerhafter Hintergrundprozess, der Images, Container, Netzwerke und Speichervolumen verwaltet. Der Daemon „betrachtet“ ständig die Docker-API-Anforderungen und verarbeitet sie.</p>



<p>Die <strong>Docker Engine REST API</strong> &#8211; Eine Schnittstelle, die von Anwendungen verwendet wird, um mit dem Daemon zu interagieren. Auf sie kann über einen https-Client zugegriffen werden. Der <strong>Docker Client bzw. die CLI</strong> &#8211; Ermöglicht den Benutzern die Interaktion mit Docker. Er kann sich auf demselben Host wie der Daemon befinden oder eine Verbindung zu einem Daemon auf einem entfernten Host herstellen und mit mehr als einem Daemon kommunizieren.</p>



<p>Der Docker-Client bietet eine Befehlszeilenschnittstelle (CLI = Command Line Interpreter), über die man einem Daemon Befehle zum Erstellen, Ausführen und Anhalten von Anwendungen erteilen kann. Der Hauptzweck des Clients besteht darin, ein Mittel zur Verfügung zu stellen, mit dem Images aus einer Registry gezogen und auf einem Docker-Host ausgeführt werden können. Die gängigen Befehle, die von einem Client ausgegeben werden, sind: docker build, docker pull und docker run. </p>



<p><strong>Portainer</strong> &#8211; Zur Vereinfachung der Arbeit mit Docker-Befehlen ist das freie, intuitive und leicht zu implementierende GUI (Graphical User Interface = Grafische Benutzeroberfläche) Portainer oft eine gute Wahl. Die Verwaltung der Engines und das komplette Management ist mit Portainer auch für kleine Projekte geeignet. Ich selbst hatte nur wenig Kontakt damit, daher bitte mit Vorsicht genießen ;). Hardwareinformationen wie die Anzahl der Prozessoren und die Größe des Arbeitsspeichers, sowie Docker-spezifische Informationen (Anzahl der Container, Images, Volumes und Networks) sind auf jeden Fall relativ leicht ersichtlich. So kann das Dockertool mit seiner übersichtlichen Weboberfläche die Standard-Docker-Funktionen und die Verwaltung übernehmen.</p>



<h2 class="wp-block-heading">Kubernetes</h2>



<p>Ein Thema, mit dem ich mich auch noch auseinandersetzen werde und es noch einen gesonderten Beitrag darüber geben wird. Im Grunde genommen ist Kubernetes ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-System, welches mit Hilfe von Prozessautomatisierung die Verwaltung der Container übernimmt und somit Hand in Hand mit dem Docker zusammenarbeitet. </p>



<p>In einem Helm-Chart werden Konfigurationsdaten an Kubernetes übergeben. Dort wird konfiguriert, welche Container ausgerollt, überwacht und verwaltet werden sollen. Kubernetes löst diese Aufgabe auch mit einer hohen Anzahl an Containern problemlos. Außerdem kann Kubernetes Ressourcen perfekt einsetzen. Maschinen, die nicht benötigt werden, können entweder ausgeschaltet oder an andere Tasks weitervergeben werden, um Kosten sowie Kapazitäten zu sparen und folglich ein besseres Ressourcenmanagement zu ermöglichen.</p>



<h2 class="wp-block-heading">Auf welchen Betriebssystemen läuft Docker?</h2>



<p>Ein Docker-Container läuft mit der Engine direkt unter Linux und auf jedem Host-Computer, der die Container-Laufzeitumgebung „Docker Desktop“ unterstützt (Mac und Windows). Die Anwendungen müssen nicht an das Host-Betriebssystem angepasst werden. So kann sowohl die Anwendungsumgebung, als auch die zugrunde liegende Betriebssystemumgebung sauber und minimalistisch gehalten werden. Containerbasierte Anwendungen können so problemlos von Systemen in Cloud-Umgebungen oder von Entwickler-Notebooks auf Server geschoben werden, wenn das Zielsystem Docker und alle damit verwendeten Tools von Drittanbietern unterstützt.</p>



<h2 class="wp-block-heading">Wie kann Docker installiert werden?</h2>



<ul class="wp-block-list">
<li><a rel="noreferrer noopener" href="https://docs.docker.com/desktop/windows/install/" target="_blank">Installationsanleitung für Docker Desktop (Windows)</a></li>



<li><a rel="noreferrer noopener" href="https://docs.docker.com/desktop/mac/install/" target="_blank">Installationsanleitung für Docker Desktop (Mac)</a></li>



<li><a href="https://docs.docker.com/engine/install/" target="_blank" rel="noreferrer noopener">Installationsanleitung für die Docker-Engine auf diversen Linux Distributionen</a></li>
</ul>



<h2 class="wp-block-heading">Microservices-Modell &#8211; Was ist das?</h2>



<p>Die meisten Geschäftsanwendungen bestehen aus mehreren separaten Komponenten, die in einem sogenannten „Stack“ organisiert sind. Beispiele hierfür sind ein Webserver, eine Datenbank oder ein In-Memory-Cache. Container ermöglichen es, diese einzelnen Komponenten zu einer funktionalen Einheit mit leicht austauschbaren Teilen zusammenzustellen. Verschiedene Container können diese Komponenten beinhalten. So kann jede Komponente für sich gepflegt, aktualisiert und unabhängig von den anderen modifiziert werden. Im Grunde ist dies das Microservices-Modell des Anwendungsdesigns. Indem die Anwendungsfunktionalität in separate und in sich geschlossene Dienste unterteilt ist, bietet das Modell eine Alternative zu langsamen traditionellen Entwicklungsprozessen und unflexiblen Apps. Leichtgewichtige übertragbare Container machen es einfacher, Microservices basierende Anwendungen zu erstellen und zu pflegen.</p>



<p>Alles in allem trägt Docker dazu bei, die Verwaltung einer kompletten Infrastruktur wesentlich zu vereinfachen, indem es die zugrunde liegenden Instanzen leichter, schneller und robuster macht. Darüber hinaus trennt es die Anwendungsschicht von der Infrastrukturebene und bringt die dringend benötigte Portabilität, Zusammenarbeit und Kontrolle über die Softwarebereitstellungskette. Es wurde für moderne DevOps-Teams entwickelt. Das Verständnis seiner Architektur kann helfen, das Beste aus containerisierten Anwendungen herauszuholen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/28/laufzeitumgebung-fuer-softwareanwendungen-docker/">Docker &#8211; Verpacken, verteilen und überall ausführen &#8211; Laufzeitumgebung für Softwareanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">82</post-id>	</item>
		<item>
		<title>Homebrew &#8211; Paketmanager für MacOS (oder Linux)</title>
		<link>https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/</link>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 25 Oct 2022 21:40:00 +0000</pubDate>
				<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[brew]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[Package Manager]]></category>
		<category><![CDATA[Paketmanager]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Upgrde]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[Virtuelle Maschinen]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=26</guid>

					<description><![CDATA[<p>Nachdem ich immer wieder einige für mich &#8222;neue&#8220; Dinge lerne, darf Homebrew auf meinem System nicht fehlen. Falls man mit macOS unterwegs ist, sollte man die Installation durchaus in Erwägung ziehen. Homebrew ist eine freie &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Homebrew &#8211; Paketmanager für MacOS (oder Linux)</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Nachdem ich immer wieder einige für mich &#8222;neue&#8220; Dinge lerne, darf <a href="https://brew.sh/index_de.html" target="_blank" rel="noreferrer noopener">Homebrew</a> auf meinem System nicht fehlen. Falls man mit macOS unterwegs ist, sollte man die Installation durchaus in Erwägung ziehen. Homebrew ist eine freie / quelloffene / <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open Source</a> Paketverwaltung, die Installationen von Software auf den Betriebssystemen macOS und <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/" target="_blank" rel="noreferrer noopener">Linux</a> vereinfacht. Nur um es noch erwähnt zu haben &#8211; Paketmanager sind Teil der Basisausstattung einer jeden <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/" target="_blank" rel="noreferrer noopener">Linux</a>-Distribution. Aus diesem Grund ist es schon gewollt bzw. provoziert, wenn dieser mal in einer Distribution fehlt.</p>



<h3 class="wp-block-heading">Installation</h3>



<p>Im Grunde genommen, ist es schnell installiert. Einfach den folgenden Code in das Terminal (Das Terminal ist ein CLI aka Command-Line Interpreter bzw. Command-Line Processor welches ein Command-Line Interface nutzt, um Befehle von einem Benutzer in Form von Textzeilen zu empfangen) von macOS kopieren und los geht&#8217;s mit einem kurzen Druck auf die Enter Taste. </p>



<pre class="wp-block-code"><code>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</code></pre>



<p>Dazu muss man noch sagen, dass es immer noch Systemvoraussetzungen gibt. Homebrew benötigt eine 64-bit Intel CPU (Central Processing Unit aka Prozessor) oder eine Apple Silicon CPU, mindestens macOS Mojave (10.14) und die installierten Xcode Command Line Tools (CLT) die wie folgt installiert werden können:</p>



<pre class="wp-block-code"><code>xcode-select —install</code></pre>



<p>Das Skript erklärt was es tun wird und wartet in der Regel auf Bestätigungen und/oder Befehle, bevor es etwas macht. Mehr Informationen gibt es natürlich auf der Website von Homebrew. Noch genauer, <a rel="noreferrer noopener" href="https://docs.brew.sh/Installation" target="_blank">hier</a>.</p>



<p>Wozu man es braucht? Ganz einfach, MacOS ist ein Unix-Betriebssystem &#8211; Nur ohne einen Paketmanager ist es so etwas wie ein Greifvogel, dem man die Flügel gestutzt hat. Sicherlich gibt es die Möglichkeit, VM&#8217;s (Virtuelle Maschinen zu installieren) oder andere Betriebssysteme nativ über Bootcamp zu installieren &#8222;In späteren Beiträgen gerne mehr&#8220;, doch wer hat schon Lust, für die einfachsten Anwendungen und Funktionen eine virtuelle Maschine zu installieren geschweige denn hochzufahren.</p>



<p>Im Grunde genommen ist Homebrew ein selbstgemachter Paketmanager für macOS. <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/" target="_blank" rel="noreferrer noopener">Linux</a> User kennen Paketmanager, aber auf macOS fehlt dies leider &#8222;nativ&#8220;. Wer sich jetzt noch nicht über bestimmte fehlende Anwendungen wie z.B. wget auf seinem Mac gewundert hat, hat wahrscheinlich auch keinen Bedarf für einen Paketmanager wie Homebrew. Allen andere möchte ich hier einmal zeigen was geht und vor allem wie es geht.</p>



<p>Wenn man keine Lust mehr auf Homebrew hat und es wieder von seinem System entfernen möchte, macht man dies, wie bereits bei der Installation, mit einem Script:</p>



<pre class="wp-block-code"><code>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"</code></pre>



<p>Homebrew installiert über das Skript selbst unter dem bevorzugten Präfix (/usr/local für macOS Intel, /opt/homebrew für Apple Silicon). Homebrew benötigt dann kein Sudo mehr. Man kann es auch ausführen, wenn in /usr/local bereits Inhalte installiert sind. Homebrew installiert keine Dateien außerhalb seines Pfades und man kann den Ort einer Homebrew-Installation frei wählen. So kann man leicht prüfen, ob die Deinstallation alle Daten rückstandslos entfernt hat.</p>



<h3 class="wp-block-heading">Xcode installieren</h3>



<p>Als iOS Entwickler hat man wahrscheinlich bereits Xcode installiert. Falls nicht, gehören die Xcode CLI Tools auch noch zu den Systemvoraussetzungen auf der Software bzw. Tool Ebene. Diese lassen sich automatisch bei der Installation von Xcode über den Apple App Store installieren oder aber man gibt einfach den folgenden Befehl im Terminal ein:</p>



<pre class="wp-block-code"><code>xcode-select —install</code></pre>



<h3 class="wp-block-heading">Pakete und Befehle</h3>



<p>Nach der Installation von Homebrew können weitere Pakete installiert werden. Tatsächlich ist dies nun genauso simpel wie unter <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/" target="_blank" rel="noreferrer noopener">Linux</a>.</p>



<p>Mit einem kurzen Befehl lassen sich alle bereits installierten Pakete anzeigen:</p>



<pre class="wp-block-code"><code>brew list</code></pre>



<p>Sollte diese Liste, aus welchem Grund auch immer, zu lang werden, kann man sich die Ausgabe auch mit dem nachfolgenden Befehl in eine Datei umleiten:</p>



<pre class="wp-block-code"><code>brew list &gt; homebrewpackages.txt</code></pre>



<p>Und wenn man mal nicht weiß, wofür das ein oder andere Paket eigentlich dient, kann man mit einem weiteren Befehl mehr Informationen über das spezifische Paket erhalten.</p>



<pre class="wp-block-code"><code>brew info &lt;paketname&gt;</code></pre>



<p>Mit dem nächsten Kommando lässt sich der genaue Standort des Pakets ermitteln:</p>



<pre class="wp-block-code"><code>brew --prefix &lt;paketname&gt;</code></pre>



<p>Standardmäßig sind alle Pakete in allen Versionen von macOS im selben Verzeichnis `/usr/local/Cellar/` installiert. Zusätzlich werden im Verzeichnis `/usr/local/opt/` noch symbolische Links erzeugt. Das folgende Kommando zeigt die Inhalte an:</p>



<pre class="wp-block-code"><code>ls -l /usr/local/opt/</code></pre>



<p>Homebrew und unsere installierten Pakete werden aktualisiert mit</p>



<pre class="wp-block-code"><code>brew update</code></pre>



<p>Was die Pakete betrifft, kann es vor einem Update/Upgrade auch interessant sein zu ermitteln, welche Pakete überhaupt ein Update benötigen. Dies überprüfen wir mit dem folgenden Kommando:</p>



<pre class="wp-block-code"><code>brew outdated</code></pre>



<p>Ein einzelnes individuelles Paket lässt sich mit dem folgenden Befehl aktualisieren:</p>



<pre class="wp-block-code"><code>brew upgrade &lt;paketname&gt;</code></pre>



<p>Und mit</p>



<pre class="wp-block-code"><code>brew upgrade</code></pre>



<p>lassen sich alle aktuallisieren.</p>



<p>Selbstverständlich lassen sich auch alle verfügbaren Pakete anzeigen. Dazu am besten den folgenden Befehl verwenden:</p>



<pre class="wp-block-code"><code>brew search &lt;search_string&gt;</code></pre>



<p>Wenn man beispielsweise auf der Suche nach Paketen für Azure ist, lässt sich dies auch mit einem Befehl umsetzen:</p>



<pre class="wp-block-code"><code>brew search azure</code></pre>



<p>In der Ausgabe lassen sich auf diesem Weg alle Pakete, die für Microsoft Azure (Im Grunde genommen alle Pakete, die den Terminus „azure“ im Namen innehalten) auffinden. Pakete mit einem grünen Häkchen lassen darauf schließen, dass diese bereits installiert sind.</p>



<p>Über Homebrew lässt sich auch ganz hervorragend PowerShell Core auf dem Mac installieren, um Windows Systeme mit Powershell verwalten zu können.</p>



<pre class="wp-block-code"><code>brew install --cask powershell</code></pre>



<p>Sicherlich will man auch hin und wieder das ein oder andere Paket loswerden. Dazu lässt sich dann der nachfolgende Befehl nutzen:</p>



<pre class="wp-block-code"><code>brew uninstall &lt;paketname&gt;</code></pre>



<h3 class="wp-block-heading">Fazit</h3>



<p>Diese Informationen ermöglichen einen kleinen Einblick in Hombrew. Selbstverständlich kann man noch vieles mehr damit anstellen und mehr darüber erfahren. Hierzu einfach in der <a href="https://docs.brew.sh/Manpage" target="_blank" rel="noreferrer noopener">Dokumentation</a> von Hombrew selbst vorbeischauen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Homebrew &#8211; Paketmanager für MacOS (oder Linux)</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">26</post-id>	</item>
	</channel>
</rss>
