Чому drush каже "команду не знайдено", коли я намагаюся виконувати віддалені команди? [зачинено]


13

Коли я використовую команду drush, щоб зробити щось на віддаленій машині, я отримую таке повідомлення:

bash: drush: команда не знайдена

В чому проблема?


Як я бачу ваше запитання, мова йде все ж про баш, а не про сам Drupal. Ні про drush, насправді, тому що якщо команда не виконується, це не має значення, буде це drush, дерево, wget чи що. І я пишу це, не бачачи жодної відповіді, моя думка ґрунтується лише на питанні, точно так, як ви запитали.
Молот

@ Mołot: Коли ви дізнаєтесь відповідь (і лише тоді), можливо, це буде здаватися на баш, тому що ви розумієте, що джерело проблеми пов'язане з bash, але перш ніж дізнатися відповідь, схоже, що повідомлення означає "Bash is кажучи, що Друш говорить, що команду не знайдено ". Bash, здається, спочатку несе лише повідомлення від Drush. Звичайно, це не те, що відбувається насправді, але ви цього не знаєте, поки не знаєте відповіді . Тому питання - це питання, яке може мати у користувачів Drupal, про (наскільки вони знають) Друш. Відповідь приносить баш на перший план.
іконоборство

Я навіть не бачив жодної відповіді, коли я розміщував свій коментар вище. Звичайно, у вашому запитанні ви задаєте питання про те, що bash не може знайти команду. Ви цитуєте рядок помилок, де bash повідомляє, що не може знайти барабан. Ви, не будь-який відповідач. Перший мій коментар був у черзі на огляд, і ми навіть не бачимо відповідей. Ми навіть не бачимо, чи є такі.
Молот

Не тільки синтаксис колонок, мабуть, означає, що Баш говорить, що Друш говорить ... , але, що стосується користувача, була видана команда Drush , тому найбільш природно інтерпретувати команду, яку називають команда Drush, а не сама Drush.
іконоборство

1
"Відповідь" = "рішення". "Відповідь! =" Відповідь ". Ви знали рішення, перш ніж прочитати відповіді. Це не буде правдою для всіх. Питання повинні бути класифіковані за змістом питання, а не за змістом відповіді (або" рішенням ", якщо ви вважаю за краще).
іконоборство

Відповіді:


15

Це повідомлення з віддаленої машини скаржиться, що він не розуміє, де знайти drushвиконуваний файл, а не Друш скаржиться, що не може знайти команду (sub), яку ви, можливо, намагаєтесь надати, хоча пунктуація підказує останню. (Якщо bash:означає, що Bash передає вам повідомлення, то це drush:повинно означати те саме - якщо є якась послідовність. Але насправді це означає, що drush:це тема повідомлення, а не джерело повідомлення, яке передається bash:вам. Це було б бути чіткішим, якщо другого :було видалено.)

Запишіть журнали у віддалену машину через ssh, але це не звичайний інтерактивний логін, тому він не джерело .bash_profile. Однак він джерело файлу .bashrc.

Додайте шлях drush (не враховуючи самого drush, просто включаючи каталог, що містить drush) до змінної PATH у вашому віддаленому .bashrc, і все повинно бути добре. Наприклад, це може виглядати приблизно так:

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

8
Також зверніть увагу на наступне в ваш ~ / .bashrc: [ -z "$PS1" ] && return. Деякі платформи використовують це для вирішення проблем, якщо вони працюють в неінтерактивному режимі. Наприклад, Ubuntu ставить це у свій початковий .bashrc. Якщо ви встановите свій PATH, вам потрібно переконатися, що ви встановили його перед будь-якими умовними умовами, такими як ця, яка може змусити швидкий вихід.
greg_1_anderson

3
Дякуємо за відповідь та коментар. Мені довелося відредагувати шлях .bashrcдо рядка # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacна Ubuntu 14.04
Shaun Dychko
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.