Programm in Ubuntu 14.04 dauerhaft zum Pfad hinzufügen

Programm in Ubuntu 14.04 dauerhaft zum Pfad hinzufügen

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 .shbeispielsweise 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.2fehlt 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 installnachdem 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 neuer PATHWert 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 >> .bashrcist 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 ist export PATH=, gibt das nichts aus. Also wird nur .bashrceine leere Zeile angehängt. Und das .bashrcsollte 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, echodass 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 $PATHsollte 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.2ist, das ist nur der Quellcode des Programms. Wenn Sie es kompiliert haben, dannVielleichtdiese PATH-Einstellung /home/cmccabe/Desktop/NGS/samtools-1.2wü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 installwerden alle zugehörigen Dateien an den richtigen Stellen abgelegt und dann einfach die samtoolsBinärdatei installiert, in /usr/local/bindie sie eingefügt wird.sollenSeien Sie bereits ein Teil Ihres WEGES.

Wenn Sie jedoch einfach eine grundlegende Kompilierung durchgeführt haben samtools-1.2und 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ß.

verwandte Informationen