web-dev-qa-db-fra.com

Existe-t-il un moyen pour que Crush télécharge toutes les dépendances requises pour un module spécifique?

Par exemple, si vous exécutez les commandes suivantes:

drush dl views
drush en views views_ui views_export

Vous obtiendrez l'erreur suivante lorsque vous essayez d'activer les modules de vues:

Les vues de module ne peuvent pas être activées car elles dépendent des modules suivants qui n'ont pas pu être trouvés: ctools

Existe-t-il un moyen d'obtenir le plaisir de télécharger les dépendances de module requises?

20
Camsoft

Drush 5 et plus:

Les versions plus récentes de Drush (version 5 et supérieure) vous demanderont si vous souhaitez télécharger les dépendances requises lorsque vous activez (drush en) un module. Il vous demandera également si vous souhaitez télécharger le module lui-même si vous ne l'avez pas encore téléchargé. Combiné avec l'option "-y" (par exemple drush en views -y), tout sera téléchargé et activé automatiquement sans poser de questions supplémentaires.

Notez que le téléchargement automatique des dépendances peut échouer si le nom du module requis n'est pas le même que son nom de projet sur drupal.org. Pour plus d'informations, consultez la réponse originale de Drush 4 ci-dessous.

Réponse originale (Drush 4):

Non, il n'y a aucun moyen de le faire. Le problème est qu'il existe une différence entre un module et un projet. Souvent (mais pas toujours) le nom du projet est identique au module (ou à l'un des modules) contenu dans le projet. Un même projet (par exemple, Vues) peut contenir plusieurs modules (vues, vues_ui, vues_export). Tandis que drush dl télécharge un projet , drush en active un module .

Lorsqu'un module déclare des dépendances, il déclare des dépendances sur les modules, pas sur les projets. Lors de l'exécution d'un drush en, Drush peut vérifier si le module requis est disponible. Cependant, s'il n'est pas disponible, Drush n'a aucun moyen de savoir quel projet télécharger. Pour que Drush puisse télécharger automatiquement les projets requis, le travail doit être effectué dans l'infrastructure des projets/modules sous-jacents, afin que Drush puisse récupérer un mappage des projets et des modules. Voir aussi Gestion plus intelligente des dépendances manquantes .

18
marcvangend

En fait, drush5 (toujours en développement) a une carte des dépendances communes connues (content.module, ctools, ...). Donc, il télécharge effectivement des outils pour vous dans votre exemple.

9
moshe weitzman

ce n'est plus un problème puisque les dernières versions de drush le font "automagiquement":

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

Certains modules ou projets incluent un script drush make, qui peut télécharger des dépendances et installer des bibliothèques externes.

Cependant, ce n'est généralement pas le cas, et il y a des problèmes avec l'imbrication des scripts de création drush. Il vaut toujours la peine de chercher avec certains des modules qui sont plus compliqués à installer.

2
Jeremy French

Essayez le module Mise à jour rapide . Il téléchargera pour vous tous les projets de dépendance manquants.

Voici une citation à ce sujet (à partir de la page du projet du module):

... fournit un moyen rapide d'installer par lots plusieurs nouveaux projets ou tous les projets de dépendance manquants.

Drupal core fournit un moyen d'installer un module ou un thème un par un, mais vous pouvez installer plusieurs projets via le module de mise à jour rapide. Il existe une interface d'administration pour rechercher plus facilement les projets les plus installés.

Un module de mise à jour rapide supplémentaire trouve pour vous tous les projets de dépendance manquants, il vous suffit alors de tous les sélectionner dans l'interface d'administration et de les installer par lots.

Le module de mise à jour rapide dépend du module de mise à jour et utilise le même flux de travail que le module de mise à jour. Ainsi, vous pouvez exécuter les mises à jour via la page de mise à jour d'administration dans/admin/reports/updates/update.

2
Jay Chen