web-dev-qa-db-fra.com

Après l'installation de composer: "La commande drush X est introuvable"

Edit: réécrit le paragraphe d'introduction pour mettre en évidence l'installation de composer - je soupçonne composer peut avoir rompu le drush.

Je veux tester la recherche élastique avec D7. J'ai utilisé drush pour installer une nouvelle installation D7, puis des vues, elasticsearch_connector, des bibliothèques. À ce stade, Watchdog a indiqué que je manquais la bibliothèque elasticsearch-php.

J'ai essayé de suivre les instructions d'Elasticsearch pour obtenir cette bibliothèque et j'ai installé le compositeur:

/sites/mysite $ curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /sites/aarp/composer.phar
Use it: php composer.phar
/sites/mysite $ Sudo mv composer.phar /usr/local/

J'ai ajouté un alias pour composer à mon ~/.profile. Je n'ai pas pu utiliser de commandes drush depuis (voir ci-dessous). J'ai depuis découvert que le compositeur peut être utilisé pour installer drush alors maintenant je soupçonne que c'est la racine de mon problème.

/sites/mysite $ drush en composer_manager -y
composer_manager was not found.                                                                                                                                        [warning]
The following projects provide some or all of the extensions not found:                                                                                                [ok]
composer_manager
Would you like to download them? (y/n): y
cProject composer_manager (7.x-1.7) downloaded to sites/all/modules/composer_manager.                                                                                   [success]
dThe following extensions will be enabled: composer_manager
Do you really want to continue? (y/n): y
composer_manager was enabled successfully.                                                                                                                             [ok]
One or more extensions have dependencies managed by Composer.
Update packages managed by Composer? (y/n): y
Download and install the Drush Composer extension? (y/n): y
Directory /Users/mmutrux/.drush exists, but is not writable. Please check directory permissions.                                                                       [error]
Project composer (8.x-1.x-dev) could not be downloaded to /Users/mmutrux/.drush/composer.                                                                              [error]
The drush command 'composer' could not be found.                                                                                                                       [error]
/sites/mysite $ chgrp _www /Users/m
macadmin/ mmutrux/  
/sites/mysite $ chgrp _www /Users/mmutrux/.drush/
chgrp: you are not a member of group _www
/sites/mysite $ chgrp _www /Users/mmutrux/.drush/
/sites/mysite $ chmod 777 /Users/mmutrux/.drush/
chmod: Unable to change file mode on /Users/mmutrux/.drush/: Operation not permitted
/sites/mysite $ Sudo chmod 777 /Users/mmutrux/.drush/
Password:
/sites/mysite $ drush en composer_manager -y
The drush command 'en composer_manager' could not be found.  Run `drush cache-clear drush` to clear the commandfile cache if you have installed new extensions.        [error]
/sites/mysite $ drush cache-clear drush
The drush command 'cache-clear drush' could not be found.  Run `drush cache-clear drush` to clear the commandfile cache if you have installed new extensions.          [error]

Où est passé mon drush ??

Edit: ajouté en réponse aux commentaires

/sites/mysite $ which drush
/opt/local/bin/drush
/sites/mysite $ drush --version
The drush command 'version' could not be found.  Run `drush cache-clear drush` to clear the commandfile cache if you have installed new extensions.                    [error]
/sites/mysite $ Sudo drush --version
The drush command 'version' could not be found.  Run `drush cache-clear drush` to clear the commandfile cache if you have installed new extensions.                    [error]
/sites/mysite $ drush --version -v
Initialized Drupal 7.35-dev root directory at /sites/aarp                                                                                                                 [notice]
Initialized Drupal site default at sites/default                                                                                                                          [notice]
The drush command 'version' could not be found.  Run `drush cache-clear drush` to clear the commandfile cache if you have installed new extensions.                    [error]
5
doub1ejack

Je ne sais pas si cela aidera quelqu'un, mais si jamais vous rencontrez ce problème:

Cela semblait être un problème d'autorisations depuis le début, donc dans le chat, nous:

  • Suppression de l'ancien drush et des instances composer.
  • Compositeur installé
  • Drush téléchargé depuis Github
  • Dépendances installées via Composer

Une fois que nous avions une nouvelle copie de drush, il semble que le drush fonctionne maintenant très bien. Nous avons eu quelques petits problèmes provenant de la machine utilisée.

1
burnsjeremy

S'inspirant des commentaires de Free Radical, cela fonctionne pour moi même sans supprimer le répertoire .composer:

  1. drush cc allextérieur le répertoire racine Drupal
  2. drush cc allà l'intérieur le répertoire racine Drupal
9

J'ai été mordu par le même problème après avoir essayé d'installer Composer Manager pour D7 en utilisant cette commande:

drush en composer_manager -y

L'installation s'est bloquée, et après cela, drush a répondu "La commande drush X est introuvable" pour tous les X, y compris cc et version.

Voici ce que j'ai fait pour le faire fonctionner à nouveau:

  1. Suppression d'un répertoire nommé .composer qui avait été créé dans mon répertoire personnel.
  2. Fait drush cc all à l'extérieur de la racine Drupal (cela fonctionne maintenant)).
  3. A navigué vers la racine Drupal, et drush cc all à nouveau (cela fonctionne maintenant).

Je n'ai fait aucun test pour voir si toutes ces étapes sont nécessaires - il suffit de le poster au cas où cela aiderait quelqu'un qui voudrait s'en remettre sans réinstaller drush .

1
Free Radical

Pour moi, en utilisant Drupal dans une image Docker avec Bowline j'ai rencontré le même problème, mais le drush cc all la méthode n'a pas fonctionné, et je ne voulais pas supprimer les installations de Bowline composer.

Mais en prenant les indices ci-dessus, j'ai trouvé que la suppression manuelle du ./.drush/cache répertoire dans la racine de mon projet (même niveau que bin) de Bowline fixe drush. J'espère que cela aide quelqu'un dans les mêmes circonstances.

1
admataz

Une approche monoplace ...

pushd $HOME && drush cc drush && popd
0
jwal