Wie kann ich Homebrew mit nicht verwalteter Software in / usr / local integrieren?


5

Ich bin dabei, auf das umzuschalten Homebrew Paketverwaltungssystem, und fast alles sieht sehr einfach aus. Jedoch, Ich benutze diesen Computer schon eine Weile und habe schon einige Sachen rein /usr/local. Ich bin in Ordnung mit dem Löschen fast Alles so wie es ist Formeln für fast alles drin. Es ist jedoch das "Fast" was zu meiner aktuellen Verwirrung führt. Es gibt einige ausführbare Dateien, einschließlich der veröffentlichten solche, kleine persönliche Skripte und sogar TextMates mate tool — in /usr/local/bin welche nicht Erhältlich bei Homebrew. Das Homebrew-Tipps 'N' Tricks Seite schlägt vor mit ./configure --prefix=/usr/local/Cellar/foo/1.2 && make && make install && brew link foo, aber das ist nur ein nützlicher vorschlag, wenn ich was gäbe eigentlich gerne bauen eher als eine einfache Binärdatei oder ein Symlink zu etwas lokal.

Meine Frage ist also, wie man mit nicht verwalteter Software und Homebrew umgeht gleichzeitig. Ich sehe ein paar mögliche Ansätze:

  1. Mischen Sie die beiden frei. Ich kann nicht sagen, ob Homebrew es toleriert, dass ich Dumping mache Nicht verwaltete Binärdateien und Symlinks in /usr/local/bin; Ich vermute, dass es das ist wird vorerst funktionieren, aber nur auf der Straße zu Problemen führen. Ich aber auch sehen Sie, dass Homebrew mit vorhandenen Dateihierarchien flexibel sein soll. Ich wäre gespannt, was die offizielle Zeile dazu ist. Dennoch, Es ist nicht klar, dass es ein attraktiver Ansatz ist.
  2. (Ab?) Verwenden Sie das offizielle System. Erstellen Sie leer /usr/local/Cellar/foo/1.0 Verzeichnisse, kopieren Sie die Binärdateien / Symlinks dort hinein und dann brew link foo. Dadurch werden Symlinks zweimal indirekt, aber das scheint nicht wie ein echtes Problem. Dies scheint mir die beste Herangehensweise zu sein, die ich aber nicht genutzt habe Homebrew, ich bin mir nicht sicher, was die Nachteile angeht. Wird das verursachen Langzeitprobleme, wenn z. B. Formeln aktualisiert werden oder wenn sie neu sind überlappende Formeln entstehen?
  3. Mischen Sie einfach nicht die beiden. Hier gibt es zwei Ansätze:
    1. Lege meine persönlichen Binaries / Symlinks in ein anderes Verzeichnis. ich bin mir nicht sicher was ist der beste Ort ( ~/bin? ~/usr/bin? Noch etwas?), Aber es löst das Mischproblem, indem es darauf stochert.
    2. Legen Sie Homebrew in ein anderes Verzeichnis ( z.B. , /usr/homebrew/ ). Diese löst das Problem auf die gleiche Weise wie 3.1. Der Nachteil ist, dass ich bin Homebrew irgendwo anders als üblich zu platzieren, das scheint einfach so zu sein verursachen auf lange Sicht eine Reihe winziger kleiner Kopfschmerzen.
  4. Etwas anderes, von dem ich nichts weiß oder an das ich nicht gedacht habe.

Wie geht das am besten? Gibt es eine offizielle? Sind da offensichtlich Mängel oder Vorteile eines dieser Ansätze, über die ich nicht nachgedacht habe?


Dies ist der Hauptgrund, warum ich Macports (oder Fink) verwende. Die von ihnen verwalteten Verzeichnisse sind ihre eigenen und nur sie verwalten sie (/ usr / local ist für Selt Build-Code, den ich verwalten muss). / usr / local ist ein Problem, da gcc und andere immer von dort lesen und Sie die Kontrolle verlieren.
Mark

Antworten:


6

Ich benutze 1.

Ich kompiliere meine Software einfach mit /usr/local als vorwahl und ich bin fertig. Ich hatte bisher kein Problem. Ich weiß nicht, ob ich Probleme haben werde, aber ich habe vor ungefähr einem Jahr angefangen und so weit, so gut.

Jedoch…

Wenn ich heute noch einmal anfangen müsste, würde ich 2 folgen (was ich damals nicht wusste). Auf diese Weise ist es einfach genug zu wissen, wo sich alles befindet und was genau die Software installiert hat (da die Hierarchie für /usr/local/Cellar/foo/1.0 ist so etwas wie

bin/      etc/      include/  lib/      share/

)

3 scheint nicht wert.


1

Homebrew toleriert nicht-homebrew Dinge in /usr/local Alles gut. Sie können damit bestätigen, dass alles in Ordnung ist brew doctor - Wenn ein Konflikt wahrscheinlich ist, werden Sie von Homebrew gewarnt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.