I have 2 different Windows 2016 Servers running Drupal 8 and Drush 9 is installed on both but I have a Drush verison mismatch that I'm trying to fix.
I have this global composer.json file on both servers:
{
"require": {
"drush/drush": "9.*"
}
}
On my Test server, drush --version
shows version 9.5.2.
On my Live server, drush --version
shows version 9.7.0.
If I run composer global update drush/drush
on my Test server, it doesn't update Drush and returns, "nothing to install or update".
I tried this:
composer global require drush/drush:9.7.0
and got this error:
Changed current directory to C:/Users/username/AppData/Roaming/Composer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Can only install one of: consolidation/site-alias[3.0.0, 1.1.11].
- Can only install one of: consolidation/site-alias[3.0.0, 1.1.11].
- Can only install one of: consolidation/site-alias[3.0.0, 1.1.11].
- drush/drush 9.7.0 requires consolidation/site-alias ^3.0.0@stable -> satisfiable by consolidation/site-alias[3.0.0].
- Installation request for drush/drush 9.7.0 -> satisfiable by drush/drush[9.7.0].
- Installation request for consolidation/site-alias (locked at 1.1.11) -> satisfiable by consolidation/site-alias[1.1.11].
Installation failed, reverting ./composer.json to its original content.
Comparing the line, "name": "consolidation/site-alias",
in composer.lock in both environments, I see that Test has 1.1.11 and Live has 3.0.0.
I installed drupal/recommended-project and thought I followed the same steps on both so I'm not sure how they got out of sync. Any ideas?
What is the recommended fix?
Drush only supports one install method. It requires that your Drupal site be built with Composer and Drush be listed as a dependency.
– docs.drush.org/en/master/install – leymannx