¿Cómo hago para que tramp + eshell use mi entorno personalizado en el perfil remoto ~ / .bash_profile?

9

He configurado $ PATH personalizado en mi ~ / .bash_profile en una máquina remota (para programas instalados localmente por el usuario por nixy cabal).

Uso eshell y vagabundo para emitir comandos en la máquina remota ( cd /remotehost:somedir; luego comandos). (Elegí este método en lugar de las sesiones SSH comunes en un terminal principalmente porque estoy usando una mala conexión y las sesiones SSH se interrumpen muy a menudo, por lo que no puedo contar con poder iniciar sesión, cd y emitir un comando antes de que se interrumpa la conexión.)

Desafortunadamente, mi PATH personalizado no se cumple en esta situación, y algunos de los programas no se encuentran.

¿Cuál sería la mejor manera de resolver este problema?

imz - Ivan Zakharyaschev
fuente

Respuestas:

6

Esta pregunta ya ha sido respondida por rekado (¡gracias!) (Como respuesta a otra pregunta más general sobre eshell):

Puede configurar TRAMP para respetar la variable PATH en la máquina remota (para sesiones remotas de eshell) agregando 'tramp-own-remote-patha la lista 'tramp-remote-path:

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

De forma predeterminada, eshell no adoptará la configuración de RUTA remota.

En cuanto a otras variables de entorno, no existe un enfoque especial en cuanto a PATH: uno puede configurarlas tramp-remote-process-environment(como se documenta en https://www.gnu.org/software/emacs/manual/html_node/tramp/Remote-processes.html ):

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

y no sé de una manera que lea los que están en el control remoto ~/.bash_profile. Por lo tanto, debe repetirlos en esta variable en el lado local en Emacs como solución alternativa, lo cual no es totalmente conveniente porque diferentes hosts remotos pueden necesitar diferentes valores.

En cuanto a EDITORespecíficamente, por supuesto, hacerlo conwith-editor sería más conveniente y apropiado.

imz - Ivan Zakharyaschev
fuente
2
No veo que esto funcione. Tal vez, es porque configuré y exporté una RUTA personalizada en ~/.bash_profile(contrario a ~/.profile) que he visto en algunos documentos sobre estos tramp-*vars ...
imz - Ivan Zakharyaschev
1
Esto se solucionó en Tramp en diciembre pasado. Prueba la versión de desarrollo de Tramp.
Michael Albinus
1
Puede valer la pena señalar en esta respuesta que agregar 'tramp-own-remote-patha tramp-remote-pathcausas provoca que el vagabundo abra un shell de inicio de sesión (utilizando el -largumento), lo ~/.profileque significa que la personalización por host se puede hacer ~/.profilepara otras cosas que no sean PATH.
Noel