{"id":3348,"date":"2022-12-01T11:08:38","date_gmt":"2022-12-01T11:08:38","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"},"modified":"2026-03-09T13:07:45","modified_gmt":"2026-03-09T13:07:45","slug":"mehrere-umgebungen-fur-mehrere-projekte-auf-einem-rechner-verwalten","status":"publish","type":"post","link":"https:\/\/thecodest.co\/de\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/","title":{"rendered":"Mehrere Umgebungen f\u00fcr mehrere Projekte auf einem Rechner verwalten?"},"content":{"rendered":"<p>Werfen wir einen Blick auf eine typische Arbeitsumgebung in einer <a href=\"https:\/\/thecodest.co\/de\/dictionary\/how-to-choose-software-house\/\">Softwarehaus<\/a>. Sie haben einige Kunden, die unterschiedliche Umgebungen haben. Einige bevorzugen MySQL, andere Postgres. Eine Version Ihrer Anwendung ben\u00f6tigt <a href=\"https:\/\/thecodest.co\/de\/blog\/top-programming-languages-to-build-e-commerce\/\">Java<\/a> 11 und ein weiteres Java 17. Frontend braucht npm 12 oder 16, weil Sie verschiedene Versionen von <a href=\"https:\/\/thecodest.co\/de\/dictionary\/what-is-node-js-used-for-in-angular\/\">eckig<\/a>. Schlie\u00dflich haben Sie das dreidimensionale Array, das Kombinationen aller Ihrer DBs, Backend- und Frontend-Versionen enth\u00e4lt. Klingt schlimm, aber eines Tages sagt Ihr Chef...<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/comic.png\" alt=\"Comics&lt;em&gt;mit&lt;\/em&gt;Boss\" title=\"wenn Ihr Chef sagt...\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Wurzeln einer multiversellen Umgebung<\/h2>\n\n\n\n<p>Die oben beschriebene Situation ist keine Seltenheit. Migrationen zwischen Sprach- oder Framework-Versionen, Updates von Datenbanken oder einfach unterschiedliche Anforderungen von Kunden k\u00f6nnen alle Konfigurationen auf den Kopf stellen. Wir sollten eine L\u00f6sung haben, die hilft <a href=\"https:\/\/thecodest.co\/de\/blog\/why-us-companies-are-opting-for-polish-developers\/\">us<\/a> diese \u00c4nderungen zu verwalten, eine, die einigen Annahmen und\/oder Anforderungen und\/oder Zielen entspricht:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b> leicht zu bedienen<\/b> - einen einzigen Befehl, um eine Konfiguration oder eine Version zu \u00e4ndern,<\/li>\n\n\n\n<li><b>reiche Bibliothek<\/b> - sollte mehrere Technologien und \"Dinge\" (Bibliotheken, Frameworks, Anwendungen) unterst\u00fctzen,<\/li>\n\n\n\n<li><b> erweiterbar<\/b> - sollten Sie die M\u00f6glichkeit bieten, Ihre Plugins hinzuzuf\u00fcgen.<\/li>\n<\/ul>\n\n\n\n<p>In diesem Artikel werde ich mich auf drei Bereiche konzentrieren. Erstens: Werkzeuge f\u00fcr Java und die JVM. Der zweite Bereich sind allgemeine Werkzeuge. Der dritte Bereich ist die Verwendung von <a href=\"https:\/\/thecodest.co\/de\/dictionary\/docker-developer\/\">Docker<\/a> um unsere Ziele zu erreichen.<\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ich bin Java und arbeite auf JVM<\/h2>\n\n\n\n<p>Wenn Sie ein <strong><a href=\"https:\/\/thecodest.co\/de\/dictionary\/java-developer\/\">Java-Entwickler<\/a><\/strong> oder, allgemeiner ausgedr\u00fcckt, Sie arbeiten mit <strong>JVM-Technologien<\/strong>dann k\u00f6nnen Sie <a href=\"https:\/\/sdkman.io\/\">SDKMAN!<\/a>. Dies ist ein sehr sch\u00f6nes und einfach zu bedienendes Tool, das viele Bibliotheken, Frameworks und Sprachen unterst\u00fctzt.<\/p>\n\n\n\n<p>Der Installationsprozess von <strong>SDKMAN!<\/strong> ist ziemlich einfach. Sie m\u00fcssen laufen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code>curl -s \"https:\/\/get.sdkman.io\" | bash<\/code><\/code><\/pre>\n\n\n\n<p>und dann<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code><code>source \"$HOME\/.sdkman\/bin\/sdkman-init.sh\"<\/code><\/code><\/code><\/pre>\n\n\n\n<p>Jetzt k\u00f6nnen Sie Ihre <strong>Java<\/strong>, <strong>Scala<\/strong> und <strong>Maven<\/strong> Versionen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versionen verwalten - Beispiel<\/h3>\n\n\n\n<p>In diesem Beispiel werden wir die Version einiger Werkzeuge installieren und aktualisieren. Dies ist nur eine kleine Teilmenge der verf\u00fcgbaren Tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Einrichtung<\/h3>\n\n\n\n<p>Nehmen wir an, Ihr neues <a href=\"https:\/\/thecodest.co\/de\/dictionary\/why-do-projects-fail\/\">Projekt<\/a> verwendet <strong>Java 17<\/strong>. Sie haben keine <strong>Java<\/strong> Version installiert. Sie m\u00f6chten sie installieren und zus\u00e4tzlich ein Maven Daemon Tool hinzuf\u00fcgen, um die Builds zu beschleunigen. Sie m\u00fcssen also auch Maven installieren. Dazu m\u00fcssen Sie drei einfache Befehle ausf\u00fchren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sdk installieren java 17-open\n\n$ sdk installieren maven 3.8.4\n\n$ sdk install mvnd 0.7.1<\/code><\/pre>\n\n\n\n<p>Am Ende der Installation eines jeden Tools werden Sie gefragt, ob Sie es als Standard festlegen m\u00f6chten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code>Wollen Sie, dass Java 17-open als Standard eingestellt wird (Y\/n):<\/code><\/code><\/pre>\n\n\n\n<p>Dies ist wichtig, wenn Sie eine neue Version einer Bibliothek oder einer Sprache installieren, denn SDKMAN! setzt diese Standardversion als global f\u00fcr alle Terminals des aktuellen Benutzers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00dcberpr\u00fcfung der Versionen und Aktualisierung<\/h3>\n\n\n\n<p>Von Zeit zu Zeit muss SDKMAN! die Indizes aktualisieren. Dabei kann es vorkommen, dass Sie eine Meldung erhalten, dass es neue Versionen von Tools gibt, die Sie verwenden. Wir k\u00f6nnen \u00fcberpr\u00fcfen, welche Versionen verf\u00fcgbar sind, indem wir Folgendes eingeben <code>sdk ls<\/code>. F\u00fcr <code>sdk ls maven<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Verf\u00fcgbare Maven-Versionen\n\n================================================================================\n\n    3.8.6 3.3.3\n\n    3.8.5 3.3.1\n\n3.8.4 3.2.5\n\n    3.8.3 3.2.3\n\n    3.8.2 3.2.2\n\n    3.8.1 3.2.1\n\n    3.6.3 3.1.1\n\n    3.6.2 3.1.0\n\n    3.6.1 3.0.5\n\n    3.6.0 3.0.4\n\n    3.5.4\n\n    3.5.3\n\n    3.5.2\n\n    3.5.0\n\n    3.3.9\n\n\n\n================================================================================\n\nlokale Version\n\nderzeit in Gebrauch\n\n================================================================================<\/code><\/pre>\n\n\n\n<p>Wie wir oben sehen, hat Maven eine neuere Version als die, die wir verwenden. Das gleiche gilt f\u00fcr <code>mvnd<\/code> (0.8.2) und Java (19-open). Lassen Sie uns alles aktualisieren. Dazu brauchen wir nur den Installationsbefehl aufzurufen, aber dieses Mal verwenden wir keinen Versionsspezifizierer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sdk installieren maven\n\n$ sdk installieren mvnd\n\n$ sdk installieren java<\/code><\/pre>\n\n\n\n<p>Aber etwas ist schief gelaufen. <code>Maven<\/code> und <code>mvnd<\/code> haben korrekte Versionen, aber <strong>Java<\/strong> hat Version <code>17.0.5-tem<\/code>. Das liegt daran, dass die \"neuste\" Version des Tools vom Hersteller kontrolliert wird und nicht vom lokalen SDKMAN! Wer ist dieser Hersteller? Ein Anbieter in SDKMAN! ist jemand, der eine Version ver\u00f6ffentlichen kann. Wie auch immer, nehmen wir an, dass wir endlich installieren <code>19-ge\u00f6ffnet<\/code>und wir haben es zum Standard gemacht, aber aus irgendeinem Grund m\u00fcssen wir die <code>17-ge\u00f6ffnet<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lokale Versionen und Versionsverwaltung f\u00fcr einzelne Terminals<\/h3>\n\n\n\n<p>\u200b<br>Wir k\u00f6nnen eine <code>Standard<\/code> Version eines Tools, die global f\u00fcr alle Projekte und Terminals gilt. Wenn wir jedoch eine bestimmte Version ben\u00f6tigen, haben wir zwei M\u00f6glichkeiten. Die erste ist die Verwendung der <code>sdk verwenden<\/code> Befehl jedes Mal, wenn wir eine bestimmte Version eines Tools im aktuellen Terminal verwenden wollen. Die zweite M\u00f6glichkeit ist die Erstellung einer Versionsliste in einer <code>.sdkmanrc<\/code> Datei, die mit dem Projekt gespeichert wird.<\/p>\n\n\n\n<p>W\u00e4hrend die erste Option f\u00fcr den Einzelgebrauch gedacht ist, ist die zweite f\u00fcr die Arbeit mit Teams und die gemeinsame Nutzung von Konfigurationen zwischen <a href=\"https:\/\/thecodest.co\/de\/dictionary\/how-to-lead-software-development-team\/\">Team<\/a> Mitglieder.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vor- und Nachteile von SDKMAN!<\/h3>\n\n\n\n<p>SDKMAN! ist sehr einfach zu bedienen und verf\u00fcgt \u00fcber eine umfangreiche Bibliothek von unterst\u00fctzten Tools, Frameworks und Sprachen. Es funktioniert unter Linux, MacOS und Windows. Andererseits ist dieses Tool auf die JVM fokussiert und erfordert die Zustimmung des Autors, ein Anbieter zu sein. Dar\u00fcber hinaus ist die Mechanik von <code>.sdkmanrc<\/code> ist sehr d\u00fcrftig und k\u00f6nnte den Prozess des Wechsels von Verzeichnissen erheblich verlangsamen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ich w\u00fcrde gerne viele andere Sprachen verwenden<\/h2>\n\n\n\n<p>Wenn Sie viele Sprachen und Werkzeuge verwenden m\u00fcssen, sollten Sie einen Blick auf <a href=\"https:\/\/asdf-vm.com\/\">asdf<\/a>. Dieses Tool ist auf \"High-Level\"-Tools ausgerichtet. W\u00e4hrend man in SDKMAN! viele Java-spezifische Tools wie Bpipe oder Znai finden kann, bietet asdf viel mehr Tools, die aber nicht so spezifisch sind. Nat\u00fcrlich \u00fcberschneiden sich einige dieser Werkzeuge, z.B. Java, Tomcat oder mvnd sind in beiden verf\u00fcgbar.<\/p>\n\n\n\n<p>Wenn Sie Folgendes verwenden m\u00f6chten <code>asdf<\/code>m\u00fcssen Sie folgende Voraussetzungen erf\u00fcllen <code>git<\/code> und <code>locken.<\/code> installiert. Danach m\u00fcssen Sie nur noch:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code>git clone https:\/\/github.com\/asdf-vm\/asdf.git ~\/.asdf --branch v0.10.2<\/code><\/code><\/pre>\n\n\n\n<p>und f\u00fcgen Sie diese Zeilen ein <code>~\/.bashrc<\/code> file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">. $HOME\/.asdf\/asdf.sh\n\n. $HOME\/.asdf\/Erg\u00e4nzungen\/asdf.bash<\/code><\/pre>\n\n\n\n<p>Jetzt k\u00f6nnen Sie Plugins und Tools in Ihren bevorzugten Versionen installieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Plugin-basierte Verwaltung<\/h3>\n\n\n\n<p>Im Gegensatz zu SDKMAN! <code>asdf<\/code> verwendet Plugins, um Werkzeuge zu verwalten. Bevor Sie also ein Werkzeug installieren k\u00f6nnen, m\u00fcssen Sie ein Plugin installieren. Kehren wir zu unserem Beispielprojekt zur\u00fcck und versuchen wir, die Umgebung zu konfigurieren, indem wir <code>asadfsdf<\/code>.<\/p>\n\n\n\n<p>Zun\u00e4chst m\u00fcssen wir Plugins installieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">asdf plugin hinzuf\u00fcgen java\n\nasdf plugin hinzuf\u00fcgen maven\n\nasdf-Plugin mvnd hinzuf\u00fcgen<\/code><\/pre>\n\n\n\n<p>Dann k\u00f6nnen wir unsere Werkzeuge installieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">asdf install java openjdk-17\n\nasdf install maven 3.8.4\n\nasdf install mvnd 0.7.1<\/code><\/pre>\n\n\n\n<p>Und noch einmal, im Gegensatz zu SDKMAN! <code>asdf<\/code> \u00e4ndert nichts an unserer Umgebung. Wenn wir versuchen, Java zu verwenden, erhalten wir eine Fehlermeldung wie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">F\u00fcr den Befehl Java ist keine Version eingestellt\n\nF\u00fcgen Sie eine der folgenden Versionen in Ihrer Konfigurationsdatei unter ~\/.tool-versions hinzu\n\njava openjdk-17<\/code><\/pre>\n\n\n\n<p>Wir m\u00fcssen die Datei <code>.tool-versionen<\/code> im Heimatverzeichnis, um die Standardversionen zu verwalten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lokale und globale Versionen<\/h3>\n\n\n\n<p>Aktualisierung der Softwareversionen mit <code>asdf<\/code> ist ziemlich einfach. Wir installieren einfach eine neue Version. Da sich dieser Vorgang nicht auf die Umgebung auswirkt, k\u00f6nnen wir das jederzeit und an jeder beliebigen Stelle im Dateisystem tun. Wenn wir eine bestimmte Version einer Software verwenden wollen, m\u00fcssen wir im Projektverzeichnis eine <code>.tool-versionen<\/code> Datei, die von den Teammitgliedern gemeinsam genutzt werden kann. Denken Sie daran, dass Sie sicherstellen m\u00fcssen, dass alle Teammitglieder \u00fcber <code>asdf<\/code> und Plugins installiert. Die Liste der Plugins, die Sie finden k\u00f6nnen <a href=\"https:\/\/github.com\/asdf-vm\/asdf-plugins\">hier<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versionskonflikte<\/h3>\n\n\n\n<p><code>asdf<\/code> unterst\u00fctzt nicht nur Programmiersprachen, Frameworks und Tools wie vim oder kubernetess. Es unterst\u00fctzt auch Datenbanken. In einem solchen Fall k\u00f6nnten wir mehrere Versionen von z. B. Postgres installieren, aber nur eine Instanz k\u00f6nnte laufen. Der Grund daf\u00fcr ist <code>asdf<\/code> f\u00fchrt Befehle direkt auf dem Betriebssystem aus, ohne eine Trennschicht. Das f\u00fchrt zu Problemen wie \"Port bereits in Gebrauch\" und Ressourcenkonflikten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pro und Kontra<\/h3>\n\n\n\n<p><code>asdf<\/code> ist ein sehr gutes Werkzeug, wenn Sie in einer polyglotten Umgebung arbeiten m\u00f6chten. Es unterst\u00fctzt viele Tools, Sprachen und Frameworks. Die Plugin-basierte Architektur macht es sehr einfach, diese zu erweitern. Einige der Werkzeuge, die in der Bibliothek enthalten sind, erfordern jedoch zus\u00e4tzliche Arbeit bei der Installation, um alle erforderlichen Abh\u00e4ngigkeiten bereitzustellen. <code>asdf<\/code> funktioniert nicht unter Windows, auch nicht unter <a href=\"https:\/\/en.wikipedia.org\/wiki\/Windows_Subsystem_for_Linux\">WSL<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Und zu guter Letzt - Docker<\/h2>\n\n\n\n<p>Wenn ich oben \u00fcber den Hafenkonflikt spreche, kennen viele von Ihnen die L\u00f6sung.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.docker.com\/\">Docker<\/a> k\u00f6nnte uns in einigen F\u00e4llen helfen. Ich erw\u00e4hne es aus Pflichtgef\u00fchl, weil dieses Werkzeug so gro\u00df und komplex ist, dass wir es nicht in einem Artikel behandeln k\u00f6nnen.<\/p>\n\n\n\n<p>Zusammen mit Docker sollten wir eine <a href=\"https:\/\/docs.docker.com\/compose\/\">docker-compose<\/a> Werkzeug, das uns die M\u00f6glichkeit gibt, Umgebungen mit mehreren Containern zu koordinieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Vor- und Nachteile von Docker<\/h3>\n\n\n\n<p>Docker hilft uns bei der Verwaltung von Tools, die bestimmte Ressourcen, wie Ports oder Dateien, ben\u00f6tigen. Es trennt Instanzen in Container und gibt uns die volle Kontrolle \u00fcber sie. Dennoch ist Docker ein Werkzeug, das eine Menge Komplexit\u00e4t in unsere Arbeitsumgebung einbringt und in einigen F\u00e4llen problematisch sein kann. Einer dieser F\u00e4lle der Verwendung von Docker in einem Test wird in einem unserer fr\u00fcheren Beitr\u00e4ge beschrieben <a href=\"https:\/\/thecodest.co\/blog\/test-containers-how-to-make-tests-easier\">Artikel<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Res\u00fcmee<\/h2>\n\n\n\n<p>Ich wei\u00df, dass ich nicht alle Werkzeuge beschrieben habe, die f\u00fcr die Verwaltung von Werkzeugversionen verwendet werden k\u00f6nnen. Es gibt noch viel mehr davon, wie zum Beispiel <a href=\"https:\/\/www.jenv.be\/\">jEnv<\/a> die SDKMAN ersetzen k\u00f6nnte,<\/p>\n\n\n\n<p>oder <a href=\"https:\/\/github.com\/nvm-sh\/nvm\">NVM<\/a> die wir verwenden k\u00f6nnen, um npm zu verwalten oder <a href=\"https:\/\/rvm.io\/\">RVM<\/a> f\u00fcr <a href=\"https:\/\/thecodest.co\/de\/case-studies\/providing-a-team-of-ruby-developers-for-a-fintech-company\/\">Rubinrot<\/a>. Ich habe mich auf Tools konzentriert, die ich \"auf dem Schlachtfeld getestet\" habe und jedem empfehlen kann.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/thecodest.co\/contact\/\"><img loading=\"lazy\" decoding=\"async\" width=\"1283\" height=\"460\" src=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_.png\" alt=\"\" class=\"wp-image-4927\" srcset=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_.png 1283w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-300x108.png 300w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-1024x367.png 1024w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-768x275.png 768w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-18x6.png 18w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-67x24.png 67w\" sizes=\"auto, (max-width: 1283px) 100vw, 1283px\" \/><\/a><\/figure>","protected":false},"excerpt":{"rendered":"<p>Gibt es einen goldenen Mittelweg, um viele Umgebungen f\u00fcr eine gro\u00dfe Anzahl auf nur einem Rechner zu verwalten? Unser Java-Experte Bart\u0142omiej kennt die Antwort!<\/p>","protected":false},"author":2,"featured_media":3349,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3348","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Handle multiple environments for multiple projects on one machine? - The Codest<\/title>\n<meta name=\"description\" content=\"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/de\/blog\/mehrere-umgebungen-fur-mehrere-projekte-auf-einem-rechner-verwalten\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Handle multiple environments for multiple projects on one machine?\" \/>\n<meta property=\"og:description\" content=\"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/de\/blog\/mehrere-umgebungen-fur-mehrere-projekte-auf-einem-rechner-verwalten\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-01T11:08:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T13:07:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Handle multiple environments for multiple projects on one machine?\",\"datePublished\":\"2022-12-01T11:08:38+00:00\",\"dateModified\":\"2026-03-09T13:07:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\"},\"wordCount\":1315,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\",\"name\":\"Handle multiple environments for multiple projects on one machine? - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"datePublished\":\"2022-12-01T11:08:38+00:00\",\"dateModified\":\"2026-03-09T13:07:45+00:00\",\"description\":\"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Handle multiple environments for multiple projects on one machine?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/de\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Mehrere Umgebungen f\u00fcr mehrere Projekte auf einem Rechner verwalten? - The Codest","description":"Entdecken Sie, wie Entwickler mit Hilfe von Versionsmanagern und Containerisierung mehrere Umgebungen f\u00fcr verschiedene Projekte auf einem einzigen Rechner verwalten k\u00f6nnen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/de\/blog\/mehrere-umgebungen-fur-mehrere-projekte-auf-einem-rechner-verwalten\/","og_locale":"de_DE","og_type":"article","og_title":"Handle multiple environments for multiple projects on one machine?","og_description":"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.","og_url":"https:\/\/thecodest.co\/de\/blog\/mehrere-umgebungen-fur-mehrere-projekte-auf-einem-rechner-verwalten\/","og_site_name":"The Codest","article_published_time":"2022-12-01T11:08:38+00:00","article_modified_time":"2026-03-09T13:07:45+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Handle multiple environments for multiple projects on one machine?","datePublished":"2022-12-01T11:08:38+00:00","dateModified":"2026-03-09T13:07:45+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"},"wordCount":1315,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","articleSection":["Software Development"],"inLanguage":"de-DE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/","url":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/","name":"Mehrere Umgebungen f\u00fcr mehrere Projekte auf einem Rechner verwalten? - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","datePublished":"2022-12-01T11:08:38+00:00","dateModified":"2026-03-09T13:07:45+00:00","description":"Entdecken Sie, wie Entwickler mit Hilfe von Versionsmanagern und Containerisierung mehrere Umgebungen f\u00fcr verschiedene Projekte auf einem einzigen Rechner verwalten k\u00f6nnen.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Handle multiple environments for multiple projects on one machine?"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"Der Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de-DE"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"Der Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/de\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/comments?post=3348"}],"version-history":[{"count":9,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3348\/revisions"}],"predecessor-version":[{"id":8550,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3348\/revisions\/8550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/media\/3349"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/media?parent=3348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/categories?post=3348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/tags?post=3348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}