こんにちは。アクイアさんが行っているアクイア認定 日本語化キャンペーンに乗じてすべての試験を受験して、晴れて Drupal グランドマスターとなった大野です! 日本語版の試験では一番乗り、おそらく日本人では二人目だと思います?
さて今回は数年に一度くらいの頻度でインストール方法が変わる Drush の最新のインストール方法について解説します。Drush とはターミナル・コンソール上から Drupal をコマンドを使って操作できるソフトウェアのことですが、詳しい解説はGoogle 先生に任せます。また、この解説は macOS や Linux 環境を対象とした解説となっていますのでご注意ください。
Drush 8 からの移り変わり
これまでは開発環境全体で一つの Drush を利用できるようにインストールすることが一般的でした。これは Drush 8 が Drupal 7 と Drupal 8 の両方をサポートしていたからですね。次の図は Drush の各バージョンがサポートする Drupal を示しています。(ソース: https://docs.drush.org/en/master/install/#drupal-compatibility)
Drush 8 は Drupal 8.3 までを正式にサポートしていますが、Drupal 8.4 以降のサポートは「非推薦」となっています。時代は移り変わり Drupal は Composer で管理することが推薦されるようになりました。それに合わせて Drupal 7 のサポートを打ち切った Drush 9 がリリースされ、以降は Composer を使いプロジェクト単位で Drush をインストールする方法しかサポートされなくなりました。つまり Drupal 8 以降で最新の Drush を使いたい場合は Drupal を Composer で管理する必用があり、Drush 8 は Composer 管理できない Drupal 8 のサイトもしくは Drupal 7 のサイト専用と考えたほうがいいでしょう。
Drush のインストール
さて、ここからは Composer 管理された Drupal サイトに Drush をインストールする方法の解説です。
Drupal を管理している composer.json があるディレクトリで次のコマンドを打ちます。
$ composer require drush/drush
以上でインストールは完了です。簡単ですね。Drush の実行ファイルは vendor/bin/drush
にインストールされるので、 ./vendor/bin/drush
のようにコマンドを打てば Drush を実行することができます。しかし、コレでは一々 Drush へのパスを打たなければいけなくて面倒です。環境変数の PATH
に追加して対応する事もできますが、プロジェクトごとにパスを通すのはあまり現実的ではありません。そこで、これまでと同様にパスを入力せずとも drush
コマンドだけで実行できる Drush Launcher と言うものを紹介します。
Drush Launcher とは
Drush Launcher は drush
コマンドを実行したカレントディレクトリを見て、よしなに Drush を呼び出してくれる Drush のラッパーコマンドです。つまり composer.json があるディレクトリ配下であれば、どこで drush
コマンドを実行してもプロジェクトにインストールされた Drush を呼び出してくれるので、一々対パスを考えて打つ必用がないので、素早く Drush を実行することができるのです。
Drush Launcher のインストール方法
次の手順は Drush の公式サイトに書かれたものを抜粋して日本語に翻訳したものです。
- コマンドラインで次のようにコマンドを打つか、ブラウザで Drush Launcher のダウンロードページへアクセスして Drush Launcher をダウンロードしてください。
OSX:
$ curl -OL https://github.com/drush-ops/drush-launcher/releases/latest/download/drush.phar
Linux:
$ wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/latest/download/drush.phar
- ダウンロードしたファイルに実行権限を付与します。
$ chmod +x drush.phar
- drush.phar を
$PATH
の環境変数に書かれたパスのディレクトリへdrush
という名前にリネーム・移動します。
この例は、殆どのシステムでデフォルトでパスが通っている /usr/local/bin
ディレクトリへインストールするものです。
$ mv drush.phar /usr/local/bin/drush
以上でインストールは完了です。composer.json があるディレクトリ配下で drush
コマンドを打つだけで Drush が実行できるようになっているはずです。
Composer 管理下にない Drupal サイトで Drush を使いたい場合
開発環境下に Composer 管理していない Drupal サイトが混在している場合は、Drush 8 を別にインストールして Drush Launcher のフォールバック機能を利用することで対応できます。
GitHub の Drush リリース一覧ページ で Drush 8.x.x と書かれたセクションの Assets をクリックして drush.phar をダウンロードします。
Drush 8.3.2 をシェルからダウンロードする例です。
$ curl -OL https://github.com/drush-ops/drush/releases/download/8.3.2/drush.phar
drush.phar に実行権限を付与して単体で実行できるようにします。
$ chmod +x drush.phar
/usr/local/bin
に drush8
と言う名前でファイルを移動します。
$ mv drush.phar /usr/local/bin/drush8
環境変数 DRUSH_LAUNCHER_FALLBACK
に先ほどインストールした Drush 8 のパスをセットします。次は .bashrc に環境変数をセットする例です。
$ echo "export DRUSH_LAUNCHER_FALLBACK=/usr/local/bin/drush8" >> ~/.bashrc
以上の設定で、Composer 管理下の Drush が見つからない場合は DRUSH_LAUNCHER_FALLBACK
にセットされた Drush 8 が自動的に呼び出されるようになりました。
余談
Drush はバージョンが上がるたびにセキュリティ的な都合などで便利なコマンドが廃止されたりするんですよね。私はサイトをまるごとバックアップできる drush archvie-dump
コマンドを頻繁に使っていたのですが Drush 9 で無くなってしまいました。残念。。
私が Drush のブログを書くのは数回目なので、弊社のブログで過去に何回くらい Drush のインストールについて記事にしてきたのかと見返してみたところ、6年間に渡り5回も記事にしておりました。。これが最後になることを切に願います(笑)
- 2014年5月09日 Drupalの開発効率を劇的に向上させるDrushのインストール方法8通り
- 2014年9月19日 Composer で Drush をインストールする方法
- 2015年6月18日 Drush 7 のインストール方法と PHP の REPL ライブラリ Boris について
- 2015年6月27日 Drupal 8 に対応した開発版の Drush をインストールする方法
- 2016年2月05日 Drush 8 を今までで一番簡単にインストールする方法
※ これらの手順はいずれも古い方法ですので参考にしないでください
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。