Terminalbefehle können nicht ausgeführt werden: "Der Befehl 'sudo' ist in '/ usr / bin / sudo' verfügbar."

12

Ich benutze Ubuntu 12.04 schon eine ganze Weile und hatte noch nie ein Problem, wie ich aus heiterem Himmel auf mich zukam. Ich versuche, Python 3.2 auf meinem Ubuntu-System zu installieren. Jedes Mal, wenn ich den Code zum Kompilieren der Python-Quelle ausführe, wird folgende Fehlermeldung angezeigt:

'Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
sudo: command not found'

Ich habe auch versucht, einen gksudoBefehl auszuführen, um anzuzeigen, was meine Umgebung anzeigt, aber ich erhalte fast den gleichen Fehler.

user188283
quelle
Ich wette, Sie werden wahrscheinlich den gleichen Fehler erhalten, wenn Sie versuchen, Ihre Anwendungen über die Befehlszeile auszuführen. Was ist die Ausgabe von cat /etc/environment?
Alaa Ali
Können Sie uns sagen, welches Programm Sie ausführen möchten? Einige Programme ändern die Variable PATH, aber ohne den Namen könnten wir nicht sicher sein.
Braiam

Antworten:

23

Wie der Fehler sagt, sollten Sie /usr/binIhrer Umgebungsvariablen PATH ein Verzeichnis hinzufügen . Führen Sie dazu den folgenden Befehl im Terminal aus:

export PATH=$PATH:/usr/bin

Nachdem Sie verwenden können sudo, können Sie die /etc/environmentDatei bearbeiten , um die Änderung dauerhaft zu machen. Führen Sie sie daher im Terminal aus:

sudo nano /etc/environment

um die Datei zu bearbeiten. Stellen Sie sicher, dass der Pfad ungefähr so ​​lautet:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Speichern und schließen Sie die Datei mit Ctrl+ Xund drücken YSie, wenn Sie dazu aufgefordert werden.

Siehe auch: Wie füge ich dem PATH ein Verzeichnis hinzu?

Radu Rădeanu
quelle
Das ist aber nicht dauerhaft, oder? Wenn er neu startet, wird es wieder verschwinden.
Alaa Ali
1
Ja. Die permanenten Einstellungen für Ihre Benutzer sind wahrscheinlich in ~/.profile, ~/.bashrc, ~/.pam_environmentoder ~/.xsessionrc. Einstellungen für alle Benutzer sind wahrscheinlich in /etc/profile, /etc/profile.d/*, /etc/environment, /etc/bash/bashrc, /etc/lightdm/xsession. Wahrscheinlich überschreibt eine Ihrer Benutzerdateien die systemweiten Standardeinstellungen. Wenn Sie einen anderen Benutzer oder das Gastkonto aktiviert haben, versuchen Sie es mit dem anderen Benutzer und prüfen Sie, ob das Problem auch für diesen anderen Benutzer besteht. Wenn nicht, überprüfen Sie die Startskriptdateien Ihrer eigenen Benutzer.
Seelenquelle
1
Es hat perfekt funktioniert. Vielen Dank! Aber können Sie bitte weitere Informationen hinzufügen, wie Sie diese Änderung dauerhaft vornehmen können? Danke im Voraus.
OscaRoCa
Ich habe diesen Fehler erhalten: MY_USER_NAME befindet sich nicht in der sudoers-Datei. Dieser Vorfall wird gemeldet. , Ich bin nicht der Administrator .. was ich zu tun habe ..
Ghanem
6

Ich habe das Problem behoben und es durch Bearbeiten meiner .bashrc-Datei behoben

  1. Öffnen Sie Ihre .bashrc-Datei mit nano

    $ sudo nano ~/.bashrc
    
  2. Fügen Sie der bashrc-Datei die folgende Zeile hinzu

    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:   /usr/local/games"
    
  3. Drücken Sie Strg + X, um die Datei zu speichern

  4. Sie werden aufgefordert, die Datei zu ändern, drücken Sie y und die Eingabetaste

Sie sind fertig.

user3721406
quelle
1
Bearbeiten Sie keine Dateien in Ihrem Home-Verzeichnis ( ~) mit sudo. Es kann mehr Probleme verursachen als lösen.
Melebius
1

Wenn Sie der PATHSystemvariablen einen neuen Wert hinzufügen möchten, fügen Sie höchstwahrscheinlich eine neue Zeile zu ~/.bashrcoder hinzu~/.bash_profile Dateien hinzu.

Zum Beispiel, wenn Sie hinzufügen möchten /opt/netbeans/binzu können PATH, müssen Sie diese Zeile zu Ende hinzufügen ~/.bashrcDatei:

export PATH=$PATH:/opt/netbeans/bin

Lassen Sie uns diese Zeile aufschlüsseln.

  • export PATH - Hier beziehen wir uns auf die PATH Variable
  • =- Wir möchten ihm mit dem Operator einen neuen Wert zuweisen =(Der Rest der Zeichenfolge ist der Wert, der im gespeichert wird PATH).
  • $PATH- Wir weisen die Variable PATHdem Wert zu , der sich vor dem aktuellen Befehl in der Variablen befand
  • : - Wir fügen ein Trennzeichen für den neuen Wert hinzu
  • /opt/netbeans/bin - Und fügen Sie dem einen neuen Wert hinzu PATH

Sie müssen alle Ihre Verweise auf die PATHVariable in den Dateien ~/.bashrcoder sehen ~/.bash_profileund sicherstellen, dass Sie erweitern -

export PATH=$PATH:/opt/netbeans/bin

und nicht so überschreiben -

export PATH=/opt/netbeans/bin

die PATHVariable

Sie müssen in jedem Verweis auf das von PATHIhnen verwendete $PATH:und Ihren zusätzlichen Wert danach sicherstellen


Wenn es nicht funktioniert, können Sie Folgendes tun:

  • Stellen Sie sicher, dass es so etwas wie die nächste Variable in der /etc/environmentDatei gibt, die in dieser Datei nie neu definiert wurde:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
  • Fügen Sie fehlende Pfade aus der obigen PATHVariablen zu Ihrer PATHVariablen in der hinzu/etc/environment

Denken Sie vor dem Testen nach jeder Änderung der Dateien nicht daran, Ihre Konfigurationen zu aktualisieren.

Zum Beispiel für ~/.bashrcDatei:

source `~/.bashrc`
Fedotsoldier
quelle