it-swarm-es.com

¿Hay alguna manera de hacer que Crush descargue todas las dependencias requeridas para un módulo específico?

Por ejemplo, si realiza los siguientes comandos:

drush dl views
drush en views views_ui views_export

Recibirá el siguiente error cuando intente habilitar los módulos de vistas:

Las vistas de módulo no se pueden habilitar porque depende de los siguientes módulos que no se pudieron encontrar: ctools

¿Hay alguna manera de obtener drush para descargar las dependencias del módulo requeridas?

20
Camsoft

Drush 5 y superior:

Las versiones más recientes de Drush (versión 5 y superior) le preguntarán si desea descargar las dependencias requeridas cuando habilite (drush en) un módulo. También le preguntará si desea descargar el módulo si aún no lo descargó. Combinado con la opción "-y" (por ejemplo, drush en views -y), todo se descargará y habilitará automáticamente sin hacer más preguntas.

Tenga en cuenta que la descarga automática de dependencias puede fallar si el nombre del módulo requerido no es el mismo que el nombre del proyecto en drupal.org. Para obtener más información, consulte mi respuesta original para Drush 4 a continuación.

Respuesta original (Drush 4):

No, no hay forma de hacerlo. El problema es que hay una diferencia entre un módulo y un proyecto. A menudo (pero no siempre) el nombre del proyecto es idéntico al módulo (o uno de los módulos) contenido en el proyecto. Un solo proyecto (por ejemplo, Vistas) puede contener múltiples módulos (vistas, vistas_ui, vistas_exportación). Mientras drush dl descarga un proyecto , drush en habilita un módulo .

Cuando un módulo declara dependencias, declara dependencias en módulos, no proyectos. Al realizar un drush en, Drush puede verificar si el módulo requerido está disponible. Sin embargo, si no está disponible, Drush no tiene forma de saber qué proyecto descargar. Para que Drush pueda descargar automáticamente los proyectos requeridos, es necesario trabajar en la infraestructura subyacente de proyectos/módulos, para que Drush pueda recuperar una asignación de proyectos y módulos. Ver también Manejo más inteligente de dependencias faltantes .

18
marcvangend

En realidad, drush5 (aún en desarrollo) tiene un mapa de dependencias comunes conocidas (content.module, ctools, ...). Entonces, de hecho, descarga ctools para usted en su ejemplo.

9
moshe weitzman

esto ya no es un problema ya que las últimas versiones de drush hacen esto "automágicamente":

The following projects have unmet dependencies:[ok]
answers requires strongarm, references, nodereference_url, nodereference_count, eva
Would you like to download them? (y/n):
6
Alejandro Moreno

Algunos módulos o proyectos incluyen un script drush make, que puede descargar dependencias e instalar bibliotecas externas.

Sin embargo, este no es el caso, y existen problemas con la anidación de scripts de creación drush. Todavía vale la pena tener cuidado con algunos de los módulos que son más complicados de configurar.

2
Jeremy French

Pruebe el módulo Actualización rápida . Descargará todos los proyectos de dependencia que faltan por usted.

Aquí hay una cita al respecto (de la página del proyecto del módulo):

... proporciona una forma rápida de instalar por lotes múltiples proyectos nuevos o todos los proyectos de dependencia que faltan.

Drupal core proporciona una forma de instalar el módulo o el tema uno por uno, pero puede instalar varios proyectos a través del módulo de actualización rápida. Hay una interfaz de usuario de administrador para buscar los proyectos más instalados más fácilmente.

El módulo de actualización rápida adicional encuentra todos los proyectos de dependencia que faltan para usted, luego puede seleccionarlos todos desde la interfaz de usuario del administrador e instalarlos en un proceso por lotes.

El módulo de actualización rápida depende del módulo de actualización y utiliza el mismo flujo de trabajo que el módulo de actualización. Por lo tanto, puede ejecutar las actualizaciones a través de la página de actualización de administrador en/admin/reports/updates/update.

2
Jay Chen