it-swarm.com.de

Wie kann man [Bash unter Ubuntu unter Windows] [Umgebungsvariablen] unter [Windows-Pfad] einstellen?

Versuchen Sie, samza.Apache.org/startup/hello-samza/0.7.0/ mit Bash On Windows zu verwenden 

es wird laufen 

bin/grid bootstrap

wo der fließende Code 

if [ -z "$Java_HOME" ]; then
  if [ -x /usr/libexec/Java_home ]; then
    export Java_HOME="$(/usr/libexec/Java_home)"
  else
    echo "Java_HOME not set. Exiting."
    exit 1
  fi
fi

einen Fehler geben

Java_HOME not set. Exiting.

auf CMD, wenn ich renne 

echo %Java_HOME%

ich habe 

C:\Program Files (x86)\Java\jdk1.8.0_102\

Ich möchte die Pfaddaten nach Bash importieren 

 enter image description here

5

Ich würde export Java_HOME="/mnt/c/Program Files (x86)/Java/jdk1.8.0_102" versuchen, die Java_HOME-Variable in der Bash-Shell festzulegen.

Update (Antwort auf Ihre Bearbeitung):

Ich würde nicht empfehlen zu versuchen, Ihre Windows-Pfade unter Ubuntu unter Windows automatisch in Bash zu importieren, da die Pfade konvertiert werden müssen, damit sie von der Bash-Shell (\ nach /, C:\ nach mnt/c/ usw.) verstanden werden, und nicht alle Die Tools, auf die Sie sich wahrscheinlich beziehen, funktionieren sowohl unter Windows als auch unter Linux. Installieren Sie stattdessen das, was Sie auf der Bash-Shell benötigen, mithilfe von apt-get (Sie müssen keine Sudo verwenden, da BUW in einer Root-Shell geladen wird). Java ist wahrscheinlich in Ordnung wie oben erwähnt, aber die meisten Dinge, die Sie separat auf Ubuntu installieren möchten.

4

Als schnelle Lösung habe ich ein Powershell-Skript erstellt, das dies tun würde 

  1. Nehmen Sie alle Windows-Umgebungsvariablen
  2. Ändern Sie das Pfadtrennzeichen in /.
  3. C: in /mnt/c ändern
  4. Die Ausgabe export befiehlt eine Zeile pro Umgebungsvariable

    Get-ChildItem Env: | % {"export $($_.Name)=`"$($_.Value.Replace('\', '/').Replace('C:', '/mnt/c'))`""}
    

Jetzt müssen Sie nur noch dieses Skript in Powershell ausführen, die Ausgabe kopieren und unter WSL/Ubuntu unter Windows einfügen, um die Umgebungsvariablen aufzufüllen. Sie können alle diese Befehle auch in einer .sh-Datei ablegen und sie mit bash ausführen.

Es ist eine grobe Lösung, aber das hat für mich funktioniert. Ich bin offen für Verbesserungsvorschläge.

1
raghav710

Meine Pfadumgebungsvariable scheint meine Windows-Pfade bereits dort zu haben. Sie können jedoch Windows-Programme von Ubuntu unter Windows ausführen. So können Sie Umgebungsvariablen erhalten oder was auch immer Sie möchten.

export PATH=$PATH:`/mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`

Es wird nicht empfohlen, Cygwin zu verwenden (Lizenzierung, Beschädigung der Registrierung usw.). Aber unten sollte funktionieren. run ist dokumentiert, um Windows-Programme von der bash-Shell aus auszuführen, die Sie erhalten.

export PATH=$PATH:`run /mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`
0
TamusJRoyce