Sie werden nicht gut miteinander koexistieren. Das Apple gcc sucht in / usr / local nach einigen Dingen. Dies bedeutet, dass ein Macports-Compile etwas finden konnte, das der Portier nicht erwartet hatte. In macports-Mail-Listen und -Bugs finden Sie Beispiele für Dinge, die in / usr / local zu finden sind.
Ist es sicher, Homebrew und Macports auf demselben Computer zu installieren?
Ich habe MacPorts auf meinem iMac installiert, auf denen ziemlich viele Ports installiert sind.
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 einiger der von mir verwendeten Tools enthält.
Können die beiden auf dem gleichen Computer vorhanden sein oder muss ich MacPorts zuerst vollständig deinstallieren?
Auch wenn die beiden können gleichzeitig installiert werden, werden sie völlig unabhängig voneinander? Eine der Funktionen von Homebrew ist, dass keine neuen Versionen von Dingen, die bereits im System enthalten sind (z. B. Python), nicht neu installiert werden. Gilt dies auch für die Installation von Versionen von Dingen, die bereits von MacPorts verwaltet werden?
Was passiert, wenn ich anschließend MacPorts deinstalliere?
6 Antworten auf die Frage
- Beliebte
- Neu
- Mit Kommentaren
- Aktiv
Ich habe eine andere Antwort auf eine ähnliche Frage gegeben:
Homebrew verursacht Probleme beim Erstellen von Software aus der Quelle, wenn diese in / usr / local installiert wird. Dies ist die Standardeinstellung, eine schlechte Wahl, da sich dieser Pfad im Standardsuchpfad von Compilern und anderen Tools befindet. Daher können Builds anderer Verpackungssoftware die falsche Abhängigkeit aufgreifen, indem sie die Version von Homebrew anstelle ihrer eigenen verwenden.
Vor Jahren, zu Beginn des Projekts, verwendete sogar MacPorts / usr / local. Es stellte sich jedoch heraus, nicht mit anderen Tools zusammenzuarbeiten, wie dies in den häufig gestellten Fragen beschrieben ist. Homebrew-Entwickler wollten leider nicht von früheren Erfahrungen erfahren und ignorierten solche Fakten ...
Im Allgemeinen ist es in der Regel besser, nur ein Werkzeug zu verwenden, um alle Probleme zu vermeiden. MacPorts bemüht sich, harcodierte Pfade zu patchen, z. B. nach / sw, das von Fink verwendet wird. Normalerweise wird es funktionieren, aber alles, was in / usr / local installiert ist, wird definitiv Probleme verursachen.
[…]
Ich dachte immer, dass die Sorge darüber, was die Gnu-Build-Tools machen werden, /usr/local
paranoid ist. Die Build-Tools erwarten dort viele Dinge: In den guten alten Tagen vor Paketmanagern (ich scherze) haben wir alles zusammengestellt /usr/local
. Während Autoconf normalerweise Probleme aufdeckt, führt die schiere Komplexität vieler Open-Source-Projekte zu Problemen. Diese Probleme lassen sich nur schwer beheben, wenn Sie in Schwierigkeiten geraten.
Aber das Risiko, dass Autoconf etwas findet, das es nicht sein sollte, /usr/local
muss im Hinblick auf die Wartungsprobleme abgewogen werden, wenn zwei, drei oder vier verschiedene Kopien von Perl, Tcl und Ruby vorhanden sind, von denen jede unterschiedliche Paketbibliotheken umfasst. Unangenehm.
Da meine Erfahrung mit MacPorts und Fink in der Regel ärgerlich war und irgendwann auf die altmodische Art und Weise /usr/local
umgestellt wurde, freute ich mich, dass Homebrew sich nicht damit beschäftigt hat. Ich habe versucht, MacPorts für die Installation zu konfigurieren /usr/local
, aber MacPorts macht alles, um dies zu erschweren. Ich verstehe, dass die Motivation darin besteht, sich das Leben leichter zu machen, wenn sie auf ihrer Mailing-Liste und dem Bug-Tracker mit Hilfe von Hilferufen umgeht: Beachten Sie jedoch, dass wir zwar die Anstrengung freiwilliger Packager respektieren und ihre Zeit als kostbar, als ihre Zeit betrachten sollten Bequemlichkeit beim Debuggen ist nicht die einzige Art von Einfachheit, die Sie als Benutzer beeinträchtigt.
Homebrew tut diesbezüglich zumindest so, wie es früher getan wurde, und MacPorts versucht, nicht zu stören. Wenn Sie bereit sind, zu dokumentieren, welche Pakete Sie mit Homebrew benötigen, und wischen Sie / usr / local clean ab und installieren Sie das Programm im Falle von Schwierigkeiten neu, können Sie immer zurückkehren, falls etwas schief geht. Und wenn Sie feststellen, dass Probleme in / usr / local normalerweise nicht das Risiko einer dauerhaften Beschädigung Ihrer Maschinen bergen, fühlen Sie sich möglicherweise risikofreudiger.
Ich stelle nur fest, wie viel schlechter die Verpackung unter OSX ist als FreeBSD: Apple scheint sich nicht wirklich um die Verwendbarkeit seines BSD-Subsystems zu kümmern, da dies ein Problem ist, mit dem sie helfen könnten.
Laut den MacPorts-FAQs :
Beachten Sie, dass MacPorts ab 2.3.0 automatisch / usr / local (und alle anderen Dateien, auf die ein Port nicht angewiesen ist) vor den Build-Systemen der Ports verbergen kann. Diese Funktion wird als Ablaufverfolgungsmodus bezeichnet und wird aktiviert, indem das Flag -t an port angegeben wird, z
sudo port -t install <portname>
Dies ist relevant, weil laut Homebrew-Installationsseite:
Einer der Gründe, warum Homebrew nur im Vergleich zur Konkurrenz funktioniert, ist, dass wir die Installation nach / usr / local empfehlen. Wählen Sie ein anderes Präfix an Ihrer Gefahr!
Daher kann ich mit wenig persönlicher Erfahrung theoretisch feststellen, dass die Verwendung der Option -t für MacPort-Installationen die meisten Probleme verhindern soll, 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 könnte.
Bei 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!
Die sudo port -t ...
Lösung von webappzero sollte helfen. Um ehrlich zu sein, ich laufe mit Fink, MacPorts und Homebrew alle gleichzeitig, mit Respekt für MacPorts (vorerst sowieso) und nur eines der beiden anderen zum Installieren von Dingen, die ich nicht von MacPorts erhalten kann. Ich habe auf diese Weise nur sehr wenige Schwierigkeiten, noch bevor ich den port -t
Trick gelernt habe . Wenn Sie versuchen, mehrere Paketmanager zur Verwaltung komplexer Entwicklungs- und Serverumgebungen zu verwenden, ist dies wahrscheinlich eine unangenehme Welt. Wählen Sie eine aus und vermeiden Sie die anderen, aber für etwas, das Sie dringend von ihnen benötigen, und setzen Sie die Hauptversion früher in den Pfad ein.
Wenn das, was ich höre, wahr ist, dass Apple verbietet, die Installation in / usr / anders als Apples eigenen zu installieren (oder vielleicht machen sie das schon in El Crapitan Probleme damit gelöst werden), nehme ich an, dass das Problem nach den Standardeinstellungen von Homebrew durch die Verwendung von etwas anderem gemildert wird - unabhängig davon, ob wir uns mit Apples hartnäckiger Vorgehensweise einig sind oder nicht.
Am Ende mag ich die Idee, Apples eigene Ports auf einen eigenen Baum zu beschränken. Ich wünschte nur, es wäre nicht / usr /. Ich hätte lieber, dass sie / System / bin usw. verwendet hätten, um ihre eigenen Sachen zu isolieren, damit ich sie mit aktueller, von der Community gewarteter Software leichter umgehen konnte.
Verwandte Probleme
-
3
Beschleunigung der Bootzeiten von OS X bei einem Jahr alten MBP
-
3
Wie ordnen Sie ein Airport Time Machine-Backup nach der Migration auf einen neuen Mac wieder zu?
-
6
Wie können Sie den Startton auf einem Mac stummschalten?
-
5
Warum wird mein Macbook bei der Verwendung von Boot Camp extrem heiß?
-
7
Gibt es unter Mac OS X ein Strg + Tab-Äquivalent?
-
6
Weg, um Time Machine-Daten auf eine neue Festplatte zu migrieren
-
13
Setzen Sie die Windows-Position von Mac OS X nach dem Abnehmen des externen Monitors zurück
-
10
Sicherungssoftware für Mac OS X
-
5
Wie kann ich unter Mac OS X einen .kext deinstallieren und entfernen?
-
4
Wie kann ich die Auswurftaste auf der MacBook-Tastatur erneut "löschen"?