リモートの〜/ .bash_profileでカスタマイズした環境をtramp + eshellで使用するにはどうすればよいですか?


9

リモートマシンの〜/ .bash_profileにカスタム$ PATHを設定しました(nixおよびによってユーザーがローカルにインストールしたプログラムの場合cabal)。

eshellとtrampを使用して、リモートマシンでコマンドを発行します(cd /remotehost:somedir;次にコマンド)。(端末の一般的なSSHセッションではなくこの方法を選択しました。これは主に、接続不良を使用していて、SSHセッションが頻繁に中断されるため、ログイン、cd、および発行できることを期待できません。接続が中断される前のコマンド。)

残念ながら、この状況ではカスタムPATHが守られず、一部のプログラムが見つかりません。

この問題を解決する最も良い方法は何でしょうか?


回答:


6

この質問はすでにrekado(thanks!)によって回答されています( eshellに関する別のより一般的な質問への回答として):

'tramp-own-remote-pathリストに追加することで、リモートマシンの(リモートeshellセッションの)PATH変数を尊重するようにTRAMPを設定できます 'tramp-remote-path

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

デフォルトでは、eshellはリモートPATH設定を採用しません。

他の環境変数については、特別なアプローチはありません。次のようにPATH設定できますtramp-remote-process-environmenthttps://www.gnu.org/software/emacs/manual/html_node/tramp/Remote-processes.htmlに記載されています):

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

そして、私はリモートで設定されたものを読み取る方法を知りません~/.bash_profile。したがって、回避策としてEmacsのローカル側のこの変数でそれらを繰り返す必要があります。これは、リモートホストごとに異なる値が必要になる可能性があるため、完全に便利ではありません。

EDITOR具体的には、当然のことながら、それをやってすることはwith-editor、より便利かつ適切であろう。


2
これでうまくいくとは思いません。おそらく、これらの変数に関するいくつかのドキュメントで見た~/.bash_profile(とは対照的に~/.profile)でカスタムPATHを設定およびエクスポートするためtramp-*です...
imz-Ivan Zakharyaschev

1
これは昨年12月にTrampで修正されました。Trampの開発版をお試しください。
Michael Albinus、2015年

1
これは、追加することを、この答えで指摘する価値があるかもしれません'tramp-own-remote-pathtramp-remote-path原因が(使用してログインシェル開くためにtrampに使わ-lそれによって調達、引数)~/.profileホストごとのカスタマイズがで行うことができることを、この手段- ~/.profile以外のもののためにPATH
ノエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.