18

24.2は正常に機能しますが、リモートLinuxシステムファイルまたはディレクトリを開くと、24.3バウンドトランプで次のエラーが発生しました。

"byte-code: Couldn't find a proper `ls' command"

トランプトレースを開くと、すべてのリモート検索パスとファイルパスが何かによって拡張されており、先頭に「c:」が追加されていることがわかります。その結果、trampは、開きたいコマンドもファイルも見つけることができません。

16:04:51.768000 tramp-get-connection-property (7) # process-buffer nil
16:04:51.769000 tramp-set-file-property (8) # c:/bin file-directory-p nil 
16:04:51.770000 tramp-get-file-property (8) # c:/usr/bin file-directory-p undef 
... 
16:04:59.531000 tramp-sh-handle-file-truename (5) # Check /c: 
16:04:59.532000 tramp-get-file-property (8) # c:/c: file-attributes-integer undef 
... 
16:04:51.773000 tramp-get-connection-property (7) # process-name nil 
16:04:51.773000 tramp-get-connection-property (7) # chunksize 0 
16:04:51.773000 tramp-set-connection-property (7) # last-cmd-time (20809 28067 773000 0) 
16:04:51.774000 tramp-send-string (10) # test -d c\:/usr/bin 2>/dev/null; echo tramp_exit_status $? 

誰かがこれについて何か知っていますか?前もって感謝します。

4

4 に答える 4

19

@AlanThirdによる回答と@uscjeremyによるコメントをマージして、これが私のために働いたものです(MARVIN、Windows XP / SP3/32上の2013-03-17のGNUEmacs24.3.1(i386-mingw-nt5.1.2600)) :

  1. バイトコンパイルtramp-sh.el(それに応じてパスを適応させる):

    (byte-compile-file "C:/Program Files (X86)/emacs/lisp/net/tramp-sh.el")
    
  2. Emacsを終了します。

  3. トランプキャッシュを削除します。~/.emacs.d/tramp

  4. Emacsを起動します。

gnu.orgのバグレポート#14030も参照してください。

于 2013-09-12T12:57:00.053 に答える
8

これはtrampのバグのようですが、trampをアップグレードする必要はありません。必要なのは、Windowsボックスでtramp-sh.elを再コンパイルすることだけです。詳細については、こちらのバグレポートを参照してください。

スクラッチバッファにこれを入力します。

(byte-compile-file "C:/Program Files/emacs/lisp/net/tramp-sh.el")

インストールに一致するようにパスを調整してから、入力Ctrl-Meta-xしてファイルを再コンパイルします。パーミッションについて文句を言う場合は、Windowsの「管理者として実行」オプションを使用してemacsを再起動する必要があるかもしれません。

ファイルが再コンパイルされたら、tramp接続キャッシュをリセットするためにM-x tramp-cleanup-all-connectionsと入力します。これにより、開いているトランプ接続がすべて閉じられます。

于 2013-05-08T13:09:18.970 に答える
3

Emacs 24.3に切り替えた後、同じ問題が発生しました。解決策は、最新のTramp2.2.7にアップグレードすることでした。これが私がしたことです:

  1. ダウンロードしたhttp://ftp.gnu.org/gnu/tramp/tramp-2.2.7.ta​​r.gz
  2. アーカイブを私の〜/ .emacs.d/srcに解凍しました。私はこのディレクトリとそのすべてのサブディレクトリをロードパスに追加するemacs-starter-kitを使用しています。それ以外の場合は、TrampのINSTALLファイルの指示に従ってください。
  3. Cygwinbashを使用してファイルを構成およびコンパイルしました。私は通常CygwinのEmacsを使用していませんが、このような場合に使用すると便利です。
  4. 安全のため、emacs / lisp/netにある古いトランプのelファイルとelcファイルを削除しました。
  5. もちろんEmacsを再起動しました。

Mx tramp-versionを実行して、正しくインストールされていることを確認します。現在、trampはどこでも機能します(dired、eshell、shellなど)。

于 2013-03-21T17:15:09.167 に答える
2

eval-expressionwithを使用し(byte-compile-file ..)ても機能しませんでしたが、次のように機能しました。

  1. 管理者としてemacsを開きます(タスクバーのemacsボタンを右クリックし、ポップアップが表示されたemacsアイコンを右クリックして、[管理者として実行]をクリックします)
  2. eval-expressionではなくAlt-Xを使用してコンパイルを行いますM-x byte-compile-file::c:/ Program Files / emacs-24.3 / lisp / net / tramp-sh.el
  3. 元のemacsウィンドウに入りtramp-cleanup-all-connections、リモートファイルをもう一度開いてみてください。
于 2014-04-16T13:28:12.540 に答える