Alt + F2 (Chạy ứng dụng) không hoạt động cho các lệnh tùy chỉnh


12

Để tăng tốc độ phát triển Android, tôi đã chỉnh sửa ~/.bashrcđể thêm một số đường dẫn tới PATH:

export PATH=${PATH}:/opt/android-sdk/tools:/opt/android-sdk/platform-tools

Điều này chỉ hoạt động tốt từ dòng lệnh (Tôi chỉ có thể nhập androidvà bất kể tôi đang ở đâu, SDK Android và Trình quản lý AVD sẽ khởi động tốt.

Tuy nhiên, nếu tôi cố gắng gõ androidvào Alt+F2hộp thoại (Chạy ứng dụng), nó sẽ báo lỗi sau:

Không thể mở tệp 'vị trí: /// home / felix / android'

Lỗi cho biết tệp '/ home / felix / android': Không có tệp hoặc thư mục như vậy

Tại sao vậy? Có gì PATHviệc sử dụng hộp thoại Run Application không?

Câu trả lời:


11

Tôi giả sử rằng bashrcGnome không được đọc và tại sao lại như vậy, vì đây là tệp cấu hình cho bash.

Tôi xác định con đường của tôi trong ~/.profile. Tập tin này chắc chắn được đọc bởi môi trường Gnome và XFCE và những người khác cũng nên đọc. (Nhưng nó chỉ được đọc khi đăng nhập, vì vậy bạn phải đăng xuất và quay lại bất kỳ thay đổi nào để có hiệu lực!)


Tôi đã chuyển PATH=câu lệnh sang ~/.profilevà nó hoạt động cả trong Alt + F2 và một thiết bị đầu cuối. Cảm ơn.
Felix

Trong trường hợp của tôi, tôi không thể tìm ra cách tạo phiên X để bắt đầu với vỏ đăng nhập để nó sẽ đọc ~/.profile, vì vậy tôi phải thay đổi / bin / sh để trỏ đến / bin / dash
elias

1
Xin chào, đây là Gnome 3.30.1 đang nói và cài đặt PATH ~/.profilekhông hoạt động nữa. Có bất kỳ bản cập nhật về điều này?
iago-lito

2

~/.bashrcđược bao gồm ~/.profiletheo mặc định. Thư mục ~/binđược thêm vào PATHtheo mặc định quá. Tạo ~/binthư mục và thêm sym-links ( ln -s) vào các ứng dụng bạn định sử dụng hoặc sửa đổi ~/.bashrc.

Nội dung mặc định của các tệp được đề cập có thể được tìm thấy trong /etc/skel- được sử dụng trong khi tạo tài khoản mới và thư mục chính của chúng.


1
Có, nếu .profileđang được thực thi bởi a bash! Việc kiểm tra có điều kiện để $BASH_VERSIONđược xác định, điều mà Gnome sẽ không làm. Và nhân tiện, loại bỏ điều kiện sẽ dẫn đến các vấn đề với một số môi trường máy tính để bàn, chẳng hạn như LXDE.
Carsten Thiel

0

Tôi gặp vấn đề tương tự với Linux Mint (Cinnamon 2.8.8) và không có cách nào tôi có thể làm cho nó hoạt động với các bản sửa lỗi thông thường (sử dụng một .profile, thay đổi Xsessionshebang thành /bin/sh -l).

Vấn đề là /bin/sh, thường là một liên kết tượng trưng để /bin/dashđọc ~/.profilenếu đó là vỏ đăng nhập (nghĩa là được cung cấp -ltùy chọn).

Bạn có thể kiểm tra xem với strace:

$ strace -e open dash
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/dev/tty", O_RDWR)                = 3
$ ^D
+++ exited with 0 +++
$ strace -e open dash -l
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/dev/tty", O_RDWR)                = 3
open("/etc/profile", O_RDONLY)          = 3
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=12260, si_status=0, si_utime=0, si_stime=0} ---
open("/etc/profile.d/Z97-byobu.sh", O_RDONLY) = 3
open("/etc/profile.d/bash_completion.sh", O_RDONLY) = 3
open("/etc/profile.d/vte.sh", O_RDONLY) = 3
open("/home/elias/.profile", O_RDONLY)  = 3
$ ^D
+++ exited with 0 +++

Tôi không thể tìm ra kịch bản nào cần thay đổi (đã thử một loạt chúng trong / etc / X11 và / etc / mdm), nhưng không gặp may.

Vì vậy, tôi đã ném chiếc khăn và thay đổi /bin/shđể chỉ /bin/bashthay vì /bin/dashvà nó đang hoạt động. :)

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.