Komenda Drush nie została znaleziona po całkowitym zainstalowaniu Drush

11

Zainstalowałem Drush 8 z kompozytorem.

composer require drush/drush:~8

Niestety nie znaleziono polecenia błędu drush po całkowitym zainstalowaniu Drush.

Dlaczego nie można użyć polecenia drush?

wprowadź opis zdjęcia tutaj

Instalowanie Drush dla Drupal 8 z Composer

https://www.youtube.com/watch?v=ZqY_XsCTmAc

JJ12345
źródło
Zakładając, że twój php to 5.4.5 lub więcej, zastanawiam się, czy ta „kompilacja zakończona niepowodzeniem” ma coś wspólnego z twoim problemem.
Bez Sssweat
@NoSssweat Thanks. Jak mogę to usunąć? Czy to usuwa plik composer.json?
JJ12345,
Następnie spróbuj zainstalować Drush 9 master / dev.
Bez Sssweat
composer global require drush/drush:dev-master
Bez Sssweat

Odpowiedzi:

19

Po zainstalowaniu Drush, musisz upewnić się, że katalog ~ / vendor / bin znajduje się w $ PATH, jak wyjaśniono w instrukcjach instalacji (Uwaga: ten link już nie działa)

Dodaj export PATH="$HOME/.composer/vendor/bin:$PATH"do swojego ~ / .bash_profile lub ~ / .bashrc, a następnie uruchom source ~/.bash_profile(lub ~ / .bashrc).

composer requireW tym momencie odradzam instalowanie Drusha 9 . Najlepiej jest trzymać się Drush 8; jeśli chcesz użyć Drusha 9, skorzystaj z prostszej metody instalacji, np. pobierając plik .phar lub sklonuj repozytorium i uruchom composer installw katalogu, do którego Drush został sklonowany.

greg_1_anderson
źródło
1
I would recommend against installing Drush 9 via composer require at this time.Dzięki za informację!
Bez Sssweat
1
Jaki jest powód, aby nie instalować Drush 9 przez composer require?
Jimmy Ko
Niestabilna wersja Drush wymaga pewnych niestabilnych wersji swoich zależności. Może to powodować pewne komplikacje, w zależności od tego, co robisz. Ogólnie można obejść ten problem, ustawiając minimalną stabilność, ale łatwiej jest po prostu zainstalować inną metodą. Na marginesie, jeśli jesteś skłonny do composer global requireczegokolwiek używać , zobacz github.com/consolidation-org/cgr
greg_1_anderson
@JimmyKo Powodem, dla którego globalny Drush nie jest zalecany, jest to, że w Drush 9+ najlepsze praktyki zalecają zainstalowanie Drusha jako zależności dla Drupala. Zapobiega to na przykład problemom z niedopasowaniem wersji Drush.
karolus
Jeśli nadal nie działa, `~ / .bash_profile` lub ~/.bashrcmógł zostać poddany edycji. Utwórz kopię zapasową i znajdź domyślną.
Chris Happy
11

Używając ssh na moim serwerze, dodałem drush do mojej ścieżki, postępując zgodnie z instrukcjami kompozytora: Add

    export PATH="$HOME/.composer/vendor/bin:$PATH"

do ~ / .bash_profile lub ~ / .bashrc, a następnie uruchom source ~ / .bash_profile (lub ~ / .bashrc)

Jednak uruchomiłem to

    drush status
    -bash: drush: command not found

    which composer
    /opt/cpanel/composer/bin/composer

    which drush   
    /usr/bin/which: no drush in (/home/mth/.composer/vendor/bin:/home/mth/.composer/vendor/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/cpanel/composer/bin:/home/mth/bin:/home/mth/bin)

Za pomocą mojego menedżera plików cPanel odkryłem, że nie widzę ukrytego folderu kompozytora, chociaż widziałem inne ukryte foldery i pliki (prefiks kropki). Okazuje się, że kompozytor był w folderze .config. Dodałem nowy folder do mojej $ PATH i bingo!

    export PATH="$HOME/.config/composer/vendor/bin:$PATH"   

Godziny! Morał? Sprawdź lokalizację kompozytora.

mfuller526
źródło
0

Musisz upewnić się, że drushznajduje się on w PATHzmiennej środowiskowej , lub możesz określić folder instalacyjny, ustawiając COMPOSER_BIN_DIRnp .:

sudo COMPOSER_HOME=/var/lib/composer COMPOSER_BIN_DIR=/usr/local/bin COMPOSER_VENDOR_DIR=/var/lib/composer/vendor composer require drush/drush:~8

Lub jest o wiele łatwiej zainstalować go przez Phar, np. W systemie Linux:

sudo install <(curl http://files.drush.org/drush.phar) /usr/local/bin/drush

Na OS X, spróbuj: brew install drush.

kenorb
źródło
0

Teraz, chociaż moje problemy dotyczyły instalacji Composer Scaffold dla Drupala 8, która wymaga zainstalowania Drusha (w tym przypadku v.9) jako zależności, ja również miałem podobne problemy. Mimo że globalny Drush nie jest już zalecany, z powodu problemów z zależnością, bardzo wygodnie jest wzywać Drush z dowolnego miejsca.

Polecam zainstalować Drush Launcher , który da ci możliwość wywoływania Drush z dowolnego miejsca, nawet jeśli prowadzisz różne projekty przy użyciu różnych wersji Drush. Mam go uruchomionego zarówno lokalnie, jak i na moich serwerach sieciowych, i działa tam dobrze. Naprawiono problemy z widzeniem drush: command not found, nawet gdy miałem projekty, w których Kompozytor poprawnie zainstalował Drusha.

karolus
źródło