• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Homebrew & PATH Variable

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Mittels Homebrew habe ich mir Python in der Version 2.7.6 installiert. Damit diese Version aufgerufen wird, beim Starten habe ich in meiner .bash_profile Datei

Code:
export PATH=/usr/local/bin:$PATH

eingefügt.

Nun scheint mir diese Vorgehensweise unsauber. Homebrew macht sich per default erst ganz unten/hinten im PATH breit - wenn man sich dazu /etc/paths ansieht:

Code:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

Was wäre die sauberste Lösung bzgl. Homebrew & Path?
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.522
Warum sollte Homebrew sich auch vordrängen? Willst du Systemfunktionen aushebeln?
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Eben gerade nicht :) Daher frage ich. Ich möchte

Code:
export PATH=/usr/local/bin:$PATH

in meiner .bash_profile Datei vermeiden bzw. diesen Eintrag nicht generisch halten. Eine PYTHONPATH Variable à la

Code:
PYTHONPATH="$PYTHONPATH:/usr/local/Cellar/python/"

Angabe scheint unter OS X nicht zu funktionieren. Wobei ich mir bei obiger Variablenzuweisung überhaupt nicht sicher bin.
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
Meine Pfadangabe für Homebrew sieht so aus:
Code:
export PATH="/usr/local/bin:/usr/local/sbin:${PATH}"
Ob die geschweiften Klammern so wichtig sind, kann ich nicht sagen. Meine .bashrc ist über die Jahre sehr gewachsen, und ich weiß nicht mehr 100%ig, wieso ich einzelne Befehle so eingebaut habe, wie sie sind. Aber es funktioniert zumindest.
Ich lasse Homebrew allerdings bewusst vordrängeln, weil im dupes-Repository durchaus aktuellere Versionen von Tools sind, die MacOS schon mitliefert, allerdings in einer älteren Version. zB git und vim.
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Ich lasse Homebrew allerdings bewusst vordrängeln

Kann das nicht langfristig zu Problemen führen? Mein PATH entspricht zurzeit ungefähr deinem - halt ohne sbin. Bei Stack Overflow findet man zu diesem Thema eine Flut an Antworten. Einige editieren per sudo /etc/paths :oops:o_O andere geben den Pfad so an, wie du und ich es machen. 100% sauber scheinen mir jedoch beide Ansätze nicht. Oder ist es am Ende doch die sauberste Lösung, weil die Vorteile der aktuelleren Versionen überwiegen?
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
Wieso sollte das zu Problemen führen? Das heißt ja nur, dass Homebrews Binaries vor den vorinstallierten Binaries präferiert werden. Bei allen Binaries, die ich über HB installiert habe, und die nicht vorher im System drin waren, ist das also egal. Und bei allen anderen sind halt die HB-Binaries die aktuelleren. Ich nutze HB jetzt seit gut 3 Jahren, und hatte bis jetzt keinerlei Probleme damit.
Ich würd die Finger von /etc/paths lassen. Lokale Configs haben sowieso den Vorrang, und so gibt man den Pfad halt nunmal an.
Und wenn du zwar aktuelle Binaries haben willst, aber die wirklich explizit manuell starten willst, machst du halt ein
Code:
export PATH="${PATH}:/usr/local/bin:/usr/local/sbin"
Dann kannst du die nachinstallierten Binaries immer noch simpel starten, und bei allen HB-Systemduplikaten musst du sie halt explizit über den vollen Pfadnamen starten. Wie man möchte.

For whom it may concern: Meine aktuelle Config ist hier, https://github.com/simonszu/dotfiles und zwar so angepasst, dass ich sie mit 2 Befehlen auf sämtliche Unix-basierende Kisten, die mir so unter die Finger kommen, klonen und installieren kann, daher nicht wundern über die spezifischeren Einstellungen für Linux, etc.
 
  • Like
Reaktionen: z3ro

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Ok, danke sehr, für deine ausführliche Antwort! Ich werde meine Konfiguration so beibehalten.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Man könnte auch, statt an der PATH Variablen herumzuspielen, sich einen alias in der .bash_profile Datei anlegen:

alias python=/usr/local/bin/python
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Wieso sollte das zu Problemen führen? Das heißt ja nur, dass Homebrews Binaries vor den vorinstallierten Binaries präferiert werden.
Ein absolutes No-Go. Erinnert mich an das "flicken" von durchgebrannten Sicherungen mit Alufolie oder die "Reparatur" eines beschädigten Stromkabels mit Isolierband.
Ein kluger Mensch baut sich einfach ein Minimalskript, mit dessen Hilfe im Bruchteil einer Sekunde auf ein alternatives Set von Tools umgeschaltet werden kann. Aber nachgerüstete Tools von Drittquellen mit fragwürdigem Reifegrad zur Standardvorgabe zu machen - *grusel*.
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Rastafari, was wäre in meinem Fall die sauberste Lösung? Mir geht es ja hier konkret nur um die Python Installation. Auch wenn ich pip verwende, möchte ich, dass alle Dateien in die von Homebrew installierte Distribution kopiert werden, und nicht in das System-Python.
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Ok, diese Antwort habe ich ja quasi provoziert ;)

Jetzt entferne ich also

Code:
export PATH=/usr/local/bin:$PATH

aus meiner .bash_profile. Wenn ich jetzt virtualenv installieren wollen würde, würde ich ja wieder bei der System-Installation landen. Das möchte ich nicht.
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
Aber nachgerüstete Tools von Drittquellen mit fragwürdigem Reifegrad zur Standardvorgabe zu machen - *grusel*.
Ja doch. Ich habe auf UI-Ebene auch Crome, Sublime Text, den VLC und Cyberduck installiert, und nutze es als Standardvorgabe ggü Safari, TextEdit, Quicktime und dem Finder.
Auf meinen Linuxkisten ist mit Arch ein genau so rollendes Release am Start wie homebrew, und ich generiere keine Snapshots bei jedem pacman -Syu. Wenn bei HB mal ein kaputtes Release bei sein sollte, ist es in 1-2 Tagen gefixt, und ich kann so lange immer noch die mitgelieferte Uralt-Version nutzen.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Vielleicht lernst du das mal anders zu sehen, wenn bei einem der "Brot und Butter" Tools mal wieder jemand aus der GNU Fraktion meint, einen der essentiellen Switches einfach mal eben so grundlos ändern zu müssen, woraufhin ein nicht mehr funktionierendes Skript Amok läuft und dir das Lied vom Datentod spielt. Lehrgeld ist zum zahlen da.
 
  • Like
Reaktionen: Wuchtbrumme