Ich habe in meinem ~ / .bash_profile auf einem Remotecomputer ein benutzerdefiniertes $ PATH eingerichtet (für Programme, die benutzerlokal von nix
und installiert wurden cabal
).
Ich benutze eshell und tramp, um Befehle auf dem Remote-Computer auszugeben ( cd /remotehost:somedir
; dann Befehle). (Ich habe diese Methode anstelle der üblichen SSH-Sitzungen in einem Terminal gewählt, hauptsächlich, weil ich eine schlechte Verbindung verwende und SSH-Sitzungen sehr oft unterbrochen werden, sodass ich mich nicht darauf verlassen kann, dass ich mich anmelden, cd und a ausgeben kann Befehl, bevor die Verbindung unterbrochen wird.)
Leider wird mein benutzerdefinierter Pfad in dieser Situation nicht berücksichtigt, und einige der Programme werden nicht gefunden.
Was wäre der schönste Weg, um dieses Problem zu lösen?
quelle
Antworten:
Diese Frage wurde bereits von rekado beantwortet (danke!) (Als Antwort auf eine weitere allgemeinere Frage zu eshell):
Für andere Umgebungsvariablen gibt es keinen speziellen Ansatz
PATH
: Man kann sie durchsetzentramp-remote-process-environment
(wie in https://www.gnu.org/software/emacs/manual/html_node/tramp/Remote-processes.html dokumentiert ):und ich kenne keinen Weg, der die in der Fernbedienung eingestellten lesen würde
~/.bash_profile
. Daher müssen Sie sie in dieser Variablen auf der lokalen Seite in Emacs als Problemumgehung wiederholen. Dies ist nicht ganz praktisch, da unterschiedliche Remote-Hosts möglicherweise unterschiedliche Werte benötigen.Was
EDITOR
speziell, natürlich, es zu tun mitwith-editor
bequemer wäre und angemessen ist .quelle
~/.bash_profile
(im Gegensatz zu~/.profile
), den ich in einigen Dokumenten zu diesentramp-*
Variablen gesehen habe ...'tramp-own-remote-path
zu dazutramp-remote-path
führt , dass tramp eine Anmeldeshell öffnet (unter Verwendung des-l
Arguments), wodurch die Beschaffung erfolgt.~/.profile
Dies bedeutet, dass die Anpassung pro Host~/.profile
für andere Zwecke als durchgeführt werden kannPATH
.