Wie kann ich tramp + eshell dazu bringen, meine im Remote-Profil ~ / .bash_profile angepasste Umgebung zu verwenden?


9

Ich habe in meinem ~ / .bash_profile auf einem Remotecomputer ein benutzerdefiniertes $ PATH eingerichtet (für Programme, die benutzerlokal von nixund 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?


Antworten:


6

Diese Frage wurde bereits von rekado beantwortet (danke!) (Als Antwort auf eine weitere allgemeinere Frage zu eshell):

Sie können TRAMP so konfigurieren, dass die Variable PATH auf dem Remotecomputer (für Remote-Eshell-Sitzungen) berücksichtigt wird, indem Sie Folgendes 'tramp-own-remote-pathzur Liste hinzufügen 'tramp-remote-path:

(add-to-list 'tramp-remote-path 'tramp-own-remote-path)

Standardmäßig übernimmt eshell nicht die Remote-PATH-Einstellungen.

Für andere Umgebungsvariablen gibt es keinen speziellen Ansatz PATH: Man kann sie durchsetzen tramp-remote-process-environment(wie in https://www.gnu.org/software/emacs/manual/html_node/tramp/Remote-processes.html dokumentiert ):

(add-to-list 'tramp-remote-process-environment
              (format "DISPLAY=%s" (getenv "DISPLAY")))

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 EDITORspeziell, natürlich, es zu tun mitwith-editor bequemer wäre und angemessen ist .


2
Ich sehe nicht, dass das funktioniert. Vielleicht liegt das daran, dass ich einen benutzerdefinierten Pfad festgelegt und exportiert habe ~/.bash_profile(im Gegensatz zu ~/.profile), den ich in einigen Dokumenten zu diesen tramp-*Variablen gesehen habe ...
imz - Ivan Zakharyaschev

1
Dies wurde im vergangenen Dezember in Tramp behoben. Probieren Sie die Entwicklungsversion von Tramp aus.
Michael Albinus

1
In dieser Antwort sollte darauf hingewiesen werden, dass das Hinzufügen 'tramp-own-remote-pathzu dazu tramp-remote-pathführt , dass tramp eine Anmeldeshell öffnet (unter Verwendung des -lArguments), wodurch die Beschaffung erfolgt. ~/.profileDies bedeutet, dass die Anpassung pro Host ~/.profilefür andere Zwecke als durchgeführt werden kann PATH.
Noel
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.