Например, если вы выполняете следующие команды:
drush dl views
drush en views views_ui views_export
При попытке включить модули представлений вы получите следующую ошибку:
Представления модулей не могут быть включены, потому что это зависит от следующих модулей, которые не могут быть найдены: ctools
Есть ли способ получить необходимую загрузку зависимостей модуля?
drush en -y
автоматически загружают и включают зависимости.Ответы:
Drush 5 и выше:
Более новые версии Drush (версия 5 и выше) спросят вас, хотите ли вы загрузить необходимые зависимости при включении (
drush en
) модуля. Он также спросит, хотите ли вы загрузить сам модуль, если вы его еще не загрузили. В сочетании с опцией "-y" (напримерdrush en views -y
), все будет загружено и включено автоматически, не задавая дополнительных вопросов.Обратите внимание, что автоматическая загрузка зависимостей может завершиться неудачей, если имя требуемого модуля не совпадает с именем его проекта на drupal.org. Для получения дополнительной информации см. Мой оригинальный ответ на Drush 4 ниже.
Оригинальный ответ (Drush 4):
Нет, это невозможно сделать. Проблема в том, что существует разница между модулем и проектом. Часто (но не всегда) название проекта совпадает с модулем (или одним из модулей), содержащимся в проекте. Один проект (например, Views) может содержать несколько модулей (views, views_ui, views_export). Пока
drush dl
загружает проект ,drush en
включает модуль .Когда модуль объявляет зависимости, он объявляет зависимости от модулей, а не проектов. При выполнении
drush en
Drush может проверить, доступен ли необходимый модуль. Однако, если он недоступен, у Drush нет возможности узнать, какой проект загрузить. Чтобы Drush мог автоматически загружать необходимые проекты, необходимо выполнить работу в базовой инфраструктуре проектов / модулей, чтобы Drush мог получить сопоставление проектов и модулей. См. Также более разумное обращение с отсутствующими зависимостями .источник
На самом деле, drush5 (все еще в разработке) имеет карту известных общих зависимостей (content.module, ctools, ...). Так что он действительно загружает ctools для вас в вашем примере.
источник
это больше не проблема, поскольку последние версии drush делают это «автоматически»:
источник
Некоторые модули или проекты включают скрипт drush make , который может загружать зависимости и устанавливать внешние библиотеки.
Однако в большинстве случаев это не так, и есть проблемы с вложением скриптов drush make. Это все еще стоит посмотреть с некоторыми из модулей, которые более сложны в настройке.
источник
Попробуйте модуль быстрого обновления . Он загрузит все недостающие проекты зависимостей для вас.
Вот цитата об этом (со страницы проекта модуля):
источник