Nie można wykonać poleceń terminalu: „polecenie„ sudo ”jest dostępne w„ / usr / bin / sudo ””

13

Używam Ubuntu 12.04 od dłuższego czasu i nigdy nie miałem problemu, żeby wpadł na mnie tak niespodziewanie. Próbuję zainstalować Python 3.2 w moim systemie Ubuntu i za każdym razem, gdy uruchamiam kod w celu skompilowania źródła Pythona, pojawia się ten błąd:

'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'

Próbowałem także uruchomić gksudopolecenie, aby zobaczyć, co pokazuje moje środowisko, ale prawie ten sam błąd występuje.

użytkownik188283
źródło
Założę się, że prawdopodobnie ten sam błąd wystąpi podczas próby uruchomienia aplikacji za pomocą wiersza polecenia. Jaka jest wydajność cat /etc/environment?
Alaa Ali,
Czy możesz nam powiedzieć, jaki program próbujesz uruchomić? Niektóre programy zmieniają zmienną PATH, ale bez nazwy nie moglibyśmy być pewni.
Braiam

Odpowiedzi:

24

Jak mówi błąd, należy dodać /usr/binkatalog do zmiennej środowiskowej PATH. Aby to zrobić, uruchom następującą komendę w terminalu:

export PATH=$PATH:/usr/bin

Po użyciu sudomożesz edytować /etc/environmentplik, aby zmienić na stałe, więc uruchom go w terminalu:

sudo nano /etc/environment

aby edytować plik. Upewnij się, że ścieżka wygląda mniej więcej tak:

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

Zapisz i zamknij plik za pomocą Ctrl+ Xi naciśnij, Ygdy pojawi się monit.

Zobacz także: Jak dodać katalog do ŚCIEŻKI?

Radu Rădeanu
źródło
To jednak nie jest trwałe, prawda? Jeśli zrestartuje się, zniknie ponownie.
Alaa Ali,
1
Tak. Stałe ustawienia swojej użytkownik prawdopodobnie w ~/.profile, ~/.bashrc, ~/.pam_environmentlub ~/.xsessionrc. Ustawienia dla wszystkich użytkowników są prawdopodobnie w /etc/profile, /etc/profile.d/*, /etc/environment, /etc/bash/bashrc, /etc/lightdm/xsession. Prawdopodobnie jeden z plików użytkownika zastępuje domyślne ustawienia systemowe. Jeśli masz włączonego innego użytkownika lub konto gościa, spróbuj z drugim użytkownikiem i sprawdź, czy problem istnieje również dla tego innego użytkownika. Jeśli nie, sprawdź własne pliki skryptów uruchamiania.
soulsource
1
Działa idealnie. Dziękuję Ci bardzo! Ale czy możesz dodać więcej informacji o tym, jak wprowadzić tę zmianę na stałe? Z góry dziękuję.
OscaRoCa
Mam ten błąd: MY_USER_NAME nie znajduje się w pliku sudoers. Ten incydent zostanie zgłoszony. , Nie jestem administratorem .. co muszę zrobić ..
Ghanem,
6

Mam problem i naprawiłem go, edytując mój plik .bashrc

  1. Otwórz plik .bashrc za pomocą nano

    $ sudo nano ~/.bashrc
    
  2. Dodaj następujący wiersz do pliku bashrc

    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:   /usr/local/games"
    
  3. Naciśnij Ctrl + X, aby zapisać plik

  4. Poprosi o zmianę pliku, naciśnij y i Enter

Jesteś skończony.

użytkownik3721406
źródło
1
Nie manipuluj plikami w katalogu domowym ( ~) przy użyciu sudo. Może stworzyć więcej problemów niż może rozwiązać.
Melebius
1

Gdy chcesz dodać nową wartość do PATHzmiennej systemowej, najprawdopodobniej dodajesz nową linię ~/.bashrclub ~/.bash_profilepliki.

Na przykład, jeśli chcesz dodać /opt/netbeans/bindo PATH, należy dodać tę linię na końcu ~/.bashrcpliku:

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

Przełammy tę linię.

  • export PATH- Tutaj odnosimy się do PATHzmiennej
  • =- Chcemy przypisać mu nową wartość za pomocą =operatora (reszta ciągu to wartość, która zostanie zapisana w PATH)
  • $PATH- Przypisujemy zmienną PATHdo wartości, która była w zmiennej przed bieżącym poleceniem
  • : - Dodajemy separator dla nowej wartości
  • /opt/netbeans/bin - I dodaj nową wartość do PATH

Musisz zobaczyć wszystkie swoje odwołania do PATHzmiennej w plikach ~/.bashrclub ~/.bash_profilei upewnić się, że rozwinąłeś -

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

i nie nadpisuj w ten sposób -

export PATH=/opt/netbeans/bin

PATHzmienna

Musisz upewnić się, w każdym odwołaniu do PATHużytego $PATH:i dodatkowej wartości po nim


Jeśli to nie działa, możesz zrobić coś takiego:

  • Upewnij się, że istnieje coś takiego jak następna zmienna w /etc/environmentpliku i nigdy nie została przedefiniowana w tym pliku:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
  • Dodaj brakujące ścieżki z powyższej PATHzmiennej do PATHzmiennej znajdującej się w/etc/environment

Przed testowaniem po każdej zmianie plików nie pamiętaj o aktualizacji konfiguracji.

Na przykład dla ~/.bashrcpliku:

source `~/.bashrc`
fedotsoldier
źródło