2

最近、新しい FreeBSD マシンをセットアップしましたが、Emacs Tramp 経由で接続できないようです。「Tramp: Found remote shell prompt on 'broken.example.com'」でスタックしたままになります。(ホスト名は匿名化のために変更されています)

提案されているように、デバッグを 10 に上げましたが、このコマンドでスタックしています。

stty icanon erase ^H cols 32767

このコマンドをループで継続的に実行します。完全なログはhttp://depht.com/temp/emacs-tramp-broken.example.com.txtからダウンロードできます。

壊れた.example.comからの「stty -a」。

speed 9600 baud; 65 rows; 32767 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho -pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk
    brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl tab0 -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^@; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^H; erase2 = ^T; intr = ^C; kill = ^U;
    lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q;
    status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;

これと同じ Emacs Tramp クライアント、working.example.com でうまく動作する少し古い OpenBSD マシンがあります。このマシンへの接続のログはhttp://depht.com/temp/emacs-tramp-working.example.com.txtにあります

working.example.com の「stty -a」

speed 9600 baud; 65 rows; 166 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc -xcase
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel
        -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
cchars: discard = ^O; dsusp = ^@; eof = ^D; eol = <undef>;
        eol2 = <undef>; erase = ^H; intr = ^C; kill = ^U; lnext = ^V;
        min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
        stop = ^S; susp = ^Z; time = 0; werase = ^W;

working.example.com の設定を模倣するために、broken.example.com の stty 設定をいじりましたが、成功しませんでした。すべての stty 設定がよくわかりません。考えられる攻撃手段は 'stty pendin' であり、stty のマニュアル ページには関連する icanon と書かれています。ただし、broken.example.com で -pendin を設定できません。ログイン スクリプトを介して、または手動でログインした後に「stty -pendin」を実行しても、「-pendin」が設定されません。

この時点で、私は完全に道に迷っています。前もって感謝します!!

4

1 に答える 1

3

トレース ファイルを読み取ると、いくつかの問題があります。

  1. あなたはメッセージを受け取ります

    ControlPath "/var/folders/y8/zyh_szbx38s64w6_3_6nlhtm0000gp/T/tramp.5709SZd.smutt@broken.example.com:1345.RPyknjfNbHeeMjoQ" too long for Unix domain socket
    

ローカル マシンで OS X を実行していて、エラーhttp://debbugs.gnu.org/cgi/bugreport.cgi?bug=19702をトラップした可能性があります。これは Emacs 24.5 ですでに解決されており (24.4 を実行する必要があります)、Tramp はこれによって妨げられていないようです。

  1. トランプはコマンドstty icanon erase ^H cols 32767をリモートで送信します。コマンド自体は問題ありませんが、リモート ホストは Tramp が理解できないエスケープ シーケンスを返します。Tramp が を呼び出すと、どのシェルがリモートで実行されます/bin/shか? それが何であれ、プロンプト設定や画面のクリーンアップなど、そのシェルからの派手な装飾を無効にする必要があります。これを行う方法の提案については、Tramp のマニュアルを参照してください。~/.profile初期化中にシェルが読み取った評価を一時的に無効にします。
于 2016-06-01T17:59:32.083 に答える