<?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>Paketmanager Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/paketmanager/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/paketmanager/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Tue, 12 Sep 2023 09:54:14 +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>Paketmanager Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/paketmanager/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Pip &#8211; Python Paketmanager</title>
		<link>https://ceosbay.com/2023/09/10/pip-python-paketmanager/</link>
					<comments>https://ceosbay.com/2023/09/10/pip-python-paketmanager/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sun, 10 Sep 2023 21:16:00 +0000</pubDate>
				<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Künstliche Intelligenz]]></category>
		<category><![CDATA[Maschinelles Lernen]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Anforderungsdatei]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Drittanbieterpakete]]></category>
		<category><![CDATA[Ian Bicking]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Paketabhängigkeiten]]></category>
		<category><![CDATA[Paketaktualisierung]]></category>
		<category><![CDATA[Paketdeinstallation]]></category>
		<category><![CDATA[Paketinstallation]]></category>
		<category><![CDATA[Paketkonflikte]]></category>
		<category><![CDATA[Paketliste]]></category>
		<category><![CDATA[Paketmanager]]></category>
		<category><![CDATA[Paketversionen]]></category>
		<category><![CDATA[Paketverwaltung]]></category>
		<category><![CDATA[Pip]]></category>
		<category><![CDATA[Pip-Befehle]]></category>
		<category><![CDATA[Programmiersprache]]></category>
		<category><![CDATA[Projektmanagement]]></category>
		<category><![CDATA[PyPI]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python Package Index]]></category>
		<category><![CDATA[Repository]]></category>
		<category><![CDATA[requirements.txt]]></category>
		<category><![CDATA[setuptools]]></category>
		<category><![CDATA[Softwarepakete]]></category>
		<category><![CDATA[venv]]></category>
		<category><![CDATA[virtuelle Umgebung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2364</guid>

					<description><![CDATA[<p>Einer der herausragenden Vorteile von Python, einer der weltweit beliebtesten Programmiersprachen, ist die umfangreiche Standardbibliothek und die schiere Menge an verfügbaren Drittanbieterpaketen. Doch wie lassen sich diese Pakete am einfachsten verwalten und installieren? Hier kommt &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/09/10/pip-python-paketmanager/">Pip &#8211; Python Paketmanager</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Einer der herausragenden Vorteile von <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a>, einer der weltweit beliebtesten Programmiersprachen, ist die umfangreiche Standardbibliothek und die schiere Menge an verfügbaren Drittanbieterpaketen. Doch wie lassen sich diese Pakete am einfachsten verwalten und installieren? Hier kommt der Pip Paketmanager ins Spiel.</p>



<h2 class="wp-block-heading">Was ist der Pip Paketmanager?</h2>



<p>Pip steht für &#8222;Pip Installs Packages&#8220; und ist ein Paketverwaltungssystem, mit dem <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a>-Programmierer Softwarepakete aus dem <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a> Package Index (PyPI) installieren können. PyPI ist eine Online-Repository, in der Entwickler ihre <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a>-Pakete für die Öffentlichkeit bereitstellen können.</p>



<h2 class="wp-block-heading">Geschichte von Pip</h2>



<p>Die Notwendigkeit eines Paketmanagers für Python trat im Laufe der Zeit auf, da die Anzahl der verfügbaren Pakete stieg und der Bedarf an einem zentralen Ort zur Verwaltung dieser Ressourcen wuchs. Pip wurde ursprünglich von Ian Bicking erstellt und basiert auf seinem <code>setuptools</code>-Projekt. Es bot eine einheitliche Schnittstelle zum Installieren und Verwalten von <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a>-Paketen und wurde schnell zur bevorzugten Methode für diese Aufgabe.</p>



<h2 class="wp-block-heading">Pip richtig einrichten und nutzen</h2>



<p>Die Installation ist relativ unkompliziert:</p>



<pre class="wp-block-code"><code><code>curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py</code></code></pre>



<p>Für Benutzer, die mit einer <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a>-Version ab 3.4 oder höher arbeiten, ist Pip bereits in der Standardbibliothek enthalten und muss nicht separat installiert werden.</p>



<h2 class="wp-block-heading">Beim Arbeiten damit gibt es einige Best Practices, die man befolgen sollte:</h2>



<ol class="wp-block-list">
<li><strong>Virtuelle Umgebungen nutzen</strong>: Vor der Installation von Paketen empfiehlt es sich, eine virtuelle Umgebung mit <code>venv</code> oder <code>virtualenv</code> zu erstellen. Dies gewährleistet, dass man Pakete projektbezogen installieren kann und keine Konflikte mit global installierten Paketen entstehen.</li>



<li><strong>Anforderungsdateien verwenden</strong>: Es ist eine gute Praxis, eine <code>requirements.txt</code> Datei zu erstellen, in der alle für ein Projekt erforderlichen Pakete aufgelistet sind. Dies erleichtert das Einrichten von Projekten auf neuen Systemen.</li>



<li><strong>Regelmäßige Aktualisierungen durchführen</strong>: Um sicherzustellen, dass alle Pakete aktuell und sicher sind, sollte man Pip regelmäßig verwenden, um Updates zu überprüfen und zu installieren.</li>
</ol>



<h3 class="wp-block-heading">Einige grundlegende Befehle</h3>



<ul class="wp-block-list">
<li>Ein Paket installieren:</li>
</ul>



<p><code>pip install paketname</code></p>



<ul class="wp-block-list">
<li>Ein Paket deinstallieren:</li>
</ul>



<p><code>pip uninstall paketname</code></p>



<ul class="wp-block-list">
<li>Verfügbare Pakete anzeigen:</li>
</ul>



<p><code>pip list</code></p>



<ul class="wp-block-list">
<li>Anforderungsdatei verwenden, um Pakete zu installieren:</li>
</ul>



<p><code>pip install -r requirements.txt</code></p>



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



<p>Pip bietet <a href="https://ceosbay.com/2022/12/20/erklaerung-python/">Python</a>-Entwicklern ein robustes und flexibles Werkzeug zur Verwaltung ihrer Pakete. Mit einem fundierten Verständnis davon und den zugehörigen Best Practices können Entwickler ihre Projekte effizienter und zuverlässiger gestalten.</p>



<p><em>Hinweis: Die Informationen und Befehle in diesem Blog-Beitrag können sich mit der Zeit ändern. Es wird daher empfohlen, die <a href="https://pip.pypa.io/en/stable/">offizielle Dokumentation</a></em> <em>zu Rate zu ziehen, um aktuelle und genaue Informationen zu erhalten.</em></p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/09/10/pip-python-paketmanager/">Pip &#8211; Python Paketmanager</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/09/10/pip-python-paketmanager/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2364</post-id>	</item>
		<item>
		<title>Git &#8211; Die Codeverwaltung für effiziente Zusammenarbeit revolutionieren</title>
		<link>https://ceosbay.com/2022/11/18/erklaerung-git/</link>
					<comments>https://ceosbay.com/2022/11/18/erklaerung-git/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 18 Nov 2022 11:30:00 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Arch]]></category>
		<category><![CDATA[Branch]]></category>
		<category><![CDATA[Distribution]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[equo]]></category>
		<category><![CDATA[Fork]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[GitKraken]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Kollaboration]]></category>
		<category><![CDATA[Kraken]]></category>
		<category><![CDATA[Lizenz]]></category>
		<category><![CDATA[Manager]]></category>
		<category><![CDATA[Merge]]></category>
		<category><![CDATA[Offener]]></category>
		<category><![CDATA[Offiziell]]></category>
		<category><![CDATA[Ops]]></category>
		<category><![CDATA[Pakete]]></category>
		<category><![CDATA[Paketmanager]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Quelle]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[Repo]]></category>
		<category><![CDATA[Repository]]></category>
		<category><![CDATA[Repository Manager]]></category>
		<category><![CDATA[Sabayon]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Source Control Manager]]></category>
		<category><![CDATA[Stupid Content Tracker]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Versionskontrolle]]></category>
		<category><![CDATA[Zusammenarbeit]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=609</guid>

					<description><![CDATA[<p>Git ist eine freie und Open Source Software für die verteilte Versionskontrolle. Es hilft Entwicklern dabei, Code zu speichern, zu verwalten, Änderungen darin zu verfolgen und zu kontrollieren. Zu den weiteren Zielen gehören Geschwindigkeit, Datenintegrität &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/18/erklaerung-git/">Git &#8211; Die Codeverwaltung für effiziente Zusammenarbeit revolutionieren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Git ist eine freie und <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Software für die verteilte Versionskontrolle. Es hilft Entwicklern dabei, Code zu speichern, zu verwalten, Änderungen darin zu verfolgen und zu kontrollieren. Zu den weiteren Zielen gehören Geschwindigkeit, Datenintegrität und Unterstützung für verteilte, nicht-lineare Arbeitsabläufe (Dabei können tausende von parallelen Zweigen auf verschiedenen Systemen entstehen &#8211; Dies ist keine Metapher sondern wörtlich gemeint! 😉 ).</p>



<p>Git wurde ursprünglich von Linus Torvalds im Jahr 2005 für die Entwicklung des Linux-Kernels entwickelt, wobei andere Kernel-Entwickler zur anfänglichen Entwicklung wesentliche Beiträge geleistet haben. Seit 2005 ist Junio Hamano der Hauptverantwortliche. Wie bei den meisten anderen verteilten Versionskontrollsystemen und im Gegensatz zu den meisten Client-Server-Systemen ist jedes Git-Verzeichnis auf jedem Computer ein vollwertiges Repository mit einer vollständigen Historie und vollständigen Versionsverfolgungsfunktionen, unabhängig vom Netzwerkzugang oder einem zentralen Server. Git ist, wie Anfangs angesprochen, freie und <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source Software</a>, die unter der <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html" target="_blank" rel="noreferrer noopener">GPL-2.0-Lizenz</a> vertrieben wird.</p>



<h3 class="wp-block-heading">Eine kurze Anekdote über Git und dessen Abbreviatur</h3>



<p>Linus Torvalds witzelte sarkastisch über den Namen git (was im britischen Slang &#8222;unangenehme Person&#8220; bedeutet): &#8222;Ich bin ein egoistischer Mistkerl und benenne alle meine Projekte nach mir selbst. Erst &#8222;Linux&#8220;, jetzt &#8222;Git&#8220;. Die Manpage beschreibt Git als &#8222;the stupid content tracker&#8220; Die Read-me-Datei des Quellcodes führt weiter aus:<br>&#8222;Git&#8220; kann alles Mögliche bedeuten, je nach Laune (Ich werde dies in der englischen Sprache belassen, da es so wahrscheinlich mehr Sinn macht 😉 ).</p>



<ul class="wp-block-list">
<li>Random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of &#8222;get&#8220; may or may not be relevant.</li>



<li>Stupid. Contemptible and despicable. Simple. Take your pick from the dictionary of slang.</li>



<li>&#8222;Global information tracker&#8220;: you&#8217;re in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.</li>



<li>&#8222;Goddamn idiotic truckload of sh*t&#8220;: when it breaks.</li>
</ul>



<p>Um Git zu verstehen sind im Prinzip 8 Begriffe relevant. Repository (Kurz: Repo), die Versionskontrolle, Fork bzw. Forking (Gabel bzw. Gabelung), Branch (Verzweigung), Stage (Phase oder Stadium), Modified (modifiziert), Commit (Verbindlichkeit) und Merge (Zusammenführung). Diese Begriffe werde ich nachfolgend beschreiben.</p>



<h3 class="wp-block-heading">Was ist eine Repository?</h3>



<p>Eine Repository, kurz Repo genannt, ist ein Speicherort für Softwarepakete. Oft wird auch ein Inhaltsverzeichnis zusammen mit Metadaten (Metainformationen bzw. -daten sind strukturierte Daten, die Informationen über Merkmale anderer Daten enthalten) gespeichert. Eine Software-Repository wird in der Regel von Source-Control-Managern (SCM) oder Repository-Managern (Ein Repository-Manager ist eine dedizierte Server-Anwendung, die für die Verwaltung von Repositories mit binären Komponenten entwickelt wurde) verwaltet &#8211; Dazu teilweise mehr in der Versionskontrolle und in späteren Beiträgen. Paketmanager ermöglichen die automatische Installation und Aktualisierung von Repositories (Deshalb auch &#8222;Pakete&#8220; genannt).</p>



<p>Viele Organisationen und Softwarehersteller unterhalten zu diesem Zweck Server im Internet, teilweise kostenlos oder gegen eine Gebühr. Repositories können können verschiedene Programmiersprachen, Betriebssysteme, Spiele oder andere Anwendungen sowie Dokumente und Daten beherbergen. Die Betreiber solcher Repositories stellen in der Regel ein Paketverwaltungssystem zur Verfügung. Folglich Werkzeuge, mit denen Softwarepakete aus den Repositories gesucht, installiert und anderweitig bearbeitet werden können. Viele Linux-Distributionen (Der Begriff Distribution stammt aus dem Lateinischen &#8222;distributio&#8220; und hat im Zusammenhang mit Software zwei unterschiedliche Bedeutungen: Softwarepaketierung und Softwareverteilung) verwenden z. B. das Advanced Packaging Tool (APT), das häufig in Debian-basierten Distributionen zu finden ist oder yum in Red Hat-basierten Distributionen. Es gibt auch mehrere unabhängige Paketverwaltungssysteme, wie z. B. pacman, dass in Arch Linux verwendet wird und equo, welches in Sabayon Linux zu finden ist. Ich bin primär mit Debian-basierten Distributionen unterwegs. Werde ich aber in zukünftigen Beiträgen ausführlicher thematisieren.</p>



<h3 class="wp-block-heading">Was ist Versionskontrolle?</h3>



<p>Die Versionskontrolle unterstützt Entwickler bei der Verfolgung und Verwaltung von Änderungen am Quellcode eines Softwareprojekts. Wenn ein Projekt und die Anzahl der Programmierer wachsen, wird die Versionskontrolle unabdingbar. Doch in der Regel kommen sowohl bei kleineren als auch größeren Softwareprojekten mehrere Personen zum Einsatz, die gemeinsam an dem Quellcode arbeiten. Wenn man beispielsweise als Core-Entwickler an einem bestimmten Teil der Codebasis arbeiten möchte, ist es nicht förderlich oder effizient, wenn der Quellcode direkt bearbeitet wird, da zeitgleich noch andere die an dem Projekt beteiligt sind und daran arbeiten. Dies kann am Ende des Tages für ein enormes Durcheinander sorgen 😀</p>



<p>Da man auf dieses Durcheinander gut verzichten kann, arbeitet man als Entwickler mit einer Versionskontrolle &#8222;sicher&#8220; durch branching (Verzweigungen) und merging (Zusammenführungen). &#8222;Sicher&#8220; in Anführungszeichen, da es auch da einige Stolpersteine gibt 😉</p>



<p>Beim branching dupliziert ein Entwickler den Teil des Quellcodes (Das so genannte Repository bzw. die Repo), der für ihn relevant ist und kann die Änderungen genau an diesem Teil des Codes vornehmen, ohne den Rest des Projekts zu beeinträchtigen. Sobald der Entwickler seinen Teil des Codes ordnungsgemäß fertiggestellt hat, kann er diesen Code wieder in den Hauptquellcode mergen (einbinden), um es offiziell zu machen. All diese Änderungen werden protokolliert, kommentiert und können bei Bedarf eingesehen, kontrolliert oder rückgängig gemacht werden.</p>



<h3 class="wp-block-heading">Was ist Fork. bzw. Forking?</h3>



<p>Ein Fork ist eine Kopie einer Repository. Das Forken einer Repository ermöglicht es, frei mit Änderungen zu experimentieren, ohne das Originalprojekt zu beeinträchtigen. Dieser Begriff wird auch anderweitig genutzt, doch darauf werde ich jetzt nicht weiter eingehen 😀</p>



<h3 class="wp-block-heading">Was ist Branch bzw. Branching?</h3>



<p>Ein Branch (Zweig) ist ein hervorstehender Teil eines Baumes. Etwas, dass aus einem Hauptteil herausragt. So, auch in unserem Kontext. Ein Zweig stellt eine unabhängige Entwicklungslinie dar. Zweige dienen als Abstraktion für den Prozess der Bearbeitung (Stage/Commit). Man kann sie sich als eine Möglichkeit vorstellen, ein neues Arbeitsverzeichnis, einen Bereitstellungsbereich und/oder einen Projektverlauf anzufordern.</p>



<h3 class="wp-block-heading">Was ist Modified bzw. Modifying?</h3>



<p>Modified (Geändert) bedeutet, dass die Datei(en) geändert wurden aber noch nicht in die Datenbank bzw. Repository übertragen wurden.</p>



<h3 class="wp-block-heading">Was ist Stage bzw. Staging?</h3>



<p>Staged (Phase/Stadium) bedeutet, dass eine geänderte Datei in ihrer aktuellen Version markiert wurde, um sie in dem nächsten Commit-Snapshot (Schnappschuss) zu übernehmen.</p>



<h3 class="wp-block-heading">Was ist Commit bzw. Committing ?</h3>



<p>Commits (Verbindlichkeiten) sind die zentralen Bausteineinheiten einer Git-Projektzeitleiste. Sie können als Schnappschüsse oder Meilensteine entlang der Zeitachse eines Git-Projekts betrachtet werden. Commits werden mit dem Befehl &#8222;git commit&#8220; erstellt, um den Zustand eines Projekts zu diesem Zeitpunkt festzuhalten. Im Endeffekt wie das Zwischenspeichern mit F5 bei Spielen oder Strg + S bei der regulären Arbeit am Computer. In der Betrachtungsweise einiger interessanter und manchmal nervtötender Zeitgenossen &#8211; Lediglich etwas fundamentaler 😉</p>



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



<p>Mit dem Merging-Befehl fügt Git einen geforkten (aufgegabelten) Verlauf wieder zusammen. Mit dem Befehl &#8222;git merge&#8220; kann man die unabhängigen Entwicklungslinien, die mit dem Befehl &#8222;git branch&#8220; erstellt wurden, in einen einzigen Zweig integrieren.</p>



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



<p>Alles in allem sollte dies für eine kurze Erklärung reichen. In naher Zukunft werde ich auch ein Tutorial über die Nutzung von Git schreiben. Sicherlich gibt es heutzutage auch kommerzielle Cloud-Lösungen wie GitHub oder GitKraken, die diese Schritte auf wenige Mausklicks reduzieren und so eine nahtlosere Zusammenarbeit ohne etwaige Vorkenntnisse ermöglichen, doch dies werde ich auch in zukünftigen Beiträgen thematisieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/18/erklaerung-git/">Git &#8211; Die Codeverwaltung für effiziente Zusammenarbeit revolutionieren</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/18/erklaerung-git/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">609</post-id>	</item>
		<item>
		<title>Node.js® mit npm auf MacOS</title>
		<link>https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/</link>
					<comments>https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 11 Nov 2022 07:16:47 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Befehl]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Laufzeitumgebung]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Minification]]></category>
		<category><![CDATA[Minify]]></category>
		<category><![CDATA[Node.JS]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[Paket]]></category>
		<category><![CDATA[Paketmanager]]></category>
		<category><![CDATA[Sass]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Spotlight]]></category>
		<category><![CDATA[Sudo]]></category>
		<category><![CDATA[Syntactically Awesome Stylesheets]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Version]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=416</guid>

					<description><![CDATA[<p>Node.js® ist eine Single-Thread, JavaScript-basierte, Open Source, plattformübergreifende Laufzeitumgebung für die Erstellung von schnellen und skalierbaren Webservern und vernetzten Anwendungen. Hier noch die Website. Man kann damit auch hilfreiche Aufgaben auf dem Computer ausführen, wie z.B. &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">Node.js® mit npm auf MacOS</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Node.js® ist eine Single-Thread, JavaScript-basierte, Open Source, plattformübergreifende Laufzeitumgebung für die Erstellung von schnellen und skalierbaren Webservern und vernetzten Anwendungen. Hier noch die <a href="https://nodejs.org" target="_blank" rel="noreferrer noopener">Website</a>. Man kann damit auch hilfreiche Aufgaben auf dem Computer ausführen, wie z.B. die Verkettung und Minimierung von JavaScript-Dateien und die Kompilierung von Sass-Dateien in CSS. Node ist kein Framework! (Kurz zu Framework: Ein Programm-Code besteht aus vielen kleinen Bausteinen. Um das Programmieren zu erleichtern und um Zeit zu sparen, gibt es sogenannte <em>Frameworks</em>. Dazu aber mehr in einem anderen Beitrag.</p>



<h2 class="wp-block-heading">Minimierung (Minification / Minify)</h2>



<p>Unter Minifizierung versteht man das Entfernen aller überflüssigen Zeichen aus dem Quellcode von interpretierten Programmiersprachen oder Markup-Sprachen, ohne dessen Funktionalität zu verändern. Dazu in einem separaten Beitrag mehr.</p>



<h2 class="wp-block-heading">CSS (Cascading Style Sheets)</h2>



<p> Eine Programmiersprache, die es ermöglicht, das Design von elektronischen Dokumenten zu bestimmen. Auch hier bei einem separaten Beitrag mehr.</p>



<h2 class="wp-block-heading">Sass (Syntactically Awesome Stylesheets)</h2>



<p>CSS mit Superkräften bzw. auf Steroiden. Dies werde ich auch in einem separaten Beitrag ausführlich thematisieren.</p>



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



<p>Der Node Package Manager ist ein Paketmanager für die JavaScript-Programmiersprache, der von npm, Inc. gepflegt wird. npm ist der Standard-Paketmanager für die JavaScript-Laufzeitumgebung Node. Es vereinfacht das Installieren von Node-&#8222;Paketen&#8220;. Ein Paket, auch Modul genannt, ist lediglich eine Code-Bibliothek, die Node um nützliche Funktionen erweitert. Das Modul &#8222;request&#8220; zum Beispiel vereinfacht https-Anfragen, so dass man problemlos Webressourcen von anderen Websites abrufen kann. npm wird bei der Installation von Node mitinstalliert. Obwohl es auf der Node-Website ein MacOS-Installationsprogramm gibt, wird die Verwendung von <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Homebrew</a> zur Installation und Aktualisierung von Node empfohlen. Über und wie man <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Homebrew</a> installiert bzw. verwendet, kann in einem anderen <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Beitrag</a> gelesen werden, den ich geschrieben habe.</p>



<p>Grundsätzlich sollte man mit dem Mac-Terminal vertraut sein, da es zum Installieren und Testen von Node und npm verwenden werden muss. Die Terminal-Anwendung befindet sich im Dienstprogramme Ordner unter den Programmen. Ansonsten kann man auch einfach mit der Tastenkombination Command + Leertaste im Spotlight nach dem Terminus Terminal suchen. Durch die Verwendung von Homebrew können etwaige Sicherheitsprobleme vermieden werden, die mit der Verwendung des sudo-Befehls zur Installation von Software wie Node und Node-Modulen einhergehen.</p>



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



<p>Die Installation von Node.js® und npm ist mit Homebrew relativ einfach. Homebrew übernimmt das Herunterladen, Entpacken (Eine komprimierte bzw. archivierte Datei extrahieren) und Installieren von Node.js® und npm auf dem System. Der Installationsprozess dauert lediglich ein paar Minuten. </p>



<p>Ist das Terminal geöffnet, geht es folgendermaßen weiter:</p>



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



<p>brew update aktualisiert die Repository</p>



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



<p>Hiermit lässt sich Node.js® installieren</p>



<pre class="wp-block-code"><code>node -v</code></pre>



<p>Mit diesem Befehl lässt sich überprüfen, ob und in welcher Version Node installiert ist.</p>



<pre class="wp-block-code"><code>npm -v</code></pre>



<p>Und hiermit, ob und in welcher Version npm installiert ist.</p>



<p>Damit sind Node.JS® und npm erfolgreich installiert!</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">Node.js® mit npm auf MacOS</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">416</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>
