Disztribúciókészítés egyszerűen: drush make a barátod

Boobaa küldte be 2009. 10. 25., vasárnap, 19:10 időpontban

Drupal Disztribúciónak a core-ral, modulokkal, telepítési profillal összecsomagolt tarballt hívják. Ilyen disztribúció például az Acquia Drupal, vagy az Open Atrium.

A drush egy parancssoros eszköz, gyakorlatilag a Drupal telepítés terminálból történő irányítására szolgál. Különböző kiegészítésekkel modulok frissíthetőek, cache üríthető, stb. Egy új kiegészítéssel mostantól disztribúciók készítésére is használhatóvá vált, jelentősen egyszerűsítve a karbantartói munkát.

Egy előre elkészített info fájl formátumú makefile segítségével a drush make letölti a kívánt modulokat, core-t, és elhelyezi a megfelelő helyekre (modulokat a sites/all/modules alá, sminkeket a sites/all/themes alá, telepítési profilt a profiles könyvtárba).

Például van egy fejlesztésre gyakran használt disztibúcióm, a drupal developer. Ennek összekészítéséhez az alábbi makefile-t használhatnám:

name = Drupal Developer
core = 6.x
 
projects[] = drupal
projects[] = devel
projects[] = coder
projects[] = simpletest
projects[] = admin_menu
projects[] = drupal_developer

A fenti sorokat egy developer-6.make nevű file-ba másolva elég egy egyszerű parancs:

drush make developer-6.make --tar=drupal_developer

Máris kész is egy drupal_developer.tar.gz csomag, benne a modulok, telepítési profil - ami csak kell. Ezek után már csak egy egyszerű shell-szkriptet kell összeütni, és kész is a folyamatosan frissen tartott, letölthető disztribúció.

(A cikk Dianiska Balázs Using drush make for a distribution írásának általa készített fordítása.)

Hozzászólások

Hello!
Egy kis javítás: ahhoz, hogy tényleg a sites/all-ba másolja a modulokat, szükség van a következő kapcsolóra:
--destination=sites/all
valamint hasznos lehet a default.settings.php-ból egy settings.php másolatot készíttetni:
--copy-settings

Ami viszont a nagy szívfájdalmam ezzel a cuccal kapcsolatban:
a lokalizációt nem tudom beleforgatni drush-sal! :S bár a drupal.org/project/hu -n a projectként szerepel a fordítás, hirtelen megörültem, de sajnos nem szabványos csomag, így nem hajlandó megenni a drush make :(
Valamint nekem a profile mappába se készített telepítési profilt! nem értem miért... :S

amúgy az ötlet nagyon jó, remélem szépen fejlődik majd ez a project is :)

Szerintem kevered a drush dl-al. a --destination nem kell, a fenti parancs mukodik ahogy le van irva (DRUPAL-6--2 branch). Nem is igazan volna ertelme, ugyanis a cel az "project" tipusonkent mas (theme/profile/module).

Profile is belepakolja amit kell:

ls drupal_developer/profiles/drupal_developer/
LICENSE.txt                     drupal_developer.profile

Bocsánat, a profillal kapcsolatban én voltam a hülye, másként értelmeztem a dolgot :)

A --destination=sites/all nélkül viszont nekem a /modules -ba rakja be, nem a /sites/all/modules-ba.
Ha ezt megadom akkor a /sites/all/modules és /sites/all/themes könyvtárak vannak használatban.

Lokalizációra nincs valami ötletetek?

cvs-bol friss drush-t hasznalsz? dmitri szinte naponta comittol uj dolgokat, lehet, hogy valtozott azota, hogy utoljara checkoutoltal.

lokalizacio jo kerdes, en szemely szerint nem probaltam.

Ami meg fasza lenne, ha nem a sites/all/modules-be rakna a dolgokat, hanem sites/all/modules/contrib-ba. Igy ha kesobb sajat cuccot fejlesztek, akkor nem kerul omlesztve a contribek melle...

Boobaa

2009. 10. 27., kedd, 19:21

Válasz snufkin üzenetére

Afaik Drupalnak édesmindegy, hogy a foo modul sites/all/modules/foo/, sites/all/modules/contrib/foo/ könyvtárban van. Meg kéne nézni, hátha működik sites/all/contrib/modules/foo/ könyvtárral is.

nyilvan a drupalnak mindegy, nekem viszont nem, nagyobb oldalaknal megeri kulon valasztani a contrib-ot, a sajatot, meg a hekkelt contribot.

egyebkent nem hiszem, hogy le tudna kezelni a sites/all/contrib utakat a drupal, szerintem ez elore beallitott keresesi utvonal, de utana kene nezni.

Webappz (nem ellenőrzött)

2009. 10. 29., csütörtök, 11:47

Válasz snufkin üzenetére

managingnews.make

Itt pont az van, amit szeretnél, csak pár sort kimásoltam:

; Contrib projects
projects[devel][subdir] = "contrib"
projects[diff][subdir] = "contrib"
projects[features][subdir] = "contrib"
projects[views][subdir] = "contrib"
projects[views_rss][subdir] = "contrib"
 
; Patched.
; Explicit versions specified to ensure patches apply cleanly.
projects[context][subdir] = "contrib"
projects[context][version] = "2.0-beta7"
projects[context][patch][] = "http://drupal.org/files/issues/606816-1_node_form_context.patch"
 
; Custom modules
projects[extractor][subdir] = "custom"
projects[extractor][location] = "http://code.developmentseed.org/fserver"
projects[seed][subdir] = "custom"
projects[seed][location] = "http://code.developmentseed.org/fserver"
projects[stored_views][subdir] = "custom"
projects[stored_views][location] = "http://code.developmentseed.org/fserver"
projects[views_modes][subdir] = "custom"
projects[views_modes][location] = "http://code.developmentseed.org/fserver"
 
; Features
projects[mn_about][subdir] = "features"
projects[mn_about][location] = "http://code.developmentseed.org/fserver"