Multihop serseri ekstra taşıma dönüşleri ekler ve çıktı tarafından karıştırılır

Sanal makinede çalışan Docker kapsayıcısına giriş yapmak için Tramp kullanmaya çalışıyorum.

Docker'la ilgili kurulum şu şekilde görünüyor:

(add-to-list 'tramp-methods
             '("docker-exec"
               (tramp-login-program "docker")
               (tramp-login-args
                (("exec" "-ti") ("%h") ("/bin/sh")))
               (tramp-remote-shell "/bin/sh")
               (tramp-remote-shell-args ("-i") ("-c"))))

Bunu kapsayıcıdaki dizinlere erişmek için makinemde kullanabilirim, ancak bu gibi uzak makineye "atla" denediğimde: Cx Cf /ssh: root @ vm | docker-exec: ed703f92ae19:/ Tramp ilk başta ls komutuyla ilgili olarak kafa karışıklığına uğrayacaktır çünkü satırın sonunda ^ M karakterleri ekleyecektir ve böylece tramp -find-yürütülebilir geçersiz komut üretecek /usr/bin/ls ^ M gibi bir şey döndürecektir.

Bunun üstesinden gelebildim:

(defun my/tramp-find-executable
    (func vec progname dirlist &optional ignore-tilde ignore-path)
  (org-trim (funcall func vec progname dirlist ignore-tilde ignore-path)))

(advice-add 'tramp-find-executable
            :around 'my/tramp-find-executable)

Ama şimdi bu hatayı alıyorum:

byte-code: Wrong type argument: number-or-marker-p, //DIRED-OPTIONS//

Ve günlük böyle görünüyor:

//DIRED-OPTIONS// --quoting-style=literal
///c92423c4fd16f4857a1b9d765f804f3e#$
17:32:16.175776 tramp-get-connection-property (7) # check-remote-echo nil
17:32:16.175817 tramp-get-connection-property (7) # check-remote-echo nil
17:32:16.175869 tramp-wait-for-regexp (6) # 
  total 292
  drwxr-xr-x  18 root root   4096 Feb 24 09:08 .
  drwxr-xr-x  18 root root   4096 Feb 24 09:08 ..
  -rwxr-xr-x   1 root root      0 Feb 24 09:08 .dockerenv
  -rwxr-xr-x   1 root root      0 Feb 24 09:08 .dockerinit
  lrwxrwxrwx   1 root root      7 Mar 30  2015 bin -> usr/bin
<<< skipped >>>
  drwxrwxrwt   2 root root   4096 Feb 24 15:29 tmp
  drwxr-xr-x  13 root root   4096 Mar 30  2015 usr
  drwxr-xr-x  18 root root   4096 Mar 30  2015 var
//DIRED// 59 60 108 110 158 168 216 227 275 278 337 340 388 391 439 443 491 494 553 558 619 629 677 682 730 733 781 784 832 836 884 888 936 939 987 991 1051 1058 1106 1109 1157 1160 1208 1217 1265 1268 1316 1319 1367 1370
//DIRED-OPTIONS// --quoting-style=literal
///c92423c4fd16f4857a1b9d765f804f3e#$

Bu hatayı aldığında, Tramp'in ne yapmaya çalıştığını bilmiyorum, bu yüzden düzeltmek için bir yol düşünemiyorum. Ama, belki bu bilinen bir böcek mi? Veya, belki de ^ M s eklenmeyecek şekilde Tramp için bazı ek ayarlara ihtiyacım var? (Her iki makine Linux'u çalıştırdığı için orijinal çıktıda olduğundan şüpheliyim, her ikisi de CentOS.

3
Bu CR'yi ekleyen Tramp değil, ancak Tramp, SSH veya Docker yapılandırmasında bir şey nedeniyle eklenebilirler. .ssh/config 'da ayarlanmış herhangi bir seçeneğiniz var mı, eğer öyleyse bunlar olmadan bunları yeniden üretebilecek misiniz? Özellikle RequestTTY buna sebep olur.
katma yazar CodingWithoutComments, kaynak
Docker'la aşina değilim, ama neden -t seçeneğini iletiyorsunuz? Bu, Tramp için gerekli olmayan bir terminal tahsis etmesine neden olur. Ve bir terminalin var olması, CR'nin varlığına neden olan şey. Tramp'in bazen CR'yi baskılayan bazı mekanizmalara sahip olup olmadığını bilmiyorum, ama eğer ilk etapta olmasalar da sorun tartışmasızdır.
katma yazar CodingWithoutComments, kaynak
@Gilles nope, bir .ssh/config dosyası bile yok. Docker yapılandırması daha umut verici gelebilir, ama nereye bakacağımı bilmiyorum. Ayrıca, Tramp atlamalardan birini ayrı ayrı yapabilir, sadece boruları olduğunda sorun oluşur.
katma yazar Yann Trevin, kaynak
@Gilles -t bitini kaldırırsam, Tramp bir süre askıda kalıyor ve pes ediyor. Yine de ^ M 'yi görebilirim. Yazdırdığı son satır (birkaç düzinelerce kez) exec docker exec -i 74b79b8b67a2/bin/sh ^ M ve daha sonra son aramanın serseri gibi göründüğü büyük bir backtrace yazdırır -maybe-açık-bağlantı (["docker-exec" nil "74b79b8b67a2" "/" "ssh: root @ vm |"])
katma yazar Yann Trevin, kaynak
@MichaelAlbinus docker-tramp kitaplığını denedim ve orijinal olarak gördüğüm aynı hatayı görüyorum: number-or-marker-p,//DIRED-OPTIONS//. Ayrıca, docker komutunu çalıştırmak için -ti seçeneklerini kullanır.
katma yazar Yann Trevin, kaynak
@MichaelAlbinus Docker zaten pişirilmiş görüntülerle dolu bir kayıt defteri ile birlikte gelir. Yani docker ubuntu komutunu çalıştırırsanız, global kayıt defterine bağlanacak, indirecek ve başlayacak (bir süre alacaktır, ancak ağınıza bağlı olarak 5 dakika ile bir saat arasındadır). Bu akşam daha sonra bir rapor yazacağım.
katma yazar Yann Trevin, kaynak
Hiç denemedim, ama ELPA'da bir paket var docker-tramp . Belki de bir deneyin, yerine kendi tanımını verirsin? Ve bir şeyin iyileştirilmesi gerekiyorsa, orada daha iyi olurdu, diğer insanlar bundan faydalanacaktı.
katma yazar celtschk, kaynak
Şey, ben bir n00b wrt docker'ım. Birisi bana küçük bir docker görüntüsü ve Emacs/Tramp'ta bu hatayı provoke etmek için nasıl kullanılacağını tarif ederse, ben de hata ayıklamaya istekli olurdum. Ubuntu 15.10'u çalıştırıyorum. Bu, stackexchange için uygun olmayan iletişim gerektirebileceğinden, ilk adım, Emacs veya Tramp hata raporunu göndermek olabilir.
katma yazar celtschk, kaynak

Cevap yok

0