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


20

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?


Realmente Drupal debería integrar el compositor. La gestión de la dependencia se manejaría bien entonces.
David

Las versiones más recientes de Drush con drush en -ydescargarán automáticamente y habilitarán las dependencias.
tyler.frankenstein

Respuestas:


18

Drush 5 y hasta:

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ó. En combinación 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 dldescarga un proyecto , drush enhabilita un módulo .

Cuando un módulo declara dependencias, declara dependencias en módulos, no proyectos. Al realizar una 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, el trabajo debe realizarse en la infraestructura subyacente de proyectos / módulos, para que Drush pueda recuperar una asignación de proyectos y módulos. Vea también Manejo más inteligente de dependencias faltantes .


9

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


6

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):

2

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.


1
Creo que quiere decir 'Drush make' ( drupal.org/project/drush_make ) no 'Drush build'. Pero tiene razón, debido a que un archivo drush make enumera los proyectos que se requieren para la compilación, puede descargar dependencias.
marcvangend

2

Pruebe el módulo de 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 IU 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 del administrador en / admin / reports / updates / update.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.