Tại sao drush nói rằng lệnh không tìm thấy tên lửa khi tôi cố gắng thực hiện các lệnh từ xa? [đóng cửa]


14

Khi tôi sử dụng lệnh drush để làm gì đó trên máy từ xa, tôi nhận được thông báo sau:

bash: drush: lệnh không tìm thấy

Có vấn đề gì vậy?


Cách tôi nhìn thấy câu hỏi của bạn, nó vẫn là về bash, không phải bản thân Drupal. Thực sự cũng không phải về drush, bởi vì nếu lệnh không được thực thi, thì nó không thành vấn đề nếu đó là drush, cây, wget hay gì. Và tôi viết nó mà không thấy bất kỳ câu trả lời nào, ý kiến ​​của tôi chỉ dựa trên câu hỏi, giống như bạn hỏi.
Mołot

@ Mołot: Một khi bạn biết câu trả lời (và chỉ sau đó) có vẻ như là về bash, bởi vì bạn nhận ra rằng nguồn gốc của vấn đề là với bash, nhưng trước khi bạn biết câu trả lời, có vẻ như thông báo có nghĩa là "Bash là nói rằng Drush đang nói rằng lệnh không được tìm thấy ". Bash xuất hiện ban đầu chỉ mang thông điệp từ Drush. Tất nhiên đó không phải là những gì đang thực sự xảy ra, nhưng bạn không biết điều đó cho đến khi bạn biết câu trả lời . Các câu hỏi do đó là một câu hỏi mà một người sử dụng Drupal có thể có, về (như xa như họ biết) Drush. Câu trả lời đưa Bash lên hàng đầu.
iconoclast

Tôi thậm chí không thấy có câu trả lời nào khi tôi đăng bình luận của tôi ở trên. Thật rõ ràng trong câu hỏi của bạn rằng bạn đang hỏi về bash không thể tìm thấy lệnh. Bạn trích dẫn dòng lỗi trong đó bash báo cáo rằng nó không thể tìm thấy drush. Bạn, không phải bất kỳ người trả lời. Nhận xét đầu tiên của tôi là trong hàng đánh giá và chúng tôi thậm chí không thấy câu trả lời ở đó. Chúng tôi thậm chí không nhìn thấy nếu có bất kỳ.
Mołot

Cú pháp của dấu hai chấm dường như không chỉ ám chỉ Bash đang nói rằng Drush đang nói ... , nhưng theo như người dùng quan tâm, một lệnh Drush đã được ban hành, do đó, việc diễn giải lệnh được nhắc đến là điều tự nhiên nhất lệnh Drush, chứ không phải Drush.
iconoclast

1
"Trả lời" = "giải pháp". "Trả lời! =" Trả lời ". Bạn đã biết giải pháp trước khi đọc bất kỳ câu trả lời nào. Điều đó sẽ không đúng với mọi người. Câu hỏi phải được phân loại theo nội dung của câu hỏi không phải là nội dung của câu trả lời (hoặc" giải pháp "nếu bạn thích).
iconoclast

Câu trả lời:


15

Thông báo này là từ máy từ xa phàn nàn rằng nó không hiểu nơi nào có thể drushthực thi được, không phải Drush phàn nàn rằng nó không thể tìm thấy lệnh (phụ) mà bạn có thể đang cố gắng đưa ra, mặc dù dấu câu gợi ý cái sau. (Nếu bash:có nghĩa Bash đang gửi cho bạn một tin nhắn, thì nó drush:cũng có nghĩa tương tự - nếu có bất kỳ sự thống nhất nào. Nhưng thực ra nó có ý nghĩa drush:là chủ đề của tin nhắn, không phải là nguồn của tin nhắn được truyền bash:cho bạn. Nó sẽ rõ ràng hơn nếu cái thứ hai :bị loại bỏ.)

Drush đăng nhập vào máy từ xa của bạn qua ssh, nhưng đó không phải là thông tin đăng nhập tương tác thông thường, vì vậy nó không cung cấp nguồn .bash_profile. Tuy nhiên, nó có nguồn tệp .bashrc.

Thêm đường dẫn drush (không bao gồm chính drush, chỉ bao gồm thư mục chứa drush) vào biến PATH trong .bashrc từ xa của bạn và tất cả đều ổn. Ví dụ, có thể trông như thế này:

PATH=$PATH:/usr/local/zend/bin

8
Ngoài ra, hãy chú ý những điều sau trong ~ / .bashrc : [ -z "$PS1" ] && return. Một số nền tảng sử dụng điều này để bảo lãnh nếu chạy trong chế độ không tương tác. Ubuntu, ví dụ, đặt điều này trong .bashrc ban đầu của bạn. Nếu bạn đặt PATH của mình, bạn cần đảm bảo rằng bạn đã đặt nó trước bất kỳ điều kiện nào, chẳng hạn như điều này có thể buộc phải thoát ra sớm.
greg_1_anderson

3
Cảm ơn câu trả lời và bình luận. Tôi đã phải chỉnh sửa đường dẫn .bashrctrước dòng # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esactrên Ubuntu 14.04
Shaun Dychko
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.