Ich habe XAMPP in OSX installiert und standardmäßig stellt es den Pfad zu seinem eigenen bin
Verzeichnis (voll mit verschiedenen Dienstprogrammen) meiner $PATH
Variablen voran :
# Add path to XAMPP PHP version
export XAMPP_PHP=/Applications/XAMPP/xamppfiles/bin
export PATH="$XAMPP_PHP:$PATH"
Leider wird eines seiner Dienstprogramme aufgerufen HEAD
, das dank des Dateisystems, bei demhead
die Groß- und Kleinschreibung nicht berücksichtigt wird, mit dem Unix- Befehl kollidiert . XAMPPs HEAD
sind völlig unabhängig von head
(ich denke, es gibt eine HTTP-HEAD-Anfrage aus).
Natürlich möchte ich sowohl head
XAMPP als auch XAMPP verwenden, also habe ich einfach die Reihenfolge der Pfadvariablen geändert:
export PATH="$PATH:$XAMPP_PHP"
Dies lässt mich verwenden head
, aber jetzt gibt es eine Kollision zwischen der XAMPP-Version von PHP (z. B. 5.5) und der vorinstallierten Version von PHP, die mit OSX (5.3) geliefert wird. Da der Pfad zu 5.3 an erster Stelle steht, hat er Vorrang.
Mein Plan für eine hackige Lösung war es, dem vollständigen Dateipfad + Namen nur die XAMPP-Version von PHP voranzustellen und den Rest des Pfads nachher anzuhängen $PATH
:
export PATH="/Applications/XAMPP/xamppfiles/bin/php:$PATH:$XAMPP_PHP"
Dies scheint nicht zu funktionieren. Wenn ich bash neu starte und überprüfe php -v
, ist es immer noch auf PHP 5.3 - der integrierten Version. Ist es überhaupt möglich, einen bestimmten Dateipfad hinzuzufügen $PATH
?
$PATH
darf nur aus Verzeichnissen bestehen. Sie können die gewünschte ausführbare Datei einfach mit einem vorhandenen Verzeichnis in Ihrem Verzeichnis verknüpfen$PATH
.Antworten:
Angenommen, dies
echo "$PATH"
zeigt sich/usr/local/bin
auf Ihrem Weg und vorausgesetzt, dies ist Ihr persönlicher Laptop:Erstellen Sie einen Symlink
/usr/local/bin
, der auf die gewünschte ausführbare Datei verweist.Wenn es sich um einen freigegebenen Computer handelt und Sie keine Auswirkungen auf andere Benutzer haben möchten, empfehlen wir, eine benutzerdefinierte Erweiterung für Ihren PATH in einzurichten
~/.bash_profile
. Ich habe selbst einen:Dann kann ich meine benutzerdefinierten Symlinks, Skripte usw. einfügen
~/.bin
und sie werden wie erwartet ausgeführt (ohne die zuvor in meinem PATH vorhandenen Systembefehle zu überschreiben).Ich habe das
.
am Anfang von gesetzt,.bin
damit ich das Verzeichnis beim Surfen im Finder nicht sehen muss.quelle