Frage Fehler beim Ausführen des Befehls export PATH = / nsm / bro / bin: $ PATH


Ich möchte BRO-IDS installieren.

Ich habe folgende Befehle ausgeführt:

cd bro-2.2
./configure --prefix=/nsm/bro
make
make install

Wenn ich diesen Befehl ausführe:

export PATH=/nsm/bro/bin:$PATH

Es funktioniert nicht. Ist es richtig? Wie führe ich diesen Befehl aus?

Sie können auch PATH = / opt / bro2 / bin: $ PATH zu Ihrer ~ / .profile-Datei in Ihrem Home-Verzeichnis hinzufügen, um die Änderung dauerhaft zu machen.

Ich bekomme diesen Fehler, wenn ich Folgendes versuche:

root@ubuntu:/home/eng-it/bro-2.2# ~/.profile
bash: /root/.profile: Permission denied

und das:

root@ubuntu:/home/eng-it/bro-2.2# sudo su -c "echo 'PATH=/opt/bro2/bin:$PATH'>>/etc/profile

Funktioniert nicht. Ist es richtig?


1
2017-08-28 08:08


Ursprung


Was bedeutet "nicht betriebsbereit"? Meinst du, dass es nicht funktioniert? - Zanna


Antworten:


Dein erstes Kommando export PATH=/nsm/bro/bin:$PATH ist in der Theorie gültig, obwohl es nicht empfohlen wird, den Pfad voranzustellen - Sie sollten stattdessen anhängen (an das Ende hinzufügen).

Hast du das überprüft? /nsm/bro/bin existiert und enthält die Dateien, die Sie ausführen möchten?

Außerdem würde der Befehl nur die aktuelle Shell-Sitzung betreffen; Der PATH wird von keiner anderen Shell beeinflusst (wenn Sie also ein neues Terminal öffnen, wird der PATH den Zusatz nicht enthalten).

root@ubuntu:/home/eng-it/bro-2.2# ~/.profile
bash: /root/.profile: Permission denied

Dies geschieht, weil Sie versuchen, eine Datei auszuführen /root/.profile welches entweder nicht existiert oder keine Ausführungsberechtigung hat.

Wenn Sie root sind, dann führt der Pfad ~ / .profile nicht zu Ihrem .profile, denn ~ Die Erweiterung erfolgt in Bezug auf den aktuellen Benutzer. Wechseln Sie zu Ihrem normalen Benutzer und dann tun

nano ~/.profile

Und dann füge die gewünschten Zeilen hinzu, speichere und beende.

Dieser Befehl scheint gültig zu sein (obwohl nicht ratsam)

root@ubuntu:/home/eng-it/bro-2.2# sudo su -c "echo 'PATH=/opt/bro2/bin:$PATH'>>/etc/profile"

sudo su -c ist redundant, da Sie bereits root sind (warum sind Sie root? Sie sollten dies vermeiden, es sei denn, absolut notwendig). Da Sie jedoch das Programm unter installiert haben /nsm/bro entsprechend deinem ./configure Präfix-Flag, ich sehe nicht, warum hinzufügen /opt/bro2/bin zum PATH würde helfen.

Selbst wenn dieser Pfad korrekt ist, müssen Sie sich abmelden und erneut anmelden, um Änderungen vorzunehmen .profile oder /etc/profile wirksam werden. Um sie sofort zu beziehen, können Sie eine Login-Shell starten, indem Sie eingeben bash -loder Sie können die Datei bearbeiten, die Sie bearbeitet haben source /etc/profile

jedochEs wird nicht empfohlen, Dinge hinzuzufügen /etc/profile - Sie sollten eine Datei erstellen /etc/profile.doder geben Sie die Variable lokal für Ihren Benutzer an ~/.profile.

Angenommen, die Dateien, die Sie ausführen möchten, sind tatsächlich in /nsm/bro/bin, als normaler Benutzer (nicht root) könnten Sie tun

echo 'PATH=$PATH:/nsm/bro/bin' >> ~/.profile

oder wenn Sie es wirklich global einstellen möchten

sudo bash -c 'echo 'PATH=$PATH:/nsm/bro/bin' > /etc/profile.d/path.sh'

und dann abmelden und wieder einloggen.


2
2017-08-28 09:42