Ich habe ein Bash-Skript, das rbenv
zu /usr/local
installiert und fügt die erforderlichen Umgebungsvariablen zu /etc/profile
. Mein Benutzer ist root
:Quelle/etc/Profil in Bash-Skript
#!/bin/bash
exec {log_fd}>log.txt
git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv >&$log_fd 2>&1
git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build >&$log_fd 2>&1
echo 'export RBENV_ROOT=/usr/local/rbenv' >> /etc/profile >&$log_fd 2>&1
echo 'export PATH="/usr/local/rbenv/bin:$PATH"' >> /etc/profile >&$log_fd 2>&1
echo 'if which rbenv > /dev/null; then eval "$(rbenv init - --no-rehash)"; fi' >> /etc/profile >&$log_fd 2>&1
. /etc/profile
Jedoch wird die PATH-Variable nicht exportiert werden, wie es sollte, aber RBENV_ROOT ist!
~#: printenv
RBENV_ROOT=/usr/local/rbenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
MAIL=/var/mail/root
LANG=en_US.UTF-8
RBENV_SHELL=bash
ich erwarten würde /usr/local/rbenv/
als Teil des Pfades zu sehen, nicht wahr?
ich auch habe versucht, die Syntax Hochschalten für den Pfad hinzugefügt, aber das half auch nicht:
echo 'export PATH=$PATH:/usr/local/rbenv/bin' >> /etc/profile 2>&1
Falls Sie sich fragen, ich bin die Ausgabe umleiten, weil dies alles innerhalb ein Whiptail-Menü.
Also, warum würde eine Variable RBENV_ROOT
angezeigt werden, aber nicht meine angeblich aktualisierte PATH
?
Das ist das Problem, mit dem ich es zu tun habe ... kann ich es aus dem selben Skript beziehen, so dass ich keine neue Login-Shell starten muss? – Godzilla74
Könnte 'rbenv init - --no-rehash'' 'PATH' 'zurückstellen ?! –