Installing Drush for working with Drupal 6-8 and Backdrop » History » Revision 1
Revision 1/62
| Next »
Jack Aponte, 03/29/2016 12:59 AM
First version of new Drush documentation
Installing Drush for working with Drupal 6-8 and Backdrop¶
Because Palante is still supporting a number of Drupal 6 sites, and we've fallen victim to the weird gotcha where Drush destroys your git repo and other non-Drupal files that seems to happen more often with Drush 8 than other versions, we've decided to stick with Drush 7 as the default version in use at Palante. But since we are beginning to build Drupal 8 sites, we also need Drush 8 installed; Drush 8 is also better for Backdrop, which we're also working with, because with the "Backdrop Drush commands" installed with Drush 7, Drush stops working with Drupal 7.
Therefore, when we're working with Drupal 6 or 7, we want to use Drush 7; when we're using Drupal 8 or Backdrop, we want to use Drush 8.
Install Drush 7 and Drush 8 for all users¶
I've followed the "To install for all users on the server" instructions under "Composer - One Drush for all Projects" in the Drush 7 installation documentation:.
To install Drush 7, run the following commands as root or using sudo
.
git clone https://github.com/drush-ops/drush.git -b 7.2.0 /usr/local/src/drush7 cd /usr/local/src/drush7 composer install ln -s /usr/local/src/drush7/drush /usr/bin/drush7
Replace "7.2.0" with the tag of the most recent stable 7.x release (see https://github.com/drush-ops/drush/releases).
Then install Drush 8, again running these commands as root or using sudo
.
git clone https://github.com/drush-ops/drush.git -b 8.0.5 /usr/local/src/drush8 cd /usr/local/src/drush8 composer install ln -s /usr/local/src/drush8/drush /usr/bin/drush8
Replace "8.0.5" with the tag of the most recent stable 8.x release (see https://github.com/drush-ops/drush/releases)
You can now run drush7
or drush8
to use each specific version of Drush.
Because I currently want to use Drush 8 when working with Backdrop, I'll also create a drushbd
alias pointing to Drush 8; later, if Backdrop needs to use a different version of Drush, I can change where the drushbd
alias points and continue to use that command.
ln -s /usr/local/src/drush8/drush /usr/bin/drushbd
EXTRA TIP: To update version of Drush installed as outlined above, run the following commands within the /usr/local/src/<drush-version>
directory:
git pull origin master git checkout tags/7.2.0 -b 7.2.0 composer install
Replace "7.2.0" with the most recent stable release of the Drush version you're updating.
Create script to automatically switch Drush versions based on git configuration setting¶
As per this excellent guide from Marc van Gend of Triquanta, I've set up a script to let us switch between versions of Drush on a project-by-project basis using git configuration settings.
The script, which lives at /usr/bin/drush
and is therefore called whenever someone runs the drush
command:
#!/bin/bash version=$(git config --get drush.version) if [ "$version" = '8' ]; then drush8 "$@" elif [ "$version" = 'backdrop' ]; then drushbd "$@" else drush7 "$@" fi
Set drush.version git variable on a per-project basis¶
For the script to automatically switch to the right version of Drush when working with Drupal 8 or Backdrop, set the drush.version
value in the git repo for the project by running git config drush.version <version>
. For example:
$ drush --version Drush Version : 7.2.0 $ git config drush.version 8 $ drush --version Drush Version : 8.0.5
For Backdrop, run git config drush.version backdrop
.
Update drush remote aliases to use correct Drush scripts¶
If you've got aliases set up for remote sites, update your aliases.drushrc.php
file to include the specific drush script that should be used on the remote site. See the example.aliases.drushrc.php file if you need help creating your aliases.drushrc.php
file or learning about %drush-script
.
An example aliases.drushrc.php
file with %drush-script
specified:
$aliases['drupal8'] = array( 'remote-host' => 'fake-dev-server.palantetech.coop', 'remote-user' => 'jack', 'root' => '/var/www/dev/drupal8', 'uri' => 'drupal8.palantetech.coop', 'path-aliases' => array( '%drush-script' => '/usr/bin/drush8', ) ); $aliases['backdrop'] = array( 'remote-host' => 'fake-dev-server.palantetech.coop', 'remote-user' => 'jack', 'root' => '/var/www/dev/backdrop', 'uri' => 'backdrop.palantetech.coop', 'path-aliases' => array( '%drush-script' => '/usr/bin/drushbd', ) );
Updated by Jack Aponte over 8 years ago · 1 revisions
Also available in: PDF HTML TXT
Go to top