Hinzufügen einer neuen ausführbaren Datei zur Umgebungsvariablen PATH?

16

Ich versuche, diese Bibliothek namens Phantomjs zu installieren.

Die Anweisungen umfassen diese Zeile:

http://code.google.com/p/phantomjs/wiki/BuildInstructions

Kopieren Sie die ausführbare Datei bin / phantomjs.app / Contents / MacOS / phantomjs in ein Verzeichnis in Ihrem PATH.

Wie mache ich das?

Harry
quelle
Ich glaube nicht, dass Sie sich Sorgen machen müssten, wenn Sie das in Ihren Pfad stellen, da der Papierkorb bereits vorhanden ist. Wenn Sie dies jedoch
@cksum aber das ist ein relativer Pfad; wir wissen nicht, was vor dem "bin" kommt.
erst
@bneely Ja, aber es gibt kein ~ / bin. Die einzigen Speicherorte sind / bin, / usr / bin und / usr / local / bin. Alle von denen sind bereits in Ihrem Weg. Wenn Sie das Programm ausführen path, wird standardmäßig Folgendes angezeigt: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binIch habe das Installationsskript des betreffenden Programms nicht durchgesehen, aber es ist äußerst unwahrscheinlich, dass es irgendwo in einem eigenen "bin" -Ordner installiert wird. Und Sie können keine relativen Pfade AFAIK hinzufügen. Ich bin geneigt, nur einen Tippfehler von einem schlampigen Führer zu denken.
Ich weiß, dass relative Pfade nicht hinzugefügt werden können. Ich behaupte, dass der Pfad in der Frage ein relativer Pfad ist, da er nicht mit einem / oder einem ~ beginnt.
erst

Antworten:

10

Um herauszufinden , was in Ihrer PATH ist, öffnen Sie ein Terminal - Fenster und führen Sie diesen Befehl: echo $PATH. Die Ausgabe ist eine durch Doppelpunkte getrennte Liste von Verzeichnissen, deren Inhalt Sie ausführen können, ohne den vollständigen Pfad anzugeben.

Da sich / usr / bin in meinem Pfad befindet, kann ich den wBefehl einfach durch Eingabe wanstelle des vollständigen Befehls ausführen /usr/bin/w.

Außerdem müssen Sie die ausführbare Datei nicht in eines der aufgelisteten PATH-Verzeichnisse verschieben. Andere Optionen umfassen

  • Lassen Sie die ausführbare Datei dort, wo sie sich befindet, und verknüpfen Sie sie über eines der PATH-Verzeichnisse
  • Fügen Sie Ihrem PATH ein Verzeichnis hinzu, indem Sie es explizit in einem Anmeldeskript für Ihre Shell festlegen
bneely
quelle
Bitte folgen Sie @ Gerrys Rat in der anderen Antwort und verlinken Sie sie. Es ist der sauberste Weg!
Cregox
Wenn Sie zufällig ein vollständiges Verzeichnis im benötigen PATH, da es viele ausführbare Dateien gibt, auf die Sie zugreifen müssen, gibt es keine andere Option, und dafür ist das gedacht PATH. Derzeit verwenden wir das ~ / .bash_profile, um es dem Pfad hinzuzufügen .
Cregox
19

Der sauberste Weg, dies zu erreichen, ist die Verknüpfung der Binärdatei im Verzeichnis / usr / local / bin (das standardmäßig in PATH enthalten ist). Möglicherweise müssen Sie dieses Verzeichnis erstellen, wenn es noch nicht vorhanden ist. Sie können überprüfen, ob sich diese Verzeichnisse bereits in Ihrem PATH befinden, indem Sie Terminal.app öffnen und Folgendes eingeben:

echo $PATH

Dadurch wird eine durch Doppelpunkte getrennte Liste aller Verzeichnisse in Ihrem PATH erstellt.

Wenn die Verzeichnisse / usr / local oder / usr / local / bin noch nicht vorhanden sind, führen Sie Folgendes aus:

sudo mkdir -p /usr/local/bin

Verknüpfen Sie die Binärdatei, ersetzen Sie (/ Applications) durch den Pfad zu phantomjs.app, falls dieser abweicht:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Jetzt sollten Sie keine Probleme damit haben, Phantomjs von der Kommandozeile aus auszuführen.

Gerry
quelle
+1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
Jose Carlos Ramos Carmenates
3

Kehren Sie zum Stammverzeichnis Ihres Problems zurück. Wenn Sie Phantomjs installieren, können Sie npm verwenden, um es einfacher zu machen.

Wenn Sie das tun, können Sie einfach ausführen:

npm install -g phantomjs-prebuilt

Dadurch wird die Binärdatei im richtigen bin-Verzeichnis installiert. (Das Flag -g zeigt npm an, dass das Paket global installiert werden soll.)

ShaneMit
quelle
0

Während das Verknüpfen der Datei aus einem anderen Verzeichnis funktioniert, ziehe ich es vor, die Datei tatsächlich zu kopieren / zu verschieben usr/local/bin, um sie nicht "zweimal" zu haben.

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
Niko
quelle