Jeder Administrator weiß, dass eine GUI eine schöne Sache ist, aber schneller geht's dann doch oft auf der Kommandozeile. Ein Glück, dass es auch für Drupal mit Drush ein praktisches Commandline-Tool gibt. Mit einem einzigen Drush-Kommando können Sie ein oder mehrere Module herunterladen, aktivieren oder deaktivieren, ein Backup der Datenbank anfertigen und so weiter.
Auch die Installation von Drush ist nicht allzu schwierig. Laden Sie es von
[3]
herunter und entpacken Sie es irgendwo außerhalb des Webserver-Verzeichnisses. Im entstandenen Verzeichnis finden Sie ein Skript namens
»drush
«
, das Sie zum Beispiel nach
»/usr/local/bin
«
verlinken können, damit es überall ausführbar ist:
cd /usr/local tar -xzvf drush-6.x-3.1.tar.gz cd /usr/local/bin ln -s /usr/local/drush/drush
Wenn Sie beim Ausführen von Drush auf den Fehler stoßen, dass
»Class 'Console_Table'
«
fehlt, können Sie es mit Paketmanager des Betriebssystems o der dem PHP-Pear-Tool nachinstalliere:
pear install Console_Table
Damit Drush die Drupal-Installation findet, geben Sie sie mit dem Parameter
»-r
«
an oder tragen den Pfad als Variable
»$options['r']
«
in die Datei
»drushrc.php
«
ein.
Wenn Sie nun etwas über die Releases des Drupals-Moduls admin_menu herausfinden wollen, geben Sie
»drush pm-releases admin_menu
«
ein (
Listing 3
).
Listing 3
drush pm-releases admin_menu
Project Release Date Status admin_menu 6.x-3.0-alpha4 2010-Mar-10 Supported admin_menu 6.x-3.0-alpha3 2009-Aug-16 admin_menu 6.x-3.0-alpha2 2009-Aug-01 admin_menu 6.x-3.0-alpha1 2009-Jun-10 admin_menu 6.x-3.x-dev 2010-Jul-31 Development admin_menu 6.x-1.5 2009-Jul-02 Supported, Recommended, Installed admin_menu 6.x-1.4 2009-May-15 admin_menu 6.x-1.3 2009-Jan-24 admin_menu 6.x-1.2 2009-Jan-19 admin_menu 6.x-1.1 2008-Sep-12 admin_menu 6.x-1.0 2008-Jun-26 admin_menu 6.x-1.0-beta 2008-Jun-08 admin_menu 6.x-1.x-dev 2010-Jul-28 Development
Drush ist hervorragend dazu geeignet, veraltete Drupal-Module herunterzuladen und zu aktualisieren ( Listing 4 ). Am Ende der Ausgabe vermerkt Drush, dass es sogar ein Backup anlegt, sodass Sie gegebenenfalls wieder zur alten Version zurückwechseln können.
Listing 4
Modul-Update mit Drush
$ drush pm-update Refreshing update status information ... Done. Update information last refreshed: Fri, 2010-08-06 12:06 Update status information on all installed and enabled Drupal projects: Name Installed version Proposed version Status Administration menu 6.x-1.5 6.x-1.5 Up to date Admin Role 6.x-1.2 6.x-1.2 Up to date Drupal core 6.17 6.17 Up to date Calendar 6.x-2.2 6.x-2.2 Up to date Content 6.x-2.x-dev 6.x-2.7 SECURITY UPDATE Construction Kit available (CCK) Date 6.x-2.4 6.x-2.4 Up to date Image 6.x-1.0-beta5 6.x-1.0-beta5 Up to date jQuery UI 6.x-1.3 6.x-1.3 Up to date Pathauto 6.x-1.3 6.x-1.3 Up to date Tagadelic 6.x-1.2 6.x-1.2 Up to date Token 6.x-1.12 6.x-1.13 Update available Views 6.x-2.10-acquiade 6.x-2.11 SECURITY UPDATE v-1 available Code updates will be made to the following projects: Content Construction Kit (CCK) [cck-6.x-2.7], Token [token-6.x-1.13], Views [views-6.x-2.11 ] Note: Updated projects can potentially break your site. It is NOT recommended to update pro duction sites without prior testing. Note: A backup of your package will be stored to backups directory if it is not managed by a supported version control system. Note: If you have made any modifications to any file that belongs to one of these projects, you will have to migrate those modifications after updating. Do you really want to continue? (y/n):
Ähnlich einfach installieren Sie auch ein neues Module auf der Kommandozeile mit Drush. Den Download direkt ins Modulverzeichnis starten Sie mit
»drush dl
«
:
$ drush dl wysiwyg Project wysiwyg (6.x-2.1) downloaded to ↩ [success] /srv/www/drupal/sites/all/modules/wysiwyg.
Mit
»en
«
aktivieren Sie das Modul:
$ drush en wysiwyg The following projects will be enabled: ↩ wysiwyg Do you really want to continue? (y/n): y wysiwyg was enabled successfully.
Um ein Modul zu entfernen, müssen Sie es erst deaktiveren und dann deinstallieren:
drush dis wysiwyg drush pm-uninstall wysiwyg
Man könnten nun alle Drush-Befehle in ein Shellskript packen, das alle nötigen Module herunterlädt und aktiviert, aber es gibt noch einen besseren Weg.
Ein weiteres Tool verheiratet die Funktion von Makefiles mit Drush und Drupal. Mit Drush Make können Sie nicht nur Zusatzmodule verwalten, sondern sogar den Drupalkern selbst. Dazu laden Sie erst einmal Drush Make von der Drupal-Modul-Site herunter. Im Verzeichnis, in dem Sie Drush installiert haben, befindet sich ein Unterverzeichnis
»commands
«
. Entpacken Sie dort die Drushmake-Tar-Datei. Das war's auch schon.
Drush Makefile sind im Allgemeinen recht einfach aufgebaut, aber man kann damit auch kompliziertere Dinge machen. Tabelle 1 listet ein paar Drupal-Projekte auf, die Gebrauch von Profilen und Drush Make machen, die als Beispiel dienen können. Laden Sie sich einfach mal die Dateien herunter und schauen Sie sich die Profile etwas genauer an.
Tabelle 1
Drupal-Projekte
Projekt |
URL |
---|---|
Acquia Drupal |
http://acquia.com |
Managing News |
http://managingnews.com |
OpenAtrium |
http://openatrium.com |
OpenPublish |
http://openpublishapp.com |
Ein Beispiel eines eigenen Drush-Makefiles zeigt
Listing 5
. Beim Aufruf von Drush Make erzeugt es ein Drupal-Installationsverzeichnis mit jedem Modul, das im Makefile aufgelistet ist. Das Unterverzeichnis
»salmar
«
wird im Verzeichnis
»sites/all/modules
«
angelegt.
drush make ../mysite.make mysite
Der Ordner
»mysite
«
muss dabei noch nicht existieren, Drush legt ihn einfach an. Drush lädt alle nötigen Dateien herunter,
Listing 6
zeigt einen Ausschnitt aus dem Protokoll.
Listing 5
Drush-Makefile
; erst der Drupal Core core = 6.x projects[] = drupal ; dann die Module projects[cck][subdir] = "salmar" projects[wysiwyg][subdir] = "salmar" projects[filefield][subdir] = "salmar" projects[date][subdir] = "salmar" projects[backup_migrate][subdir] = "salmar" projects[admin_menu][subdir] = "salmar" projects[adminrole][subdir] = "salmar" projects[masquerade][subdir] = "salmar" projects[calendar][subdir] = "salmar" projects[comment_notify][subdir] = "salmar" projects[google_analytics][subdir] = "salmar" projects[image][subdir] = "salmar" projects[imageapi][subdir] = "salmar" projects[imagefield][subdir] = "salmar" projects[img_assist][subdir] = "salmar" projects[jquery_ui][subdir] = "salmar" projects[pathauto][subdir] = "salmar" projects[tagadelic][subdir] = "salmar" projects[token][subdir] = "salmar" projects[views][subdir] = "salmar"
Listing 6
Protokoll von Drush Make
Project information for token retrieved. [ok] Project information for views retrieved. [ok] Project information for drupal retrieved. [ok] drupal downloaded from [ok] http://ftp.drupal.org/files/projects/drupal-6.17.tar.gz. cck downloaded from [ok] http://ftp.drupal.org/files/projects/cck-6.x-2.7.tar.gz. wysiwyg downloaded from [ok] http://ftp.drupal.org/files/projects/wysiwyg-6.x-2.1.tar.gz. filefield downloaded from [ok]
Wenn alle Module installiert sind, können Sie eine Tar-Datei erstellen – wie im übrigen auch, wenn Sie alles von Hand heruntergeladen haben. Das Ergebnis ist die Datei
»mysite.tar.gz
«
.
drush make --tar mysite.make mysite
Das Tar-Paket können Sie dann als eigene Drupal-Distribution mit allen gewünschten Module für eigene Installationen verwenden.