it-swarm.com.de

Drush-Pfadeinstellungen

Ich bin ziemlich neu im Terminal und sehr neu im Drush - ich habe Drush auf meinem VPS mit Composer) installiert und wenn ich als Root ssh bin, funktioniert alles einwandfrei. Mir ist jedoch klar, dass ich es nicht sein sollte Wenn ich root verwende, versuche ich, mich mit einem anderen Benutzer einzurichten, bekomme aber immer wieder:

env: drush: No such file or directory

Mir ist klar, dass dies etwas mit dem Weg zum Drush zu tun hat, aber ich kann nicht herausfinden, was ich falsch gemacht habe. Hier sind meine .bashrc- und .bashprofile-Inhalte:

ROOT .bashrc:

# .bashrc

# To fix 'stdin is not a tty' error with Drush alias connections
export PATH=$PATH:~/.composer/vendor/drush/drush
[ -z "$PS1" ] && return

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

ROOT .bash_profile:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

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

USER .bashrc:

# .bashrc

# To fix 'stdin is not a tty' error with Drush alias connections
export PATH=$PATH:~/.composer/vendor/drush/drush
[ -z "$PS1" ] && return

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias drush='~/.composer/vendor/drush/drush'

USER .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

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

Ich habe viele Lösungen gegoogelt und verschiedene Dinge ausprobiert, daher kann es sein, dass diese Dateien inzwischen ein bisschen durcheinander sind!

2
iain-g

Sie haben drush im Benutzer-Ausgangsverzeichnis ~/.composer/vendor/drush/drush. Verwenden Sie diese alternative Methode:

Installieren Sie Drush für alle Benutzer über Composer

Wenn Drush für alle Benutzer auf einem System mit Composer installiert sein muss, install Composer global ), führen Sie die folgenden Schritte aus.

Wichtig: Führen Sie diese Shell-Befehle als privilegierter Benutzer mit Schreibzugriff auf/opt und/usr/local/bin oder Präfix mit Sudo aus.

# Create and/or navigate to a path for the single Composer Drush install.
mkdir --parents /opt/drush-8.x
cd /opt/drush-8.x
# Initialise a new Composer project that requires Drush.
composer init --require=drush/drush:8.* -n
# Configure the path Composer should use for the Drush vendor binaries.
composer config bin-dir /usr/local/bin
# Install Drush. 
composer install

https://getcomposer.org/doc/00-intro.md#globally

http://docs.drush.org/en/master/install-alternative/

2
user55206

env: drush: No such file or directory Kommt höchstwahrscheinlich aus der Zeile in Ihrer .bashrc - Datei, die auf eine nicht vorhandene Datei/ein nicht vorhandenes Verzeichnis namens drush verweist.

Da Sie sagen, Sie sind neu in Terminal und Drush, hier ein kleiner Hintergrund dessen, was meiner Meinung nach passiert: Die schnörkellose Linie ~ ('Tilde' iirc?) Ist eine Abkürzung in Terminal. Es bedeutet mein Home-Verzeichnis . Wenn also der .bashrc Ihres Root-Benutzers einen Verzeichnispfad enthält, der mit tilde beginnt, z. B. ~/.composer/vendor/drush/drush, Zeigt dies im Wesentlichen zu /home/root/.composer/vendor/drush/drush. Wenn die Datei .bashrc Im Verzeichnis Ihres Benutzers genau dieselbe Zeile enthält, verweist sie aufgrund der Tilde auf ein anderes Verzeichnis. Ihre wird auf /home/iain-g/.composer/vendor/drush/drush Zeigen (hypothetisch, wenn Ihr Linux-Login iain-g Ist).

Sie können auch nicht einfach von Ihrem eigenen /home/root Auf .bashrc Zeigen, da Sie keine Berechtigung zum Zugriff auf das Home-Verzeichnis des Root-Benutzers haben.

Was Sie also tun müssen, ist:

  • Deinstallieren Sie den von Ihnen installierten Drush für Root-Benutzer (andernfalls können später Probleme mit 2 Drushes auftreten). Dies ist möglicherweise nicht erforderlich, aber es ist schön, nach sich selbst aufzuräumen.
  • Installiere Composer global . Es ist höchstwahrscheinlich sicher, dass du /usr/local/bin/ Als Verzeichnis für die Datei composer verwendest. Wenn Sie sich nicht sicher sind, ob Sie echo $PATH In das Terminal eingeben können und alle Verzeichnisse in Ihrer PATH-Umgebungsvariablen angezeigt werden, können Sie composer in fast jedes dieser Verzeichnisse einfügen) .
  • Drush für ALLE BENUTZER über Composer installieren (siehe 2. Überschrift). Es geht nur um 5 Befehle. Und sie sind für dich geschrieben. Kopieren Sie sie einfach und fügen Sie sie ein und führen Sie sie Zeile für Zeile aus.
1
Beebee