Ich habe ein Paket s2cmd
auf meinem Unix-Rechner installiert . Es funktioniert einwandfrei, wenn ich es von dem Ordner aus starte, in dem es sich befindet, aber es wurde nicht von einem anderen Speicherort aus gestartet. Daher habe ich den Pfad mit dem Befehl festgelegt, export PATH=$PATH:/opt/bitnami/S3Tools/s3cmd-1.5.0-alpha1
dass sich eine Datei s3cmd
in diesem Ordner befindet, die ausgeführt werden muss.
Das Problem ist jetzt, wenn ich a mache which s3cmd
, bekomme ich den richtigen Pfad als Ausgabe, aber wenn ich es mit benutze, sagt sudo s3cmd
es zum Beispiel command not found
. Wenn ich den absoluten Pfad gebe und versuche, ihn auszuführen, läuft er von jedem Ort aus.
Was mache ich falsch?
EDIT: Ich habe gerade bemerkt, dass es 2 PATH-Variablen mit dem gleichen Pfad gibt. Verursacht das das Problem? Wenn ja, wie korrigiere ich das?
$ set | grep PATH
PATH=/opt/bitnami/rvm/bin:/opt/bitnami/memcached/bin:/opt/bitnami/varnish/bin:/opt/bitnami/redis/bin:/opt/bitnami/nodejs/bin:/opt/bitnami/mercurial/bin:/opt/bitnami/perl/bin:/opt/bitnami/git/bin:/opt/bitnami/nginx/sbin:/opt/bitnami/frameworks/laravel/app/Console:/opt/bitnami/frameworks/cakephp/app/Console:/opt/bitnami/frameworks/codeigniter/bin:/opt/bitnami/frameworks/symfony/bin:/opt/bitnami/frameworks/zendframework/app/Console:/opt/bitnami/sphinx/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/apps/django/bin:/opt/bitnami/php/bin::/opt/bitnami/java/bin:/opt/bitnami/mysql/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/apache2/bin:/opt/bitnami/python/bin:/opt/bitnami/subversion/bin:/opt/bitnami/ruby/bin:/opt/bitnami/common/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/bitnami/S3Tools/s3cmd-1.5.0-alpha1:/opt/bitnami/S3Tools/s3cmd-1.5.0-alpha1
_=PATH
export PATH;
PATH="$2:$PATH"
PATH="$PATH:$2"
PATH="${rvm_user_path_prefix}:$PATH";
PATH="$(printf "%b" "$PATH" | awk -v RS=: -v ORS=: '!($0 in a){a[$0];print}')";
PATH="${PATH/%:/}";
export PATH;
if printf "%b" "${PATH//:/ }" | GREP_OPTIONS="" \grep -vF "${rvm_bin_path}" > /dev/null 2>&1; then
PATH="$PATH:${rvm_bin_path}"
PATH="${rvm_bin_path}:$PATH"
printf "%b" "export PATH ; PATH=\"${rvm_ruby_gem_home}/bin:${rvm_ruby_global_gems_path}/bin:${rvm_ruby_home}/bin:${rvm_bin_path}:\$PATH\"\n" > "$file_name";
for variable in rvm_env_string rvm_path rvm_ruby_string rvm_gemset_name RUBY_VERSION GEM_HOME GEM_PATH MY_RUBY_HOME IRBRC MAGLEV_HOME RBXOPT;
export PATH;
\awk '/PATH/' < "$actual_file";
rvm_error "Neither md5 nor md5sum were found in the PATH";
rvm_error "Neither md5 nor md5sum were found in the PATH";
export PATH;
PATH=":$PATH:";
PATH="${PATH//:$1:/:}";
PATH="${PATH//::/:}";
PATH="${PATH%:}";
PATH="${PATH#:}"
PATH="$(printf "%b" "$PATH" | awk -v RS=: -v ORS=: "/${rvm_path//\//\/}/ {next} {print}")";
PATH="${PATH/%:/}";
export PATH;
export GEM_HOME GEM_PATH MY_RUBY_HOME RUBY_VERSION IRBRC;
rvm_error "Neither sha256sum nor shasum found in the PATH";
rvm_error "Neither sha256sum nor shasum found in the PATH";
export GEM_HOME GEM_PATH MY_RUBY_HOME RUBY_VERSION IRBRC;
GEM_PATH="$rvm_ruby_gem_path";
unset BUNDLE_PATH;
GEM_PATH="$GEM_PATH:$MAGLEV_HOME/lib/maglev/gems/1.8/";
new_path="$GEM_HOME/bin:$rvm_ruby_global_gems_path/bin:$MY_RUBY_HOME/bin:${rvm_bin_path}:$(__rvm_remove_rvm_from_path ;printf "%b" "$PATH")";
new_path="$GEM_HOME/bin:$MY_RUBY_HOME/bin:${rvm_bin_path}:$(__rvm_remove_rvm_from_path ;printf "%b" "$PATH")";
export PATH="$new_path";
unset GEM_HOME GEM_PATH MY_RUBY_HOME RUBY_VERSION IRBRC;
new_path="$(__rvm_remove_rvm_from_path ; printf "%b" "$PATH"):${rvm_bin_path}";
new_path="$PATH:${rvm_bin_path}";
COMPREPLY=($( eval PATH="$PATH:/sbin" $cmd 2>/dev/null | awk '/^[^ \t]/ { print $1 }' ));
if [[ -z "${CDPATH:-}" || "$cur" == ?(.)?(.)/* ]]; then
for i in ${CDPATH//:/'
if [ "${INFOPATH: -1:1}" == ':' ]; then
infopath=${INFOPATH}${infopath};
if [ ${INFOPATH:+set} ]; then
infopath=$INFOPATH;
COMPREPLY=($( compgen -W "$( PATH="$PATH:/sbin" lsmod | awk '{if (NR != 1) print $1}' )" -- "$1" ))
[ -z "$classpath" ] && classpath=$CLASSPATH;
local PATH="$PATH:/sbin:/usr/sbin";
manpath=$MANPATH;
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$( PATH="$PATH:/sbin" lspci -n | awk '{print $3}')" -- "$cur" ))
local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin;
COMPREPLY=("${COMPREPLY[@]}" $( compgen -W "$( PATH="$PATH:/sbin" ifconfig -a | sed -ne 's/.*addr:\([^[:space:]]*\).*/\1/p' -ne 's/.*inet[[:space:]]\{1,\}\([^[:space:]]*\).*/\1/p' )" -- "$cur" ))
COMPREPLY=($( compgen -W "$( PATH="$PATH:/sbin" sysctl -N -a 2>/dev/null )" -- "$cur" ));
COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$( PATH="$PATH:/sbin" lsusb | awk '{print $6}' )" -- "$cur" ))
GEM_PATH="$rvm_ruby_gem_home:$rvm_ruby_gem_home${rvm_gemset_separator:-"@"}global";
export rvm_ruby_gem_home GEM_HOME GEM_PATH;
set | grep PATH
. Viel Glück.
env_reset
möglicherweise ein Zurücksetzen durchgeführt PATH
wird sudo
.
set
, müssen Sie sagen , was Shell Sie verwenden (zB bash
, csh
, ksh
, zsh
, etc.) Es sieht aus wie du bist eine Shell läuft , wo die set
Befehlsausgänge alle Variablen und Shell Funktionen –– Sie erhalten also jede Zeile von jeder Shell-Funktion, die den String enthält PATH
, einschließlich einiger, die PATH setzen. Das ist ein roter Hering. Wenn Sie misstrauen echo "$PATH"
, versuchen Sie es env | grep "^PATH="
.
sudo
? Was passiert, wenn Sie es ohne ausführen sudo
? ... wenn Sie es ohne sudo
aus einem anderen Verzeichnis ausführen ? (Wenn Sie einen Berechtigungsfehler erhalten, die bestätigt , dass Sie PATH richtig eingestellt, wenn Sie eine „nicht gefunden“ Fehlermeldung erhalten, das zeigt , dass Sie nicht.) Können Sie tun sudo sh
, sudo bash
, sudo -s
, oder gleichwertig? Wenn ja, das tun und dann wiederholen Sie die anderen Schritte ( s3cmd
, which s3cmd
, echo "$PATH"
). Wenn Ihre PATH
Variable durch eine Standardvariable ersetzt wurde, gehen Sie zurück und versuchen Sie sudo -E
, die Umgebung zu schonen.
env_reset
in dersudoers
Datei festgelegt ist.