Gibt es eine Möglichkeit, Drush dazu zu bringen, alle erforderlichen Abhängigkeiten für ein bestimmtes Modul herunterzuladen?

20

Wenn Sie beispielsweise die folgenden Befehle ausführen:

drush dl views
drush en views views_ui views_export

Beim Versuch, die Ansichtsmodule zu aktivieren, wird die folgende Fehlermeldung angezeigt:

Modulansichten können nicht aktiviert werden, da dies von den folgenden Modulen abhängt, die nicht gefunden wurden: ctools

Gibt es eine Möglichkeit, Drush zu bekommen, um die erforderlichen Modulabhängigkeiten herunterzuladen?

Camsoft
quelle
Wirklich sollte Drupal nur Komponisten integrieren. Das Abhängigkeitsmanagement würde dann gut gehandhabt.
David
Neuere Versionen von Drush with drush en -yladen Abhängigkeiten automatisch herunter und aktivieren sie.
tyler.frankenstein

Antworten:

18

Drush 5 und höher:

Neuere Versionen von Drush (Version 5 und höher) werden Sie fragen, ob Sie die erforderlichen Abhängigkeiten herunterladen möchten, wenn Sie drush enein Modul aktivieren ( ). Sie werden auch gefragt, ob Sie das Modul selbst herunterladen möchten, wenn Sie es noch nicht heruntergeladen haben. In Kombination mit der Option "-y" (z. B. drush en views -y) wird alles automatisch heruntergeladen und aktiviert, ohne weitere Fragen zu stellen.

Beachten Sie, dass das automatische Herunterladen von Abhängigkeiten möglicherweise fehlschlägt, wenn der Name des erforderlichen Moduls nicht mit dem Projektnamen auf drupal.org übereinstimmt. Weitere Informationen finden Sie in meiner ursprünglichen Antwort für Drush 4 unten.

Ursprüngliche Antwort (Drush 4):

Nein, das geht nicht. Das Problem ist, dass es einen Unterschied zwischen einem Modul und einem Projekt gibt. Oft (aber nicht immer) ist der Name des Projekts identisch mit dem Modul (oder einem der Module), die im Projekt enthalten sind. Ein einzelnes Projekt (zB Views) kann mehrere Module enthalten (Views, Views_ui, Views_export). Während drush dlDownloads ein Projekt , drush enermöglicht ein Modul .

Wenn ein Modul Abhängigkeiten deklariert, deklariert es Abhängigkeiten von Modulen und nicht von Projekten. Während der Durchführung drush enkann Drush prüfen, ob das erforderliche Modul verfügbar ist. Wenn es jedoch nicht verfügbar ist, kann Drush nicht wissen, welches Projekt heruntergeladen werden soll. Damit Drush die erforderlichen Projekte automatisch herunterladen kann, muss in der zugrunde liegenden Infrastruktur für Projekte / Module gearbeitet werden, damit Drush eine Zuordnung von Projekten und Modulen abrufen kann. Siehe auch Intelligentere Behandlung fehlender Abhängigkeiten .

marcvangend
quelle
9

Eigentlich hat drush5 (noch in der Entwicklung) eine Karte mit bekannten, häufigen Abhängigkeiten (content.module, ctools, ...). Daher lädt es in Ihrem Beispiel tatsächlich ctools für Sie herunter.

Moshe Weitzman
quelle
6

dies ist kein problem mehr, da die neuesten versionen von drush dies "automagisch" machen:

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

Einige Module oder Projekte enthalten ein drush make- Skript, mit dem Abhängigkeiten heruntergeladen und externe Bibliotheken installiert werden können.

Dies ist jedoch meist nicht der Fall und es gibt Probleme beim Verschachteln von Drush-Make-Skripten. Es lohnt sich immer noch, sich einige der Module anzusehen, deren Einrichtung komplizierter ist.

Jeremy French
quelle
1
Ich denke du meinst 'Drush make' ( drupal.org/project/drush_make ) und nicht 'Drush build'. Aber Sie haben Recht, da eine Drush-Make-Datei die Projekte auflistet, die für den Build erforderlich sind, und Abhängigkeiten herunterladen kann.
Marcvangend
2

Probieren Sie das Quick Update- Modul aus. Es werden alle fehlenden Abhängigkeitsprojekte für Sie heruntergeladen.

Hier ist ein Zitat darüber (von der Projektseite des Moduls):

... bietet eine schnelle Möglichkeit, mehrere neue Projekte oder alle fehlenden Abhängigkeitsprojekte im Batch zu installieren.

Drupal Core bietet die Möglichkeit, Module oder Designs einzeln zu installieren. Sie können jedoch auch mehrere Projekte über das Quick Update-Modul installieren. Es gibt eine Admin-Benutzeroberfläche, um die am häufigsten installierten Projekte einfacher zu durchsuchen.

Das zusätzliche Modul "Schnellaktualisierung" findet alle fehlenden Abhängigkeitsprojekte für Sie. Anschließend können Sie alle in der Benutzeroberfläche des Administrators auswählen und in einem Stapelprozess installieren.

Das Schnellaktualisierungsmodul ist vom Aktualisierungsmodul abhängig und verwendet denselben Workflow wie das Aktualisierungsmodul. Daher können Sie die Updates über die Administrator-Update-Seite unter / admin / reports / updates / update ausführen.

Jay Chen
quelle