Wie kann ich meine Entwicklungsumgebung am besten unter OS X isolieren?

Was ist die aktuelle Best Practice für die Einrichtung einer Entwicklungsumgebung unter OS X?

Ich habe vor kurzem einen neuen Mac mit OS X 10.10, Yosemite, bekommen.

Ich bin vertraut mit Homebrew und aus meiner Linux-Erfahrung auch mit VirtualBox und der Verwendung von (headless) VMs. Allerdings weiß ich praktisch (Wortspiel beabsichtigt) nichts über Docker.

Ich bin Entwickler und habe vor kurzem begonnen, Node.js und Meteor zu lernen. Ich habe in der Vergangenheit hauptsächlich mit Python auf Linux-Rechnern gearbeitet. Seit 2013 habe ich jedoch eine selbst auferlegte Pause von der täglichen Entwicklung, während ich zurück in die Schule gehe, um einen neuen Abschluss zu machen.

Seit ich 2013 aus der Vollzeit-Entwicklungsarbeit ausgestiegen bin, hat sich viel verändert (ich hätte besser den Überblick behalten sollen). Jetzt gibt es Docker, ich höre zum ersten Mal von Ansible, Homebrew gibt es immer noch, niemand scheint mehr MacPorts zu verwenden, und ich fühle mich völlig verloren, wenn es darum geht, herauszufinden, wie ich meine neue Maschine optimal für Node einrichten kann. Python- und C/C++-Entwicklung.

Abgesehen davon, dass ich frei mit Node, Python und C/C++ spielen und Apps entwickeln kann, ist mein Hauptanliegen, dass meine Entwicklungsumgebung mein Betriebssystem und das tägliche Computerleben überhaupt nicht beeinträchtigen darf . Als ich zum Beispiel 2009 meinen ersten Mac bekam, habe ich Homebrew verwendet, um Python und mehrere Pakete zu installieren, und irgendwann war mein System mit all dem Mist, den ich darauf gemacht habe, etwas durcheinander.

Das möchte ich unbedingt vermeiden. Wenn das bedeutet, eine VM oder einen Container zu verwenden (ich bin mir übrigens nicht sicher, was der Unterschied ist), um meine gesamte Entwicklung durchzuführen, dann sei es so, egal wie unpraktisch es ist. Ich würde lieber mein OS X-System sauber halten.

Auf der anderen Seite, wenn es eine Möglichkeit gäbe, direkt auf meinem OS X-Rechner zu entwickeln, ihn sauber zu halten und ohne zuzulassen, dass Software, die ich installiere, meine "normalen" täglichen Apps und meine Nutzung stört, wäre das schön .

Kann jemand irgendwelche Vorschläge/Ratschläge geben? Ich habe mehrere Variationen der Abfrage „OS X-Entwicklungsumgebung [Sprache]“ gegoogelt und Suchwerkzeuge verwendet, um alle außer den neuesten Einträgen herauszufiltern, aber ich habe noch keinen Artikel zu diesem Thema gefunden, auf den ich mich verlassen kann.

Laut Apple muss jede von Ihnen installierte Software von Drittanbietern für den Apps Store heruntergeladen werden oder Ihr System ist nicht "sauber". Wenn es Ihnen nichts ausmacht, das Betriebssystem ein wenig zu verschmutzen, würde ich vorschlagen, eine Anwendung zu verwenden, die VMs (VirtualBox usw.) verwendet. Wo Sie Ihre bevorzugte Linux-Distribution auf einer VM installieren und nach unten gehen können. Das ist von einem Typen, der immer noch MacPorts verwendet.

Antworten (3)

Es wird keine richtige Antwort auf Ihre Frage geben. Vieles hängt von Ihren Vorlieben und Entwicklungsanforderungen ab.

Von Entwicklern, die an Mac- oder iOS-Software arbeiten, wird von Apple erwartet, dass sie dies tun, ohne eine virtuelle Maschine zu verwenden.

Wenn Sie auf Linux oder einer Nicht-Mac-Plattform bereitstellen, wird wahrscheinlich eine virtuelle Maschine empfohlen.

Um Ihre Software auf anderen Versionen von OS X zu testen, kann eine virtuelle Maschine hilfreich sein.

Kompilierte Sprachen

Um mit C, C++, Objective-C und Swift zu entwickeln, verwenden Sie Xcode . Xcode ist Apples eigenes Entwicklungstool und wird Ihrer Installation von OS X keinen Schaden zufügen.

Skripte und dynamische Sprachen

Um mit Python oder einer anderen Skriptsprache zu entwickeln, sollten Sie ein Tool verwenden, das die Installation mehrerer Versionen Ihrer Sprache ermöglicht.

Ziel ist es, eine Version Ihrer Sprache zu installieren und zu verwenden, die von den von OS X bereitgestellten Binärdateien isoliert ist. Updates können die von OS X bereitgestellte Edition ändern, aber Ihre Umgebung bleibt unverändert.

Homebrew und MacPorts

Sie sollten in der Lage sein, sowohl Homebrew als auch MacPorts ohne Risiko für Ihre Installation von OS X zu verwenden. Beide Paketmanager versuchen, ihre Installationen zu isolieren, und beide vereinfachen das Entfernen unerwünschter oder problematischer Software.

Wenn Sie auf Probleme stoßen, melden Sie Fehler bitte bei den Entwicklern.

Ab 2015 werden beide Paketmanager aktiv weiterentwickelt:

Stand November 2015 gibt Homebrew Doctor immer noch an, dass MacPort und Fink Probleme verursachen können, wenn sie gleichzeitig mit Homebrew installiert werden. Im Allgemeinen bieten beide Paketmanager die gleichen Tools und Software, daher würde ich empfehlen, bei einem einzigen zu bleiben.

Eine weitere Option, die jetzt im App Store verfügbar ist, ist Veertu. Ich benutze es und es funktioniert perfekt. Die kostenlose Version ermöglicht es mir, mehrere isolierte Linux- und Windows-VMs sowie Docker auszuführen.

Ja, das ist nett. Ich habe VirtualBox verwendet, aber ich würde lieber etwas verwenden, das von Apple genehmigt wurde, wenn es eine ähnliche Qualität wie VirtualBox hat.

Verwenden Sie VirtualBox und Vagrant mit einer kurzen Nachinstallation und Sie haben eine großartige isolierte Entwicklungsumgebung.

Normalerweise verwende ich die Red Hat-Linux-Familie, aber damit Concourse CI funktioniert, muss ich Ubuntu verwenden.

Anforderungen:

  • Oracle VirtualBox
  • Landstreicher installiert

Schritte:

  1. Öffnen Sie eine Terminal-Shell auf dem MAC
  2. Erstellen Sie ein Verzeichnis namens 2019_ubuntu/ und cd hinein
  3. Verwenden Sie diese Vagrant-Box https://app.vagrantup.com/bento/boxes/ubuntu-17.10
  4. $ vagrant init bento/ubuntu-17.10
  5. $ Landstreicher auf
  6. $ Landstreicher ssh
  7. einen neuen Benutzer anlegen
  8. docker-ce installieren
  9. docker-compose installieren
  10. add docker group und fügen Sie Ihren Benutzer zu dieser Gruppe hinzu
  11. Fügen Sie außerdem den Docker-Dienst beim Neustart automatisch zum Start hinzu
  12. Erstellen Sie zusätzlich eine PS1-Eingabeaufforderung für Ihre Shell (falls Sie erstellt haben
  13. Ihr Benutzer richtig, dann kann dies weggelassen werden)
  14. Überprüfen Sie mit hello-world, ob Docker ordnungsgemäß ausgeführt wird