メインコンテンツに移動

Drush Launcherが使えなくなってしまった?

こんにちは、ぴころじーの竹川です。

Drushは、Drupalを使う時には、大変お世話になるお馴染みの必須アイテムです。

そして、そんなDrushを便利に使うための、私も大変お世話になったDrush Launcherというものがあります。
Drupalを、Drushを使っている方は実際に使っている(いた)のではないでしょうか。

実は、ついこの前、Drupalのバージョンアップにまつわる案件の中で遭遇した出来事がありましたので、共有させていただければと思います。特段に新しい話ではありませんが、少し手間取りましたので、自分に対する覚書という意味でも、ということで。

Drupalを9.xから10.xに更新した際に、Drushのバージョンも更新しました。こちらに関しては、なにか問題が発生したということではありません。

$ drush updatedb

と、いつもの感覚でDrush(正確にはDrush Launcher)を実行したときにそれは発生しました。

◇◇◇◇

Drushのバージョン

更新前:11.6.0
更新後:12.4.3.0

◇◇◇◇

更新後、Drush Launcherを実行すると以下のようになります。

$ drush
The Drush launcher could not find a local Drush in your Drupal site.
Please add Drush with Composer to your project.

当時、日本語のサイトには情報がなかったため、海外のフォーラム等で調べたところ、Drush Launcherは今後更新される予定はない。と、書かれており、どうしたもんか~・・・。と、少し考えていたことを覚えています。

私の環境でテストを行ったところ、

Drush 11.6.0まではDrush Launcherが正常に動作しますが、Drush 12.0.0以降では動作しませんでした。
Drush 12.xはDrupal 10.xから対応なので、今回新たに分かった事案ということです。ちなみに、Drush 11.xはDrupal 9.xでの対応です。

さて、ではどうすれば今までのようにdrushを使えるようにするか、ということですが、これは比較的簡単です。
Drupalのルートに、drushへのシンボリックリンクを設置すれば解決します。

$ ln -s ./vendor/drush/drush/drush drush

Drush Launcherのように、一度設置すれば、そのサーバーにインストールされている全てのDrupal環境に適用される、ということではなく、それぞれの環境で個別にシンボリックリンクを作成する点が異なります。

$ ls -la
drwxr-xr-x  4 picology users    161  2月 10 01:20 .
drwx--x--x 20 picology users   4096 10月  6 11:17 ..
-rw-r--r--  1 picology users    357  2月  9 19:14 .editorconfig
-rw-r--r--  1 picology users   4034  2月  9 19:14 .gitattributes
-rw-r--r--  1 picology users   3420  2月 10 01:08 composer.json
-rw-r--r--  1 picology users 233761  2月 10 01:08 composer.lock
lrwxrwxrwx  1 picology users     26  2月 10 01:20 drush -> ./vendor/drush/drush/drush
drwxr-xr-x 30 picology users   4096  2月 10 01:08 vendor
drwxr-xr-x  7 picology users   4096  2月  9 19:14 web
$ drush --version
Drush Commandline Tool 12.4.3.0

Pathを通したり、ファイルをコピーしたりする方法もありますが、個人的に、環境に影響を与えることなく、こちらのほうが手っ取り早く楽にできるのではないかなと思います。