Czy istnieje sposób, aby Drush pobrał wszystkie wymagane zależności dla konkretnego modułu?


20

Na przykład, jeśli wykonasz następujące polecenia:

drush dl views
drush en views views_ui views_export

Podczas próby włączenia modułów widoków pojawi się następujący błąd:

Widoki modułów nie mogą zostać włączone, ponieważ zależy to od następujących modułów, których nie można znaleźć: ctools

Czy istnieje sposób, aby uzyskać drush, aby pobrać wymagane zależności modułów?


Naprawdę Drupal powinien po prostu zintegrować kompozytora. Zarządzanie zależnościami byłoby wtedy ładnie obsługiwane.
David

Nowsze wersje Drush z drush en -yautomatycznie pobiorą i włączą zależności.
tyler.frankenstein

Odpowiedzi:


18

Drush 5 i więcej:

Nowsze wersje Drusha (wersja 5 i wyższa) zapytają, czy chcesz pobrać wymagane zależności po włączeniu ( drush en) modułu. Zapyta również, czy chcesz pobrać sam moduł, jeśli jeszcze go nie pobrałeś. W połączeniu z opcją „-y” (np. drush en views -y) Wszystko zostanie pobrane i włączone automatycznie bez zadawania dalszych pytań.

Zauważ, że automatyczne pobieranie zależności może się nie powieść, jeśli nazwa wymaganego modułu nie jest taka sama jak nazwa projektu na drupal.org. Aby uzyskać więcej informacji, zobacz moją oryginalną odpowiedź na Drush 4 poniżej.

Oryginalna odpowiedź (Drush 4):

Nie, nie ma na to sposobu. Problem polega na tym, że istnieje różnica między modułem a projektem. Często (ale nie zawsze) nazwa projektu jest identyczna z modułem (lub jednym z modułów) zawartym w projekcie. Pojedynczy projekt (np. Widoki) może zawierać wiele modułów (widoki, views_ui, views_export). Podczas gdy drush dlpobiera projektu , drush enumożliwia moduł .

Kiedy moduł deklaruje zależności, deklaruje zależności od modułów, a nie projektów. Wykonując a drush en, Drush może sprawdzić, czy wymagany moduł jest dostępny. Jednak jeśli nie jest dostępny, Drush nie może wiedzieć, który projekt pobrać. Aby Drush mógł automatycznie pobierać wymagane projekty, należy wykonać prace w podstawowej infrastrukturze projektów / modułów, aby Drush mógł pobrać mapowanie projektów i modułów. Zobacz także Inteligentniejsza obsługa brakujących zależności .


9

W rzeczywistości drush5 (wciąż w fazie rozwoju) ma mapę znanych, wspólnych zależności (content.module, ctools, ...). Tak więc w twoim przykładzie rzeczywiście pobiera to ctools.


6

nie jest to już problemem, ponieważ najnowsze wersje drush robią to „automagicznie”:

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

Niektóre moduły lub projekty zawierają skrypt drush make , który może pobierać zależności i instalować biblioteki zewnętrzne.

Jednak w większości przypadków tak nie jest i występują problemy z zagnieżdżaniem skryptów drush make. Nadal warto zwrócić uwagę na niektóre moduły, które są bardziej skomplikowane w konfiguracji.


1
Myślę, że masz na myśli „Drush make” ( drupal.org/project/drush_make ), a nie „Drush build”. Ale masz rację, ponieważ plik drush make zawiera listę projektów wymaganych do kompilacji, jest w stanie pobrać zależności.
marcvangend

2

Wypróbuj moduł szybkiej aktualizacji . Spowoduje to pobranie wszystkich brakujących projektów zależności.

Oto cytat na ten temat (ze strony projektu modułu):

... zapewnia szybki sposób na wsadowe zainstalowanie wielu nowych projektów lub wszystkich brakujących projektów zależności.

Drupal core zapewnia sposób instalowania modułu lub motywu jeden po drugim, ale możesz zainstalować wiele projektów za pośrednictwem modułu szybkiej aktualizacji. Interfejs administratora umożliwia łatwiejsze wyszukiwanie najbardziej zainstalowanych projektów.

Dodatkowy moduł szybkiej aktualizacji wyszukuje wszystkie brakujące projekty zależności, a następnie możesz po prostu wybrać wszystkie z interfejsu administratora i zainstalować je w procesie wsadowym.

Moduł szybkiej aktualizacji zależy od modułu aktualizacji i korzysta z tego samego przepływu pracy, co moduł aktualizacji. W związku z tym możesz uruchamiać aktualizacje na stronie aktualizacji administratora w / admin / raporty / aktualizacje / aktualizacja.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.