Cider: مشكلة مع جاك إن والترامب

تم إنشاؤها على ٢٨ سبتمبر ٢٠١٦  ·  19تعليقات  ·  مصدر: clojure-emacs/cider

عندما يكون لديّ مخزن مؤقت مفتوح ، project.clj على سبيل المثال ، عبر اتصال متشرد وأحاول الدخول إليه ، يستبدل CIDER بطريقة ما lein باسم المخزن المؤقت المتشرد. على سبيل المثال:

Starting nREPL server via /ssh\:root\@localhost\#32808\: update-in :dependencies conj \[acyclic/squiggly-clojure\ \"0.1.5\"\] -- update-in :dependencies conj \[org.clojure/tools.nrepl\ \"0.2.12\"\] -- update-in :plugins conj \[cider/cider-nrepl\ \"0.13.0\"\] -- repl :headless...
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: /bin/sh: 2: /ssh:root@localhost#32808:: not found

سلوك متوقع

عند تشغيل M-x cider-jack-in أو M-x cider-jack-in-clojurescript في مخزن مؤقت متشرد ، يجب أن يستخدم CIDER lein لبدء خادم nrepl في سطر الأوامر.

السلوك الفعلي

يستخدم CIDER اسم المخزن المؤقت المتشرد بدلاً من lein في سطر الأوامر.

خطوات إعادة إنتاج المشكلة

  1. استخدم المتشرد لفتح المخزن المؤقت.
  2. في هذا المخزن المؤقت ، قم بتشغيل M-x cider-jack-in أو M-x cider-jack-in-clojurescript .

    معلومات البيئة والإصدار

معلومات إصدار CIDER

سيدر 0.13.0

نسخة لين / التمهيد

لين 2.6.1

نسخة إيماكس

25.1.1

نظام التشغيل

macOS Sierra

bug good first issue

ال 19 كومينتر

benedekfazekas هل يمكنك النظر في هذا؟ ربما لم تأخذ في الاعتبار المخازن المؤقتة البعيدة في منطق جاك إن الجديد أو شيء من هذا القبيل؟

سوف نلقي نظرة

ألقى نظرة. لا أعتقد أنه انحدار في الواقع. يبدو لي أن Jack in over tramp هو نصف مخبوز نوعًا ما ، ربما هذا التعليق الذي يجب القيام به ثوانٍ؟! https://github.com/clojure-emacs/cider/blob/master/cider.el#L686

قد أكون قد أسيء فهم الكود ولكن أفترض أن هذا

 (when-let ((command (or (file-remote-p default-directory) 
                         (executable-find cider-lein-command)
                         (executable-find (concat cider-lein-command ".bat")))))
    (shell-quote-argument command))

لن يعمل أبدًا مع project.clj البعيد لأنه يحاول تشغيل الدليل الافتراضي البعيد كأمر لين ؟!

أوه ، اللعنة - أجل. أتذكر الآن أنني لم أتمكن من معرفة كيفية التحقق من الملف القابل للتنفيذ على المضيف البعيد. لكنني أتذكر أن هذا الشيك كان في الواقع يصلح شيئًا ما. :-)

يمكنني وضع هذا في قائمتي ولكن قرصنة cljr تأتي أولاً الآن. كإجراء مؤقت ، يمكننا إظهار خطأ إذا كان الملف بعيدًا على ما أعتقد وتوجيه المستخدم نحو استخدام cider-connect إلى REPL بعيد أفترض. قد يكون هناك أيضًا بعض ثقوب الأرانب مع الملفات البعيدة (لم يتم التعرف على مشكلات cljr ولكن واجهنا بعض المشكلات معهم بشكل كبير)

كإجراء مؤقت ، يمكننا إظهار خطأ إذا كان الملف بعيدًا على ما أعتقد وتوجيه المستخدم نحو استخدام cider-connect إلى REPL بعيد

هل يمكنني تعيين متغير بدلاً من ذلك لتحديد الأمر البعيد؟

لقد التزمت بحل بديل محتمل - في المضيفات البعيدة ، نفترض ببساطة أن الأمر الذي نحتاجه متاح. من فضلك ، جربها.

bbatsov ليس لدي إجابة مباشرة على سؤالك ... لكني أعرف أن علامة التبويب ssh.el تكمل الأوامر بشكل صحيح. بالنظر إلى ssh-tab-or-complete يظهر أنه يستدعي completion-at-point . لست متأكدًا من أن ذلك سيساعد.

لقد التزمت بحل بديل محتمل - في المضيفات البعيدة ، نفترض ببساطة أن الأمر الذي نحتاجه متاح. من فضلك ، جربها.

شكرا bbatsov. لقد أسقطت cider.el الجديد فوق cider.el v0.13 ، وأعدت تشغيل emacs ، وفتحت project.clj فوق tramp ، ثم تم رفعه ، وما زلت نفس المشكلة. ما الذي يمكنني تقديمه لك أكثر من ذلك للمساعدة في هذا؟

قد يتم تجميعها. إزالة cider.elc إذا كان في الدليل

في 13 أكتوبر 2016 ، الساعة 5:29 مساءً ، "كانت تُعرف سابقًا باسم tvaughan" <
[email protected]> كتب:

لقد التزمت بحل بديل محتمل - على المضيفات البعيدة التي نفترضها ببساطة
الأمر الذي نحتاجه متاح. من فضلك ، جربها.

شكرا bbatsov https://github.com/bbatsov. لقد تركت عصير التفاح الجديد
أعلى cider.el v0.13 ، إعادة تشغيل emacs ، فتح project.clj over tramp ،
ثم غرق ، وما زالت نفس المشكلة. ما الذي يمكنني تقديمه لك أكثر من ذلك
للمساعدة في هذا؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/clojure-emacs/cider/issues/1854#issuecomment -253565525 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AA9Pnvx9ot5lrzIuWHJz5bksFESakN1Yks5qzlxegaJpZM4KJP9s
.

لا أستطيع أن أتخيل كيف لن يعمل الإصلاح الخاص بي - فهو يعرض بشكل أساسي اسم الأمر المطابق لنوع المشروع ، دون محاولة حله. إذا كان هذا الثنائي موجودًا على المضيف البعيد ، فيجب أن يعمل كل شيء بشكل جيد.

قد يتم تجميعها. إزالة cider.elc إذا كان في الدليل

عليك اللعنة. هذا كان هو. إنها تعمل! شكرا!

يبدو أن الحل المناسب لذلك هو استخدام tramp-find-executable (جزء من المكتبة المدمجة tramp-sh.el .). في المستقبل ، يجب أن نستفيد من هذا.

لقد جربت cider-jack-in في مصدر جهاز بعيد.

Tramp: Opening connection for <remote host info> using ssh...
Tramp: Sending command `exec ssh -q   -o ControlMaster=auto -o ControlPath='tramp.%C' -o ControlPersist=no -e none <remote host info>'
Tramp: Waiting for prompts from remote shell...done
Tramp: Found remote shell prompt on <remote host info>
Tramp: Opening connection for <remote host info> using ssh...done
Making nrepl-create-client-buffer-function local to *nrepl-server guestbook* while let-bound!
Making nrepl-use-this-as-repl-buffer local to *nrepl-server guestbook* while let-bound!
Starting nREPL server via lein update-in :dependencies conj \[org.clojure/tools.nrepl\ \"0.2.13\"\ \:exclusions\ \[org.clojure/clojure\]\] -- update-in :plugins conj \[refactor-nrepl\ \"2.4.0-SNAPSHOT\"\] -- update-in :plugins conj \[cider/cider-nrepl\ \"0.17.0-SNAPSHOT\"\] -- repl :headless :host ::...
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: /bin/sh: 2: lein: not found

error in process sentinel: Could not start nREPL server: /bin/sh: 2: lein: not found

لقد تتبعت من cider-jack-in إلى nrepl-server-sentinel . يوضح Edebugger أن معلمة set-process-coding-system ، serv-proc بها الرسالة ، "تم إغلاق واصف ملف الإدخال لخادم nrepl". لذا ، أعتقد أن هذه المشكلة متعلقة بـ set-process-sentinel . انا عالق هنا.

راجع للشغل ، لقد أبلغت بالفعل عن مشكلة متعلقة بـ cider-connect . أشكرك من القلب على تطوير عصير التفاح. أريد أن أعمل مباشرة في خادم الخدمة عن بعد. هل يمكنني العمل مع عصير التفاح؟

أرى أن lein ليس لديك exec-path على الخادم البعيد. أعتقد أن هذا هو سبب مشكلتك.

لقد قمت بالفعل بتعيين lein إلى exec-path على الخادم البعيد.

إذن ، لقد فعلت شيئًا مثل هذا https://stackoverflow.com/questions/26630640/tramp-ignores-tramp-remote-path وتحققت من أن المتشرد يرى جهاز التحكم عن بعد lein ؟

انا اسف جدا. تم وضع إعداد PATH الخاص بي في .profile . لذلك اعتقدت أن Tramp يجب أن يتحقق من هذا بشكل طبيعي. لكنها تجاهلت. كنت طائشًا. شكرا لك على النصح.

لمعلوماتك ، مع إصدار حديث من عصير التفاح ، حاولت الاتصال بخادم وتلقيت هذه الرسالة:

nrepl-connect: [nREPL] اتصال مباشر بـ my. الخادم: فشل

بعد وضع هذا الإعداد في مكانه ، يعمل الاتصال عن بُعد بالنسبة لي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات