Doom-emacs: [BUG] فشل تحديث العذاب في Windows

تم إنشاؤها على ٦ يناير ٢٠٢٠  ·  23تعليقات  ·  مصدر: hlissner/doom-emacs

ماذا تتوقع أن يحدث؟
يجب أن يعمل doom refresh في Windows.

ماذا حدث بالتحديد؟
حصلت على هذا:
"" x حدث خطأ غير متوقع:
النوع: خطأ ملف
رسالة:
ملف خاطئ
البيانات:
"عملية التفريخ التابعة"
"خطأ تنسيق Exec"

قم بتشغيل الأمر مرة أخرى باستخدام مفتاح التبديل -d (أو --debug) لتمكين التصحيح
الوضع و (نأمل) إنشاء تتبع خلفي من هذا الخطأ:

عذاب د التحديث

إذا قمت بتقديم تقرير خطأ ، يرجى تضمينه!

DOOM Running Dom hook: doom-init-theme-h
DOOM Running Dom Hook: window-divider-mode
البحث عن برنامج: xclip ، لا يوجد مثل هذا الملف


But after the xclip patch I still get this

تحميل الحزمة عام ...
تحميل الحزمة عام ... تم (0.024 ثانية)

إعادة تجميع ملفات elc التي لا معنى لها ...
إعادة تحويل ملف (ملفات) 0/0 (تم تجاهل 168)
x حدث خطأ غير متوقع:
النوع: خطأ ملف
رسالة:
ملف خاطئ
البيانات:
"عملية التفريخ التابعة"
"خطأ تنسيق Exec"

قم بتشغيل الأمر مرة أخرى باستخدام مفتاح التبديل -d (أو --debug) لتمكين التصحيح
الوضع و (نأمل) إنشاء تتبع خلفي من هذا الخطأ:

عذاب د التحديث

إذا قمت بتقديم تقرير خطأ ، يرجى تضمينه!

DOOM Running Dom hook: doom-init-theme-h
DOOM Running Dom Hook: window-divider-mode
""

وهو مشابه جدًا ، ولكن بدون أي رسالة تشير إلى ما هو الملف القابل للتنفيذ السيئ.

تفاصيل اضافية:
https://github.com/r-darwish/.doom.d

أعلم أن Windows ليس من "المستوى 1" في Doom لذا سأقوم بكل سرور بإصلاح المشكلة وفتح العلاقات العامة. ومع ذلك ، نظرًا لأنني لا أرى رسالة خطأ هذه المرة ، فسيسعدني الحصول على بعض النصائح حول كيفية تصحيحها.

خطوات التكاثر:
تشغيل تحديث الموت

معلومات النظام:


((إيماكس
(الإصدار "26.2")
(الميزات. "XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS THREADS LCMS2")
(الإصدار "13 أبريل 2019")
(الإنشاءات "- بدون dbus - المضيف = x86_64-w64-mingw32 - بدون ضغط تثبيت 'CFLAGS = -O2 -static -g3'")
(windowsys. دفعة)
(شيطان))
(الموت
(الإصدار "2.0.9")
(بناء. "HEAD -> تطوير ، أصل / تطوير ، أصل / HEAD 0d4315960 2020-01-06 15:08:15 -0500")
(دير. "c: /Users/roey/.doom.d/"))
(النظام
(نوع. windows-nt)
(التكوين "x86_64-w64-mingw32")
(shell. "C: /Users/roey/scoop/apps/emacs/current/libexec/emacs/26.2/x86_64-w64-mingw32/cmdproxy.exe")
(uname. "n / a")
(المسار "c: / Program Files (x86) / Intel / iCLS Client /" "C: / Program Files / Intel / iCLS Client /" "C: / Windows / system32" "C: / Windows" "C: / Windows / System32 / Wbem "" C: /Windows/System32/WindowsPowerShell/v1.0/ "" C: / Program Files (x86) / NVIDIA Corporation / PhysX / Common "" C: / Program Files (x86) / MiKTeX 2.9 / miktex / bin / "" C: / Program Files (x86) / LyX 2.2 / Perl / bin "" C: / WINDOWS / system32 "" C: / WINDOWS "" C: / WINDOWS / System32 / Wbem "" C: / WINDOWS / System32 / WindowsPowerShell / v1.0 / "" C: / Program Files (x86) / Intel / Intel (R) Management Engine Components / DAL "" C: / Program Files / Intel / Intel (R) Management Engine Components / DAL "" C: / Program Files (x86) / Intel / Intel (R) Management Engine Components / IPT "C: / Program Files / Intel / Intel (R) Management Engine Components / IPT" "C: / ProgramData / chocolatey / bin "" C: / Program Files (x86) / vim / vim80 "" C: / WINDOWS / System32 / OpenSSH / "" C: / Program Files / Calibre2 / "" C: / Program Files (x86) / Windows Kits /8.1/Windows Performance Toolkit / "" C: / Program Files / NVIDIA Corporation / NVIDIA NvDLISR "" C: / WINDOWS / system 32 "" C: / WINDOWS "" C: / WINDOWS / System32 / Wbem "" C: /WINDOWS/System32/WindowsPowerShell/v1.0/ "" C: / WINDOWS / System32 / OpenSSH / "" C: / Program Files / PowerShell / 6 / "" C: / Users / roey / scoop / apps / python / current "" C: / Users / roey / scoop / apps / python / current / Scripts "" C: / Users / roey / AppData / Local / Programs / Python / Launcher / "" C: / Users / roey / scoop / shims "" C: /Users/roey/.cargo/bin "" C: / Users / roey / AppData / Local / Microsoft / WindowsApps " "C: / Program Files / Oracle / VirtualBox" "C: / ProgramData / emacs / bin" "C: /Users/roey/.local/bin" "C: / Users / roey / AppData / Roaming / Python / Python37 / البرامج النصية "" C: / Users / roey / AppData / Local / Microsoft / WindowsApps "" c: /Users/roey/scoop/apps/emacs/current/libexec/emacs/26.2/x86_64-w64-mingw32 "))
(config
(envfile)
(ملفات elc. 0)
(الوحدات: شركة الإكمال (Ivy + childframe + Icons): ui doom doom-dashboard hl-todo hydra modeline nav-flash ophints (popup + all + defaults) vc-gutter vi-tilde-fringe window-select: Editor (evil + في كل مكان) طي قوالب الملفات (تنسيق + حفظ) مقتطفات نصية متعددة المؤشرات ضعيفة: emacs dired electric ibuffer vc: tools (EVAL + overlay) flycheck (lookup + docs) lsp macos magit: lang data emacs-lisp (java + lsp) علامة تمييز جافا سكريبت (org + dragndrop + present) python rust sh web: config (افتراضي + روابط))
(حزم تسليط الضوء على git-link syntax-subword)
(elpa "n / a")))

external bidoom windows resolved-elsewhere

التعليق الأكثر فائدة

hlissner ، بعد تشغيل doom build ، أستطيع أن أؤكد أنه تم تغيير straight.el في .local/straight/build/straight/ ، لكنه لا يزال يطبع "خطأ تنسيق Exec"

ال 23 كومينتر

همم. هذه ليست رسالة خطأ مفيدة للغاية ، وأفترض أنها لا تنتج تتبعًا عكسيًا؟ أخشى أنه ليس لدي أي فكرة إلى أين أذهب من هنا.

لا يوجد تتبع و -d لا يساعد كثيرًا. سأحاول إضافة بعض بيانات الطباعة حتى أجد شيئًا مفيدًا

hlissner هل توجد أية طريقة لتشغيل doom refresh من مثيل Emacs قيد التشغيل ، بحيث يظهر toggle-debug-on-error عند ظهور أخطاء؟

يبدو أن سبب هذا هو https://github.com/raxod502/straight.el/issues/393.

ساعدت إضافة (print! (with-current-buffer "*straight-process*" (buffer-string))) في تصحيح الأخطاء. ربما يكون من الأفضل دائمًا القيام بذلك إذا تم تحديد -d ؟

على أي حال ، فإن التخفيف المقترح في https://github.com/raxod502/straight.el/issues/393 هو تعيين exec-path قبل التحميل مباشرة. هذا شيء لا يمكن القيام به حاليًا في ~/.doom.d ويجب ضبطه عن طريق تحرير ~/.emacs.d/bin/doom . هل لديك أي اقتراح حول كيف يمكن لـ Doom توفير آلية للسماح بإعداد exec-path ؟

ربما عن طريق تعيين PATH مباشرة أثناء تشغيل bin/doom . على سبيل المثال

PATH="some/path:$PATH" doom refresh

واجهت نفس المشكلة واضطررت إلى القيام بالاختراق التالي straight.el للالتفاف حوله.

diff --git a/straight.el b/straight.el
index 93f137d..ff0982a 100644
--- a/straight.el
+++ b/straight.el
@@ -3584,7 +3584,7 @@ modified since their last builds.")
                           (append (list "-o"
                                         "-path"
                                         (expand-file-name
-                                         "*" (straight--repos-dir local-repo))
+                                         "\"*\"" (straight--repos-dir local-repo))
                                         newer-or-newermt
                                         mtime-or-file
                                         "-print")

@ dp12 لا يزال لدي "خطأ في تنسيق Exec" بعد تطبيق التصحيح يدويًا على:

C:\Users\UserName\.emacs.d\.local\straight\repos\straight.el\straight.el

هل قمت بتحرير الملف الخطأ ؟؟

@ skywind3000 يجب إعادة إنشاء الحزمة بـ doom build -r . يقوم هذا البايت بترجمة الملفات المستقيمة إلى .local/straight/build/straight/ .

إذا كنت لا ترى أنه يعيد إنشاء straight على doom build -r ، فجرّب doom build بدلاً من ذلك.

hlissner ، بعد تشغيل doom build ، أستطيع أن أؤكد أنه تم تغيير straight.el في .local/straight/build/straight/ ، لكنه لا يزال يطبع "خطأ تنسيق Exec"

واجهت نفس المشكلة ويمكنني تأكيد هذا الحل بالنسبة لي.

على وجه التحديد:

  1. في البداية ، واجهت المشكلة الموضحة في https://github.com/hlissner/doom-emacs/issues/2323 مع الشكوى "/ usr / bin / find: يجب أن تسبق المسارات التعبير:` c: /Users/myname/.emacs .d / .local / straight / repos / link-hint.el / README.org '"
  2. تم تحرير C:\Users\myname\.emacs.d\.local\straight\repos\straight.el\straight.el حسب التصحيح أعلاه.
  3. Ran bin/doom build -r التي ذكرت "لا حاجة إلى إعادة بناء حزم".
  4. Ran bin/doom build الذي أعيد بناؤه بشكل مستقيم.

بعد هذه الخطوات ، مر bin/doom sync ، والتغييرات في .doom/init.el سارية المفعول.

كنت أتلقى "خطأ في تنسيق Exec" عند محاولة المزامنة. كنت أتلقى مكالمة doom build بدون أي مشاكل ، لكن doom sync تسبب لي في مشكلة في وقت ما أثناء مرحلة "(Re) build pack ...".

لقد تتبعت المصدر إلى الملف core/cli/packages.el في الوظيفة doom-cli-packages-build . يوجد استدعائين للوظائف ملفوفين ما لم:

(unless force-p
    (straight--make-build-cache-available)
    (straight--make-package-modifications-available))

هناك مكالمة find على التوالي - make-package-modifications-available مع العديد من الوسائط. أعتذر عن افتقاري للمعرفة ، ولكن قد يكون خطأ في الطريقة التي يتم بها إنشاء الحجج يؤدي إلى "خطأ تنسيق Exec". أعتقد أن هذا هو ما استهدفه الإصلاح المقترح أعلاه بـ "\"*\"" . ومع ذلك ، لم يحل هذا الإصلاح المشكلة بالنسبة لي.

نظرًا لأنه لا يتم تشغيله عندما تكون Force-p صحيحة ، فقد علقت على الكود وتمكنت مزامنة الموت من العمل نيابة عني دون أخطاء.

لتوضيح الأمر ، كان الحل هو التعليق على الرمز السابق من core/cli/packages.el في الوظيفة doom-cli-packages-build

نأمل أن يتم حل هذا بمجرد دمج https://github.com/raxod502/straight.el/pull/473

مع دمج raxod502 / straight.el / pull / 473 ، يجب حل هذه المشكلة. ترقية الموت يجب أن تصلحه. إذا واجهتك أي مشكلة ، فاحذف ~ / .emacs.d / .local / Straight / {build، repos} / {straight، straight.el} ، ثم runu doom sync.

يُرجى إعلامي إذا ظهرت المشكلة مرة أخرى وسأعيد فتحها. شكرا للفت إنتباهي!

مرحبا،

أعتقد أنه لا يزال لدي هذه المشكلة باستخدام Emacs 26.3 على Windows باستخدام تثبيت جديد من dom-emacs.
يبدو مرتبطًا لذا علقت عليه هنا. اسمحوا لي أن أعرف إذا كنت بحاجة إلى مزيد من المعلومات.

> doom refresh
> Synchronizing your config with Doom Emacs...
  > Regenerating envvars file at "c:/Users/bram.boris.meerlo/.emacs.d/.local/env"
  - Scraping shell environment
    - Ignoring PROMPT=$P$G
        Successfully generated "c:/Users/bram.boris.meerlo/.emacs.d/.local/env"
  > (Re)generating core autoloads...
    > Generating core autoloads...
    > Byte-compiling core autoloads file...
        Generated .local/autoloads.elc
  > Installing packages...
    - No packages need to be installed
  > (Re)building packages...
There was an unexpected error:
  Type: file-error
  Message:
    File error
  Data:
    "Spawning child process"
    "Exec format error"

وضع التصحيح
لقد خلقت جوهر

ما زلت أواجه هذه المشكلة في تثبيت جديد ، ومع ذلك ، نجح إصلاح @ ctm22396 بالنسبة لي (كان

ألاحظ أن الخطأ يعتمد على الوحدات النمطية التي قمت بتنشيطها في .doom.d/init.el . treemacs و neotree يكسرها دائمًا. إذا قمت بالتعليق عليها وقمت بالتحديث ، فلن أحصل على الخطأ وتكتمل عملية التحديث بنجاح. ربما هناك بعض المسارات في حزم معينة تجعل الأمر find غير صالح؟

على أي حال ، لا يزال خطأ في المنبع إما بشكل مباشر أو غير مباشر في straight.el .

واجهت مشكلة أخرى عندما كنت أحاول إعادة تثبيت الموت بعد دمج التصحيح المستقيم:

https://github.com/hlissner/doom-emacs/issues/2513

الآن ، سيصبح "تثبيت الموت" غير مستجيب إذا كنت تحاول إعادة تثبيته في Windows.

@ ctm22396 ، هل يمكنني فقط أن أطلب منك تأكيد كيفية تنفيذ عملك. فعلا:

التعليق كما هو موضح أدناه في الوظيفة doom-cli-packages-build من الملف core/cli/packages.el

;;(unless force-p
;;    (straight--make-build-cache-available)
;;    (straight--make-package-modifications-available))

ثم doom build -r متبوعًا بـ doom sync ؟ - لقد جربت أيضًا doom refresh - ويبدو أن الإصلاح الذي أجريته يزيل كل الأخطاء. هل هذا صحيح؟ أي أمر يجعل force-p صحيحًا؟ آسف - جديد على هذا

تحرير: يجب أن أضيف أن إجراء التغييرات في ~\.doom.d\init.el تم تنفيذه عندما أجريت doom refresh مع التغييرات على core\cli\packages.el

@ rjl6789

هذا صحيح. أعتقد أنه تم تعيين force-p على t عند تشغيل bin/doom build بدون الإشارة -r . عندما قوة p غير nil ، و doom-cli-packages-build يبدو وظيفة لاستخدام straight الحزمة إلى العثور على حزم في ايماكس النظام البيئي الخاص بك التي عفا عليها الزمن بحيث أنها يمكن أن تكون إعادة بنائها. عندما يكون الأمر t ، فإن الأمر (إعادة) فقط يبني كل حزمة. في الواقع ، سيكون الحل الأفضل من الذي اقترحته هو تعيين force-p إلى t أثناء استدعاء إعادة التحميل / التحديث / المزامنة ، بحيث تضمن إعادة بناء جميع الحزم. ومع ذلك ، فإن الأمر يستغرق بعض الوقت لإعادة بنائها جميعًا.

تحرير: أشعر أنه يجب أن تكون هناك طريقة لتنفيذ إعادة البناء الانتقائي هذه التي لا تعتمد على find ، والذي يبدو أنه يسبب الكثير من المشاكل على Windows

@ ctm22396 لم يجرب الإصلاح بعد ، لكن لدي نسخة gnu من find.exe في مساري الآن وما زلت أتلقى الخطأ ، وهو أمر غريب حيث تم حله بعد straight.el إصلاح المشكلة من جانبهم

P:\home\.emacs.d\bin>where find
P:\apps\cmder-full\current\vendor\git-for-windows\usr\bin\find.exe
C:\Windows\System32\find.exe
P:\shims\find.exe

FWIW ، لقد أتيت إلى هنا أيضًا بحثًا عن المساعدة في نفس المشكلة بالضبط (فشل "تحديث الموت" في Windows 10 مع رسائل الخطأ أعلاه) ، كما نجح التخفيف

xeijin ، لقد قمت بحل هذه المشكلة عن طريق تثبيت "find.exe" أخرى (مع scoop install findutils ) وتعيين المسار الثنائي قبل c:\windows\system32 مؤقتًا عند استخدام doom refresh :

set "PATH=%USERPROFILE%\scoop\shims;%PATH%"

وبدون تثبيت بعض الحزم مثل cc ، فإن doom refresh يعمل بشكل صحيح الآن.

راجع للشغل: لم أقم بتطبيق التصحيح find ، ولكن إذا قمت بتمكين بعض الحزم مثل cc ، فسوف تنكسر مرة أخرى.

هل هي معلومات مفيدة لتصحيح الأخطاء ؟؟

@ skywind3000maciekkxeijin @ ctm22396 @ برام بوريس @ أحرز Exec format error القضية. انظر # 2556.

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