Почему drush говорит «команда не найдена», когда я пытаюсь выполнить удаленные команды? [закрыто]


13

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

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

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


То, как я вижу ваш вопрос, это все-таки о bash, а не о самом Drupal. На самом деле, ни о drush, потому что, если команда не выполняется, не имеет значения, является ли она командой drush, tree, wget или чем. И я пишу это, не видя никаких ответов, мое мнение основано только на вопросе, как вы и просили.
Молот

@ Молот: Когда вы знаете ответ (и только тогда), это может показаться, что речь идет о bash, потому что вы понимаете, что источником проблемы является bash, но прежде чем вы знаете ответ, похоже, что сообщение означает «Bash говоря, что Drush говорит, что команда не найдена ". Первоначально, похоже, Bash несет сообщение от Drush. Конечно, это не то, что происходит на самом деле, но вы не узнаете об этом, пока не узнаете ответ . Таким образом, вопрос - это вопрос, который может возникнуть у пользователя Drupal о (насколько они знают) о Drush. Ответ приносит баш на первый план.
иконоборчество

Я даже не видел никакого ответа, когда разместил свой комментарий выше. В вашем вопросе ясно, что вы спрашиваете, что bash не может найти команду. Вы цитируете строку ошибки, где bash сообщает, что не может найти drush. Вы, а не любой ответчик. Мой первый комментарий был в очереди на просмотр, и мы даже не видим там ответов. Мы даже не видим , есть ли они.
Молот

Не только синтаксис двоеточий, кажется, подразумевает, что Bash говорит, что Drush говорит ... , но что касается пользователя, была введена команда Drush , поэтому наиболее естественно интерпретировать команду, которая упоминается как команда Drush, а не сама Drush.
иконоборчество

1
«Ответить» = «решение». "Ответить! =" Ответить ". Вы знали решение до того, как прочитали какие-либо ответы. Это не будет правдой для всех. Вопросы должны классифицироваться по содержанию вопроса, а не по содержанию ответа (или" решения ", если вы предпочитаю).
иконоборца

Ответы:


15

Это сообщение от удаленного компьютера, в котором он жалуется, что не понимает, где найти drushисполняемый файл, а не в Drush, который жалуется, что не может найти (под) команду, которую вы, возможно, пытаетесь дать, хотя пунктуация указывает на последнее. (Если 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
Шон Дычко
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.