Drush'ın belirli bir modül için gerekli tüm bağımlılıkları indirmesini sağlamanın bir yolu var mı?


20

Örneğin, aşağıdaki komutları gerçekleştirirseniz:

drush dl views
drush en views views_ui views_export

Görünüm modüllerini etkinleştirmeye çalışırken aşağıdaki hatayı alırsınız:

Modül görünümleri, bulunamayan şu modüllere bağlı olduğu için etkinleştirilemiyor: ctools

Gerekli modül bağımlılıklarını indirmek için acele etmenin bir yolu var mı?


Gerçekten Drupal sadece besteci ile bütünleşmelidir. O zaman bağımlılık yönetimi iyi işlenirdi.
David

Drush'ın daha yeni sürümleri drush en -ybağımlılıkları otomatik olarak indirecek ve etkinleştirecektir.
tyler.frankenstein

Yanıtlar:


18

Drush 5 ve üstü:

Drush'ın daha yeni sürümleri (sürüm 5 ve üstü), drush enbir modülü etkinleştirdiğinizde ( ) gerekli bağımlılıkları indirmek isteyip istemediğinizi soracaktır . Ayrıca, henüz indirmediyseniz modülün kendisini indirmek isteyip istemediğinizi soracaktır. "-Y" seçeneğiyle (örn. drush en views -y) Birlikte , her şey başka soru sorulmadan otomatik olarak indirilir ve etkinleştirilir.

Gerekli modülün adı drupal.org'daki proje adıyla aynı değilse, bağımlılıkların otomatik olarak indirilmesinin başarısız olabileceğini unutmayın. Daha fazla bilgi için aşağıdaki Drush 4 için orijinal cevabım bölümüne bakın.

Orijinal cevap (Drush 4):

Hayır, bunu yapmanın bir yolu yok. Sorun, bir modül ile bir proje arasında bir fark olması. Genellikle (ancak her zaman değil) projenin adı projede bulunan modülle (veya modüllerden biriyle) aynıdır. Tek bir proje (ör. Görünümler) birden fazla modül içerebilir (görünümler, görünümler_yüzü, görünümler_yracat). İken drush dlindirilmesi projesi , drush enbir olanak modülü .

Bir modül bağımlılık bildirdiğinde, projelere değil modüllere bağımlılık bildirir. A yaparken drush enDrush, gerekli modülün mevcut olup olmadığını kontrol edebilir. Ancak, mevcut değilse, Drush'ın hangi projeyi indireceğini bilmesinin bir yolu yoktur. Drush'ın gerekli projeleri otomatik olarak indirebilmesi için, temeldeki projeler / modüller altyapısında işlerin yapılması gerekir, böylece Drush projelerin ve modüllerin bir haritasını alabilir. Ayrıca bkz . Eksik bağımlılıkların daha akıllıca ele alınması .


9

Aslında, drush5 (hala geliştirilmektedir) bilinen, ortak bağımlılıkların bir haritasına sahiptir (içerik.modül, ctools, ...). Yani sizin örneğinizde gerçekten ctools indirir.


6

drush'un son sürümleri bunu "otomatik olarak" yaptığı için bu artık bir sorun değildir:

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

Bazı modüller veya projeler, bağımlılıkları indirebilen ve harici kütüphaneler yükleyebilen bir drush make komut dosyası içerir .

Ancak bu çoğunlukla böyle değildir ve drush make betiklerinin iç içe yerleştirilmesiyle ilgili sorunlar vardır. Kurulumu daha karmaşık olan bazı modüllerle hala dikkat etmeye değer.


1
Sanırım 'Drush build' için değil 'Drush make' ( drupal.org/project/drush_make ) demek istediniz . Ama haklısınız, çünkü bir drush make dosyası derleme için gerekli projeleri listelediğinden, bağımlılıkları indirebilir.
marcvangend

2

Hızlı güncelleme modülünü deneyin . Tüm eksik bağımlılık projelerini sizin için indirecektir.

Bununla ilgili bir alıntı (modülün proje sayfasından):

... birden çok yeni projeyi veya tüm eksik bağımlılık projelerini toplu olarak yüklemek için hızlı bir yol sağlar.

Drupal core, modülü veya temayı tek tek kurmak için bir yol sağlar, ancak Hızlı güncelleme modülü aracılığıyla birden fazla proje yükleyebilirsiniz. En yüklü projeleri daha kolay aramak için bir yönetici kullanıcı arayüzü vardır.

Ek olarak, Hızlı güncelleme modülü sizin için tüm eksik bağımlılık projelerini bulur, o zaman hepsini yönetici arayüzünden seçebilir ve bir toplu işlemde yükleyebilirsiniz.

Hızlı güncelleme modülü Güncelleme modülüne bağlıdır ve Güncelleme modülü ile aynı iş akışını kullanır. Böylece, güncellemeleri / admin / raporlar / updates / update adresindeki yönetici güncelleme sayfası üzerinden çalıştırabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.