Không thể thực thi các lệnh đầu cuối: Hồi giáo lệnh 'sudo' có sẵn trong '/ usr / bin / sudo' '


12

Tôi đã sử dụng Ubuntu 12.04 khá lâu và chưa bao giờ gặp sự cố nào xảy ra với tôi như thế này. Tôi đang cố gắng cài đặt python 3.2 trên hệ thống Ubuntu của mình và mỗi lần chạy mã để biên dịch nguồn python, tôi gặp lỗi này:

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

Tôi cũng đã thử chạy gksudolệnh để xem những gì môi trường của tôi hiển thị nhưng tôi gặp khá nhiều lỗi tương tự.


Tôi cá là bạn có thể sẽ gặp lỗi tương tự khi bạn cố chạy các ứng dụng của mình thông qua dòng lệnh. Đầu ra của cat /etc/environmentcái gì?
Alaa Ali

Bạn có thể cho chúng tôi biết chương trình nào bạn đang cố gắng thực hiện? Một số chương trình thay đổi biến PATH, nhưng không có tên, chúng tôi không thể chắc chắn.
Braiam

Câu trả lời:


24

Như lỗi nói, bạn nên thêm /usr/binthư mục vào biến môi trường PATH của bạn. Để thực hiện việc này, hãy chạy lệnh sau trong terminal:

export PATH=$PATH:/usr/bin

Sau khi bạn có thể sử dụng sudo, bạn có thể chỉnh sửa /etc/environmenttệp để thay đổi vĩnh viễn, vì vậy, hãy chạy trong thiết bị đầu cuối:

sudo nano /etc/environment

để chỉnh sửa tập tin. Hãy chắc chắn rằng đường dẫn là như thế này:

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

Lưu và đóng tệp bằng Ctrl+ Xvà nhấn Ykhi bạn được yêu cầu.

Xem thêm: Làm thế nào để thêm một thư mục vào PATH?


Điều này không phải là vĩnh viễn, phải không? Nếu anh ta khởi động lại, nó sẽ biến mất một lần nữa.
Alaa Ali

1
Đúng. Các thiết lập vĩnh viễn cho người dùng của bạn có lẽ trong ~/.profile, ~/.bashrc, ~/.pam_environmenthoặc ~/.xsessionrc. Cài đặt cho tất cả người dùng có lẽ trong /etc/profile, /etc/profile.d/*, /etc/environment, /etc/bash/bashrc, /etc/lightdm/xsession. Có thể một trong các tệp người dùng của bạn ghi đè cài đặt toàn hệ thống mặc định. Nếu bạn có người dùng khác hoặc tài khoản khách được bật, hãy thử với người dùng khác và xem liệu vấn đề có tồn tại cho người dùng khác đó không. Nếu không, hãy kiểm tra tập tin khởi động tập tin người dùng của riêng bạn.
soulsource

1
Nó hoạt động hoàn hảo. Cảm ơn rât nhiều! Nhưng, bạn có thể vui lòng thêm thông tin về cách thực hiện thay đổi này không? Cảm ơn trước.
OscaraRoCa

Tôi đã gặp lỗi này: MY_USER_NAME không có trong tệp sudoers. Sự cố này sẽ được báo cáo. , Tôi không phải là quản trị viên .. những gì tôi phải làm ..
Ghanem

6

Tôi đã gặp sự cố và khắc phục bằng cách chỉnh sửa tệp .bashrc của mình

  1. Mở tệp .bashrc của bạn bằng nano

    $ sudo nano ~/.bashrc
    
  2. Thêm dòng sau vào tệp bashrc

    export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:   /usr/local/games"
    
  3. Nhấn Ctrl + X để lưu tệp

  4. Nó sẽ yêu cầu chnage tập tin, nhấn y và Enter

Bạn đã hoàn tất.


1
Không thao tác các tệp trong thư mục chính của bạn ( ~) bằng cách sử dụng sudo. Nó có thể tạo ra nhiều vấn đề hơn nó có thể giải quyết.
Melebius

1

Khi bạn muốn thêm một giá trị mới vào PATHbiến hệ thống, rất có thể bạn sẽ thêm một dòng mới vào ~/.bashrchoặc ~/.bash_profiletệp.

Ví dụ: nếu bạn muốn thêm /opt/netbeans/binvào PATH, bạn phải thêm dòng này vào cuối ~/.bashrctệp:

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

Hãy phá vỡ dòng này xuống.

  • export PATH- Ở đây chúng tôi đề cập đến các PATHbiến
  • =- Chúng tôi muốn gán cho nó một giá trị mới bằng =toán tử (Phần còn lại của chuỗi là giá trị sẽ được lưu trữ trong PATH)
  • $PATH- Chúng tôi gán biến PATHcho giá trị nằm trong biến trước lệnh hiện tại
  • : - Chúng tôi thêm một dấu phân cách cho giá trị mới
  • /opt/netbeans/bin - Và thêm một giá trị mới cho PATH

Bạn phải xem tất cả các tham chiếu của bạn đến PATHbiến trong ~/.bashrchoặc ~/.bash_profiletệp và đảm bảo rằng bạn mở rộng -

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

không ghi đè như thế này -

export PATH=/opt/netbeans/bin

các PATHbiến

Bạn phải chắc chắn, trong mọi tham chiếu đến việc PATHbạn sử dụng $PATH:và giá trị bổ sung của bạn sau nó


Nếu nó không hoạt động, bạn có thể làm một cái gì đó như thế này:

  • Hãy chắc chắn rằng, có một cái gì đó giống như biến tiếp theo trong /etc/environmenttệp và nó không bao giờ được định nghĩa lại trong tệp này:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
  • Thêm các đường dẫn bị thiếu từ PATHbiến trên vào biến của bạn PATHnằm trong/etc/environment

Trước khi kiểm tra sau mỗi thay đổi trong tệp, đừng nhớ cập nhật cấu hình của bạn.

Ví dụ cho ~/.bashrctập tin:

source `~/.bashrc`
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.