it-swarm.com.de

Ist es sicher, sowohl Homebrew als auch Macports auf demselben Computer zu installieren?

Ich habe MacPorts auf meinem iMac mit einer angemessenen Anzahl von Ports installiert.

Ich bin jedoch daran interessiert, Homebrew auszuprobieren, da ich viele gute Dinge darüber gehört habe, und weil mir aufgefallen ist, dass es aktuellere Versionen mehrerer der von mir verwendeten Tools enthält.

Können die beiden gleichzeitig auf demselben Computer installiert sein oder muss ich MacPorts zuerst vollständig deinstallieren?

Auch wenn die beiden gleichzeitig installiert werden können , sind sie dann vollkommen unabhängig voneinander? Eine der Eigenschaften von Homebrew ist, dass keine neuen Versionen von Dingen neu installiert werden, die bereits im System enthalten sind (z. B. Python). Gilt dies auch dafür, dass keine Versionen von Dingen installiert werden, die bereits von MacPorts verwaltet werden?

Was passiert, wenn ich MacPorts anschließend deinstalliere?

71
Rich

Sie werden nicht gut zusammenleben. Der Apple gcc sucht in/usr/local nach einigen Dingen. Dies bedeutet, dass eine Macports-Kompilierung etwas finden konnte, das der Porter nicht erwartet hatte. In den Mail-Listen und Bugs von macports finden Sie Beispiele für Dinge, die in/usr/local zu finden sind.

23
Mark

Ich gab eine andere Antwort auf eine ähnliche Frage:

Homebrew verursacht Probleme beim Erstellen von Software aus dem Quellcode, wenn diese in/usr/local installiert ist. Dies ist die Standardeinstellung. Dies ist eine schlechte Wahl, da sich dieser Pfad im Standardsuchpfad von Compilern und anderen Tools befindet. Daher können Builds aus anderer Verpackungssoftware die falsche Abhängigkeit erkennen, wenn sie die Version von Homebrew anstelle der eigenen verwenden.

Vor Jahren, zu Beginn des Projekts, verwendete sogar MacPorts/usr/local. Es stellte sich jedoch heraus, dass sie nicht mit anderen Tools zusammenarbeiten, wie in den häufig gestellten Fragen dokumentiert. Leider wollten Homebrew-Entwickler nichts von früheren Erfahrungen hören und ignorierten solche Tatsachen ...

In der Regel ist es besser, nur an einem Werkzeug festzuhalten, um alle Probleme zu vermeiden. MacPorts bemüht sich, alle harcodierten Pfade auszubessern, z. to/sw welches von Fink benutzt wird. Normalerweise wird es funktionieren, aber alles, was in/usr/local installiert ist, wird definitiv Probleme verursachen.

[…]

17
raimue

Früher dachte ich, dass die Sorgen darüber, was die Gnu-Build-Tools aus /usr/local machen, eher paranoid sind. Die Build-Tools erwarten eine Menge Dinge: In der guten alten Zeit vor den Paketmanagern (ich scherze) haben wir alles zu /usr/local kompiliert. Obwohl Autoconf in der Regel Probleme feststellt, führt die enorme Komplexität vieler Open-Source-Projekte zu Problemen, und es kann schwierig sein, diese Probleme zu beheben, wenn Sie in Schwierigkeiten geraten.

Das Risiko, dass Autoconf Probleme hat, etwas zu finden, das nicht unter /usr/local zu finden ist, muss jedoch im Hinblick auf die Wartungsproblematik abgewogen werden, da zwei, drei oder vier verschiedene Kopien von Perl, Tcl und Ruby vorhanden sind, die jeweils unterschiedliche Paketbibliotheken abdecken . Unangenehm.

Da meine Erfahrung mit MacPorts und Fink in der Regel durch genau dies verursacht wurde und ich irgendwann zum Kompilieren des altmodischen Wegs zu /usr/local überging, war ich erfreut zu sehen, dass Homebrew sich nicht darum gekümmert hat. Ich habe versucht, MacPorts für die Installation auf /usr/local zu konfigurieren, aber MacPorts tut alles, um dies zu erschweren. Ich verstehe, dass die Motivation darin besteht, sich das Leben zu erleichtern, wenn man sich mit Hilferufen auf der Mailingliste und dem Bug-Tracker befasst. Beachten Sie jedoch, dass wir die Mühen freiwilliger Paketierer respektieren und ihre Zeit als kostbar betrachten sollten, ihre Debugging-Komfort ist nicht die einzige Art von Einfachheit, die Sie als Benutzer betrifft.

Zumindest in dieser Hinsicht macht Homebrew die Dinge so, wie sie früher gemacht wurden, und MacPorts versucht, sich nicht einzumischen. Wenn Sie bereit sind, zu dokumentieren, welche Pakete Sie mit Homebrew benötigen, und/usr/local bereinigen und bei Schwierigkeiten neu installieren möchten, können Sie jederzeit zurücktreten, falls etwas schief geht. Und wenn Sie feststellen, dass Probleme in/usr/local im Allgemeinen nicht das Risiko einer dauerhaften Beschädigung Ihrer Maschinen bergen, können Sie sich freier fühlen, Risiken einzugehen.

Ich stelle nur fest, wie viel schlechter die Verpackung unter OSX ist als unter FreeBSD: Apple scheint sich nicht wirklich um die Benutzerfreundlichkeit seines BSD-Subsystems zu kümmern, da dies ein Problem ist, bei dem sie helfen könnten.

8
Charles Stewart

Laut den MacPorts FAQ :

Beachten Sie, dass MacPorts ab Version 2.3.0/usr/local (und alle anderen Dateien, von denen ein Port nicht abhängig ist) automatisch vor den Build-Systemen von Ports verbergen kann. Diese Funktion wird als Verfolgungsmodus bezeichnet und durch Bereitstellen des Flags -t für den Port aktiviert, z.

Sudo port -t install <portname>

Dies ist relevant, da gemäß der Homebrew-Installationsseite:

Einer der Gründe, warum Homebrew nur im Vergleich zur Konkurrenz funktioniert, ist, dass wir empfehlen, es nach/usr/local zu installieren. Wählen Sie ein anderes Präfix auf Ihre Gefahr!

Aus diesem Grund und mit wenig persönlicher Erfahrung gehe ich davon aus, dass die Verwendung des Flags -t für MacPort-Installationen die meisten Probleme vermeiden sollte, wenn MacPorts und Homebrew auf demselben System koexistieren. Um Ihre letzte Frage zu beantworten: Ich sehe keinen Grund, warum die Deinstallation von MacPorts Probleme verursachen würde.

6
webappzero

Während der Installation von Homebrew auf einem Computer, auf dem ich seit Jahren Ports verwende, kann ich Folgendes lesen:

Warning: You have MacPorts or Fink installed:
  /opt/local/bin/port

This can cause trouble. You don't have to uninstall them, but you may want to
temporarily move them out of the way, e.g.

  Sudo mv /opt/local ~/macports

Achtung!

4
plang

die Sudo port -t ...-Lösung von webappzero sollte helfen. Um ehrlich zu sein, laufe ich mit Fink, MacPorts und Homebrew auf einmal, mit Rücksicht auf MacPorts (vorerst jedenfalls) und benutze nur eine der beiden anderen, um Dinge zu installieren, die ich von MacPorts nicht bekomme. Ich bin auf diese Weise auf sehr wenige Schwierigkeiten gestoßen, noch bevor ich den port -t-Trick gelernt habe. Wenn Sie jedoch versuchen, mit mehreren Paket-Managern komplexe Entwicklungs- und Serverumgebungen zu verwalten, sind Sie wahrscheinlich zumindest in einer Welt voller Unannehmlichkeiten. Wählen Sie eine aus und meiden Sie die anderen, aber für etwas, das Sie dringend brauchen, und setzen Sie die Hauptperson früher in den Pfad ein.

Wenn das, was ich höre, wahr ist, dass Apple es verbietet, Dinge in/usr/zu installieren, die nicht von Apple stammen (oder vielleicht machen sie das bereits in El Crapitan, was ich vermeide, erst nachträglich zu "up" zu stufen Probleme damit sind gelöst), ich nehme an, dass das Problem gemildert wird, nachdem Homebrew standardmäßig etwas anderes verwendet hat - ob wir dem hartnäckigen Ansatz von Apple zustimmen oder nicht.

Am Ende gefällt mir die Idee, Apples eigene Ports auf einen eigenen Baum zu beschränken, ich wünschte nur, es wäre nicht/usr /. Ich würde lieber/System/bin/usw. usw. verwenden, um ihre eigenen Inhalte zu isolieren, damit ich sie mit aktueller, von der Community gepflegter Software einfacher umgehen kann.

1
S. McCandlish