Ich versuche, die Frage „Wie füge ich einen Pfad dauerhaft hinzu?“ mit Ubuntu 14.04 zu lösen. Wenn mir ein Programm sagen würde samtools-1.2
, was ich zum Pfad hinzufügen möchte, würde ich Folgendes tun:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
Anschließend zur Überprüfung:
cat ~/.bashrc
Antwort1
Erstellen Sie hierzu eine neue Datei /etc/profiles.d/
mit dem Namen Ihrer Wahl, achten Sie jedoch darauf, dass die Datei .sh
beispielsweise mit ... endet samtools.sh
. Fügen Sie anschließend Folgendes in die Datei ein:
#!/bin/sh
export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2
Anschließend möchten Sie es source /etc/profile
über die Befehlszeile ausführen.
Hinweis: Nach dem Zeichen export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2
fehlt ein Schrägstrich .:
Antwort2
Kürzere Antwort.
Sind Sie also 100% sicher, dass Sie wissen, was Sie hier tun, auch wenn der Befehl funktioniert? Denn meiner Meinung nach ist das Hinzufügen eines Verzeichnisses auf dem Desktop des Benutzerspermanentzum Systempfad scheint mir etwas daneben. So etwas sollte einfach als systemweite Installation installiert werden, sudo make install
nachdem der Quellcode kompiliert wurde.
Vor diesem Hintergrund folgt hier meine Aufschlüsselung dessen, was Sie versuchen, warum es nicht funktioniert, was zur Abhilfe getan werden kann und darüber hinaus – wie ich gerade sagte – warum das keine gute Idee ist.
Längere Antwort.
Erstens bewirkt dieser Befehl nichts:
export PATH=$PATH:home/cmccabe/Desktop/NGS/samtools-1.2 >> .bashrc
Es vermischt einige Konzepte fälschlicherweise.
- Wenn Sie den Befehl zunächst mit starten,
export PATH=
wird lediglich ein neuerPATH
Wert zugewiesen. - Als nächstes ist der Pfad, den Sie hinzufügen, falsch:
home/cmccabe/Desktop/NGS/samtools-1.2
. Er sollte eher lauten/home/cmccabe/Desktop/NGS/samtools-1.2
; beachten Sie den Schrägstrich vor diesem Pfad. - Schließlich
>> .bashrc
ist das einigermaßen richtig, aber was davor passiert, ist so falsch, dass es keine Rolle spielt. Das>>
weist Bash an, das, was davor passiert ist, an anzuhängen.bashrc
. Und da der erste Befehl istexport PATH=
, gibt das nichts aus. Also wird nur.bashrc
eine leere Zeile angehängt. Und das.bashrc
sollte das Home-Verzeichnis Ihres Benutzers sein, also stellen Sie unbedingt das~/
dem Namen voran, wie hier:~/.bashrc
.
DerrealWenn Sie das möchten, würde der Befehl etwa so lauten. Führen Sie ihn aber bitte nicht aus:
echo export PATH=$PATH:/home/cmccabe/Desktop/NGS/samtools-1.2 >> ~/.bashrc
Der Schlüssel hier ist, echo
dass einfach alles, was darauf folgt, in gedruckt wird – ohne darauf zu reagieren .bashrc
. Und dann führen Sie aus source ~/.bashrc
, und wenn Sie ein ausführen, echo $PATH
sollte alles eingestellt sein.
Dennoch scheint das keine gute Idee zu sein.
Dies ist Ihr System, also machen Sie damit, was Sie wollen. Aber wenn man sich ansieht, wassamtools-1.2
ist, das ist nur der Quellcode des Programms. Wenn Sie es kompiliert haben, dannVielleichtdiese PATH-Einstellung /home/cmccabe/Desktop/NGS/samtools-1.2
würde Sinn machen. Aber selbst dann ist der beste Weg, mit Binärdateien umzugehen, sie tatsächlich auf dem System zu installieren, indem man sie über installiert. Dadurch sudo make install
werden alle zugehörigen Dateien an den richtigen Stellen abgelegt und dann einfach die samtools
Binärdatei installiert, in /usr/local/bin
die sie eingefügt wird.sollenSeien Sie bereits ein Teil Ihres WEGES.
Wenn Sie jedoch einfach eine grundlegende Kompilierung durchgeführt haben samtools-1.2
und diese testen möchten, ist es sinnvoll, sie so einzurichten, dass sie auf ein Verzeichnis auf dem Desktop Ihres Benutzers verweist. Abgesehen davon geht es bei Ihrer Frage jedoch umpermanentein Programm zu Ihrem Pfad hinzufügen. Und in diesem Fall würde ichnie empfehlenSie fügen Ihrem PATH jemals dauerhaft ein Verzeichnis auf dem Desktop eines Benutzers hinzu. Das Risiko, etwas auf Ihrem Desktop zu verlieren, ist einfach zu groß.