Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Probleme mit Drush

Eingetragen von SaarlandToday (264)
am 29.04.2021 - 14:20 Uhr in
  • Anfängerfragen
  • Drupal 9.x oder neuer

Ich bekomme Drush nicht zum laufen :(

Ich versuche auf einem neuen Server drush zu installieren.

Ich gehe genau so vor wie es auf https://tubemint.com/installing-drush-with-composer/ beschrieben ist.

Composer funktioniert einwandfrei, aber wenn ich nach der Installation von Drush versuche drush aufzurufen erhalte ich immer die Meldung das drush nicht installiert ist.

Was mache ich falsch, bzw. wie kann ich drush zum laufen bringen

BS ist ubuntu 20.04 php 7.4.x

‹ [gelöst] Will den Inhalt eines WordPress-Blogs nach Drupal migrieren, welche Drupal-Version migriert noch? [gelöst] Layout kaputt, liegt es an Permissions? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du mußt dafür sorgen, daß

Eingetragen von wla (9461)
am 29.04.2021 - 21:36 Uhr

Du mußt dafür sorgen, daß Dein Suchpfad für Komandos ($PATH) auch das Verzeichis vendor/bin beinhaltet, in das der Composer drush ablegt. Bei mir ist das $HOME/vendor/bin.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Drush im Projekt installieren

Eingetragen von C_Logemann (912)
am 24.05.2021 - 11:03 Uhr

Ab Drupal 8 und mit neueren Drush-Versionen ist es angeraten Drush direkt im Projekt d.h. über das composer.json zu installieren, mit dem auch das Drupal Projekt verwaltet wird. Siehe auch: https://www.drush.org/latest/install/
Und dann kann man Drush z.B. über das Web-Root-Verzeichnis relativ aus dem "außen" liegenden bin Verzeichnis (Composer default "vendor/bin") aufrufen mit ../vendor/bin/drush *command*.

Nachtrag: Ich habe gerade mal die Anleitung auf Tubemint überflogen, die offensichtlich ein globale Installation empfiehlt, welche aber von den Drush-Entwicklern nicht mehr empfohlen wird. Bezüglich alter Drupal 6 und 7 Projekte kann man Drush auch irgendwo installieren und nutzen. Hilfreich ist teilweise auch ein ~/bin Verzeichnis z.B. auch mit Symlink zu einer alternativen PHP Version, sofern auf einem System mehrere PHP Versionen im Einsatz sind.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dafür kann man Drush Launcher einsetzen

Eingetragen von jorgemontoyab (107)
am 25.05.2021 - 03:53 Uhr
C_Logemann schrieb

Ab Drupal 8 und mit neueren Drush-Versionen ist es angeraten Drush direkt im Projekt d.h. über das composer.json zu installieren, mit dem auch das Drupal Projekt verwaltet wird. Siehe auch: https://www.drush.org/latest/install/
Und dann kann man Drush z.B. über das Web-Root-Verzeichnis relativ aus dem "außen" liegenden bin Verzeichnis (Composer default "vendor/bin") aufrufen mit ../vendor/bin/drush *command*.

https://github.com/drush-ops/drush-launcher#drush-launcher

AnhangGröße
drush.png 54.99 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Man kann drush auch auf

Eingetragen von glycid (921)
am 26.05.2021 - 13:33 Uhr

Man kann drush auch auf projektbezogener Basis ohne den relativen Pfad- Bestandteil vendor/bin/drush mit einem Alias nutzen.

Dazu in den Projektordner wechseln und dann folgenden Befehl eingeben:

echo "alias drush='vendor/bin/drush'" >> .bashrc

Die Konfig noch laden mit:

source .bashrc

und fertig.

Edit: Pfad korrigiert

  • Anmelden oder Registrieren um Kommentare zu schreiben

glycid schrieb Man kann drush

Eingetragen von jorgemontoyab (107)
am 26.05.2021 - 03:22 Uhr
glycid schrieb

Man kann drush auch auf projektbezogener Basis ohne den relativen Pfad- Bestandteil vendor/bin/drush mit einem Alias nutzen.

Dazu in den Projektordner wechseln und dann folgenden Befehl eingeben:

echo "alias drush='~/vendor/bin/drush'" >> .bashrc

Die Konfig noch laden mit:

source .bashrc

und fertig.

Sehr cooler Tipp!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kleine Korrektur und zusätzliche Tipps für Drush cli aliase

Eingetragen von C_Logemann (912)
am 26.05.2021 - 13:01 Uhr
glycid schrieb

Man kann drush auch auf projektbezogener Basis ohne den relativen Pfad- Bestandteil vendor/bin/drush mit einem Alias nutzen.

Dazu in den Projektordner wechseln und dann folgenden Befehl eingeben:

echo "alias drush='~/vendor/bin/drush'" >> .bashrc

Die .bashrc wird nicht in jedem Betriebssystem einfach so genutzt z.B. nicht unter Mac OS usw. Vor allem wird nicht überall per default die bash shell benutzt. Aber grundsätzlich sind aliase sehr nützlich und auch unter anderen Shells nutzbar. Allerdings würde ich nicht empfehlen diese einfach via "echo" Befehl in eine Config-Datei wie z.B. ".bashrc" hinein zu pushen.

Und nun zur Fehlerkorrektur: "~" steht für das Home-Verzeichnis und ist auch in der CLI Variable $HOME hinterlegt. Und das obige Beispiel zeigt damit wieder auf das vendor/bin im Home-Verzeichnis und ist nicht relativ. In der Logik der projektbezogenen installation brauchen wir ".." um in das nächst höhere Verzeichnis zu gelangen. Und da ich Tipp-Faul bin habe ich für diesen relativen Alias auch "dr" als cmd genutzt und lasse es in unseren Verwaltungs-Skripten auch automatisch in allen Systemen konfigurieren als:
alias dr='../vendor/bin/drush'

Dazu kommen dann bei uns noch diverse andere automatisch konfigurierte aliase auch mit komplett absoluten Pfaden zu Drush inkl. der Übergabe diverser Parameter wie "--root" und "--uri" und auch commands, da diverse Commands die Arbeits-Domain benötigen oder bequemer nutzbar sind wie z.B. das "uli" Command, das dann die komplette URL zum Onetime-Login-Link ausgibt.

# Nachträgliche Ergänzung zum Drush Launcher:
Den kenne ich aber habe teilweise auch schon Probleme damit gehabt. Selbst das "--root" flag in Drush macht manchmal Probleme so daß ich aktuell dazu tendiere, bei wichtigen Operationen (z.B. drush upbd) in Produktiv-Systemen, diese aus dem Web-Root heraus mit "dr" (siehe oben) auszuführen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

C_Logemann schrieb Die

Eingetragen von glycid (921)
am 26.05.2021 - 13:33 Uhr
C_Logemann schrieb

Die .bashrc wird nicht in jedem Betriebssystem einfach so genutzt z.B. nicht unter Mac OS

Natürlich nutzt die MacOS Shell .bashrc

C_Logemann schrieb

Und nun zur Fehlerkorrektur: "~" steht für das Home-Verzeichnis

Ja, ist aus Versehen mit reingerutscht. Aber ganz ehrlich: Das ist doch jedem klar, dass, wenn ich in's Projektverzeichnis wechsel, der Pfad vendor/bin/drush sein muss. (und nicht ../vendor/bin/drush, weil das Projektverzeichnis in der Regel die oberste Ebene ist).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Alias-Vorschläge entsprechend Projekt, OS und User anpassen

Eingetragen von C_Logemann (912)
am 26.05.2021 - 14:35 Uhr
glycid schrieb
C_Logemann schrieb

Die .bashrc wird nicht in jedem Betriebssystem einfach so genutzt z.B. nicht unter Mac OS

Natürlich nutzt die MacOS Shell .bashrc

So natürlich ist das alles nicht. Mal davon abgesehen, daß bash schon seit längerem nicht mehr default shell unter macOS ist aber trotzdem installiert wird, gibt es hier (siehe z.B. diesen Link) wie auch in unterschiedlichen Linux-Versionen teilweise unterschiedliche Voreinstellungen, wann welche shell config files geladen werden. So daß ich da keinen universellen Tipp für abgegeben mag. Für bash lohnt sich auch mal ein Blick in "man bash".

glycid schrieb
C_Logemann schrieb

Und nun zur Fehlerkorrektur: "~" steht für das Home-Verzeichnis

Ja, ist aus Versehen mit reingerutscht. Aber ganz ehrlich: Das ist doch jedem klar, dass, wenn ich in's Projektverzeichnis wechsel, der Pfad vendor/bin/drush sein muss. (und nicht ../vendor/bin/drush, weil das Projektverzeichnis in der Regel die oberste Ebene ist).

Soweit ich weiß, werden user spezifische shell configs automatisch nur erfasst beim nächsten Login/shell start, wenn sie im Home-Verzeichnis des Users liegen. Somit macht es wenig Sinn den Alias in einem .bashrc im Projekt Ordner zu kopieren. Sonst müsste man denke ich bei jeder Session ein "source .bashrc" ausführen. Bei Anpassungen braucht man in der aktuellen Session aber entweder ein bash neustart oder man lädt die Config neu mit "source ~/.bashrc".
Unabhängig davon benötigt Drush – wenn es nicht direkt innerhalb des Webroots (z.b. Folder "web") aufgerufen wird – ein "--root" (oder "-r") flag. Das lässt sich auch in einem alias unter bringen z.B.mit "alias dr-web='vendor/bin/drush --root=web'", um dann aus dem Projekt-Ordner heraus zu funktionieren. Allerdings kann es auch sein, daß via Composer ein anderes "bin"-Verzeichnis angeben wird ("vendor/bin" ist nur default). So war es z.B. in früheren Versionen der Thunder-Distribution. Thunder definiert im composer.json aber z.B. Immer noch den Folder "docroot" im Gegensatz zum inzwischen in Drupal Composer Projekten sonst üblichen "web".
Das heißt, die Symlink-Vorschläge sollten entsprechend des Projekts und der konkreten Betriebs-System und konkreten User-Konfiguration angepasst werden.

--
Korrektur des Titels: Da stand fälschlicherweise "Symlink" obwohl ich "Alias" meinte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 13 Stunden
  • Hey danke
    vor 2 Tagen 8 Stunden
  • Update: jetzt gibt's ein
    vor 3 Tagen 2 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 12 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 15 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 7 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association