2010-11-01 19 views
1

Un ensemble de variables système est manquant dans Cygwin lors de l'utilisation de ssh. Certains que j'ai remarqué incluent:Cygwin, via SSH, ne dispose pas de variables système

  • Un chemin approprié comprenant les chemins Visual Studio.
  • VS80COMNTOOLS
  • TEMP
  • TMP
  • PROCESSOR_ARCHITECTURE
  • PROCESSOR_IDENTIFIER
  • PROCESSOR_LEVEL
  • PROCESSOR_REVISION
  • FP_NO_HOST_CHECK
  • PSModulePath

Cela a un impact sur la tentative de compilation de la source, telle que ruby, via ssh. Ces variables existent lors de l'utilisation de rdesktop.

Comment faire pour que ces variables existent dans Cygwin lors de l'utilisation de ssh?

+0

Et votre question est? –

+0

J'ai ajouté une question explicite. –

Répondre

2

J'ai trouvé un poste qui décrit comment contourner ce problème: http://smithii.com/node/44

Voici le bit « bash o de cette page:

if [ "$SSH_TTY" ]; then 
pushd . >/dev/null 
for __dir in \ 
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session\ Manager/Environment \ 
/proc/registry/HKEY_CURRENT_USER/Environment 
do 
    cd "$__dir" 
    for __var in $(ls -1 | tr '[a-z]' '[A-Z]') 
    do 
     test -z "${!__var}" && export $__var="`cat $__var`" >/dev/null 2>&1 
    done 
done 
unset __dir 
unset __var 
popd >/dev/null 
fi 

modifié: Déplacés le tr donc il est fait une fois que. C'était douloureusement lent sinon.

0

En regardant la 1 réponse ici,> = BASH-4.4 lancera des avertissements sur:

/etc/profile: warning: command substitution: ignored null byte in input 

Pour résoudre ce problème, il suffit de changer le 'test' en ligne à partir de:

test -z "${!__var}" && export $__var="`cat $__var`" >/dev/null 2>&1 

à:

test -z "${!__var}" && export $__var="`cat $__var | tr -d '\0'`" >/dev/null 2>&1