Homebrew und Macports zur Koexistenz zwingen?

10

Ich habe ein MacOSX-System, das ich seit einigen Jahren verwende, und in dieser Zeit habe ich einige Pakete über Macports installiert.

Ich möchte jetzt Homebrew ausprobieren, aber aus dem, was ich hier und anderswo gelesen habe, geht hervor, dass die Standardinstallationen von Homebrew und Macports nicht einfach nebeneinander existieren können.

Es ist für mich keine praktikable Option, Macports zu deinstallieren, da so viel meiner täglichen MacOSX-Arbeit die Verwendung verschiedener von Macports installierter Dienstprogramme umfasst. Darüber hinaus sind viele meiner eigenen, selbst entwickelten Dienstprogramme jetzt von Macports abhängig. Und schließlich werden viele ausführbare Dateien und gemeinsam genutzte Bibliotheken, die ich routinemäßig verwende, jetzt unter / usr / local installiert, und mein System würde schnell unbrauchbar werden, wenn ich diesen Verzeichnisbaum löschen würde.

Meine Frage lautet also: Hat jemand eine alternative Möglichkeit gefunden, Homebrew zu installieren, die mit Macports koexistieren kann? Hat jemand herausgefunden, wie Homebrew einen Verzeichnisbaum wie / usr / local / homebrew anstelle von / usr / local verwenden kann?

Vielen Dank im Voraus für Anregungen oder Hinweise auf Dokumente.

HippoMan
quelle
Wenn Sie es nur versuchen möchten, können Sie eine virtuelle OS X-Maschine einrichten. Es ist nicht gegen Apples Nutzungsbedingungen für OS X 10.7 und Sie können dort mit allem experimentieren, was Sie wollen. Selbst wenn es irgendwie funktioniert, beide parallel zu verwenden, wäre ich nicht überrascht, wenn die Dinge kaputt gehen würden ...
Daniel Beck
Vielen Dank, aber ich bevorzuge es, beide Paketmanager in derselben OSX-Umgebung zum Laufen zu bringen, wenn es überhaupt eine Möglichkeit gibt, dies zu tun. Dies liegt daran, dass ich, wenn ich Homebrew mag, nach und nach Pakete über dieses System installieren und die alten Macports-basierten Pakete schrittweise deinstallieren möchte. Leider ist es für mich keine praktikable Alternative, mich für Homebrew zu entscheiden, meinen gesamten alten Macports-Code auf einen Schlag wegzublasen und dann über Homebrew zu kämpfen, um alles auf einen anderen Schlag zu ersetzen.
HippoMan

Antworten:

2

Sie können Homebrew anweisen, ein eigenes Verzeichnis zu verwenden, und dieses dann dem Pfad hinzufügen. Obwohl nicht für den gleichen Zweck, heißt es in diesem Auszug aus der Installationsanleitung:

Mehrere Installationen

Erstellen Sie eine Homebrew-Installation, wo immer Sie den Tarball extrahieren. Unabhängig davon, welcher Brew-Befehl aufgerufen wird, werden die Pakete dort installiert. Sie können dies nach Belieben verwenden, z. B. einen Systemsatz von Bibliotheken in / usr / local und optimierte Formeln für die Entwicklung in ~ / homebrew

Quelle: https://github.com/mxcl/homebrew/wiki/installation

Karolos
quelle
Danke Karolos. Die folgende Aussage auf derselben Wiki-Seite ermutigt mich nicht: "Tun Sie sich selbst einen Gefallen und installieren Sie sie unter / usr / local ... Wählen Sie auf eigene Gefahr ein anderes Präfix! " Aber ich werde es versuchen und zurückmelden später.
HippoMan
Ich habe versucht, Homebrew in / usr / local / homebrew zu installieren. Einige Pakete, die ich zu installieren versuche, schlagen jedoch fehl. Wenn ich / usr / local / homebrew / bin / Brew Doctor ausführe, erhalte ich Verweise auf buchstäblich Dutzende unerwarteter Dylibs, statischer Bibliotheken, .pc-Dateien und .la-Dateien sowie Warnungen zu bestimmten Paketen, die eine / usr / local-Installation erfordern. Da mein System überhaupt nicht läuft, wenn ich meine alten Softwareinstallationen wegblase (von denen die meisten dieser "unerwarteten" Dateien stammen), gibt es anscheinend keine Möglichkeit für mich, Homebrew auf meinem System zu verwenden. Na
ja
@ HippoMan: Entschuldigung, dass es nicht funktioniert. Eine Frage: Ist / usr / local / homebrew in Ihren Pfaden korrekt eingerichtet? dh PATH und (DY) LD_LIBRARY_PATH
Karolos
@ HippoMan: Welche Pakete schlagen fehl? Ich habe gerade versucht, einige davon zu installieren und habe kein Problem festgestellt (nach dem Bearbeiten von / etc / path zum Hinzufügen von / usr / local / homebrew / bin).
Karolos
Ja, ich habe PATH und LD_LIBRARY_PATH korrekt eingerichtet, um auf bin und lib unter dem Baum / usr / local / homebrew zu verweisen. Eines der fehlgeschlagenen Pakete ist gawk, eine Voraussetzung für avidemux. Aber ich werde von vorne anfangen und es noch einmal versuchen, falls ich einen Fehler gemacht habe.
HippoMan
1

Meine Möglichkeit, die Koexistenz zu erzwingen, besteht darin, MacPorts nicht standardmäßig sichtbar zu machen, sondern beim Aufrufen von MacPorts-Programmen sichtbar zu machen. Das heißt, wickeln Sie MacPorts-Programme mit einem Skript wie:

if [ "$#" -le 0 ]; then
  echo "Usage: $0 command [arg1, arg2, ...]" >&2
  exit 1
fi
if [[ -z $MACPORTS_PREFIX ]]; then
  MACPORTS_PREFIX='/opt/local'
fi
export PATH="$MACPORTS_PREFIX/bin:$MACPORTS_PREFIX/sbin:$PATH"
export DYLD_LIBRARY_PATH="$MACPORTS_PREFIX/lib:$DYLD_LIBRARY_PATH"
export CPATH="$MACPORTS_PREFIX/include:$CPATH"
command=$1
shift
exec $command $* 

Wenn Sie dieses Skript als benennen macports.sh, können Sie den Wrapping nach ausführen macports.sh macports_bin, z. B. macports.sh portum Wrapping port.

Der Einfachheit halber können Sie setzen macports.sh somethingeinige Skripte mit dem gleichen Namen in wie die selbst Befehle und setzen Sie sie in Ihrem Home - Verzeichnis, wie ~/bin, ~/.local/binetc.

Ich habe vor einem Monat einen Blog-Beitrag darüber geschrieben. Sie können es lesen, wenn Sie einen Blick in die Details benötigen.

xuhdev
quelle