دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

حوّل DeepSeek Harness لمثبّت Windows فملف واحد بلا Node.js

هاد الشرح كيبين كيفاش تستعمل DeepSeek Harness Easy-Setup باش تجمع dsh مع نسخة محمولة من Node.js فمثبّت Windows فملف واحد، مع التثبيت والتشغيل والاختبار وتتبع السجلات وضبط النسخة.

تحويل DeepSeek Harness لمثبّت Windows فملف واحد بلا Node.js

مقدمة على المشروع

DeepSeek Harness Easy-Setup هو مشروع ديال الحزم موجه لـ Windows. كيجمع برنامج سطر الأوامر @deepseek-ai/dsh، وبيئة التشغيل المحمولة Node.js، والمشغّل وبرنامج الإيقاف فمثبّت واحد.

المستخدم النهائي ما كيحتاجش يثبّت Node.js ولا npm ولا أي اعتماديات أخرى من قبل. من بعد التثبيت، يقدر يشغّل dsh web من الاختصار اللي فالسطح المكتب ولا فقائمة البداية، ومنين كتكون الخدمة واجدة كيتحلّ المتصفح أوتوماتيكيا.

الوظائف من بعد التثبيت

  • كيتم إنشاء اختصار “DeepSeek Harness” فالسطح المكتب وفـ قائمة البداية.
  • كيتم إنشاء اختصار “إيقاف DeepSeek Harness” باش يسالي الخدمة اللي خدامة.
  • المشغّل كيشغّل dsh web وكيحلّ المتصفح أوتوماتيكيا من بعد ما كتبدأ الخدمة.
  • قائمة البداية فيها مدخل لإزالة التثبيت، والبرنامج كيبان حتى فـ لائحة “التطبيقات” ديال Windows.
  • كيستعمل favicon ديال الحوت اللي جاي مع واجهة dsh كأيقونة للتطبيق.
  • كيتم التثبيت للمستخدم الحالي، بلا ما يطلب صلاحيات UAC.

مجلد التثبيت الافتراضي هو:

%LOCALAPPDATA%\Programs\DeepSeekHarness

ويمكن للمستخدم يختار مجلد آخر من معالج التثبيت.

فهم مجلدات المشروع

قبل ما تبدا البناء، تقدر تتعرف على الاستعمال ديال بعض المجلدات المهمة:

  • build\build.ps1: المدخل الرئيسي للبناء، كيتكلف بجلب dsh، وتنزيل نسخة Node.js المحمولة، وإنشاء الأيقونة، وتجميع المشغّل وبرنامج الإيقاف، وإنشاء حزمة التثبيت.
  • build\fetch-nsis.ps1: كينزّل NSIS 3.11 المحمول، وكيجرب مرايا أخرى إلا ما كانش مرآة SourceForge متاحة.
  • src\Launcher.cs: مصدر المشغّل، ومن بعد التجميع كيتولد DeepSeekHarness.exe.
  • src\Stopper.cs: مصدر برنامج الإيقاف، ومن بعد التجميع كيتولد DeepSeekHarnessStop.exe.
  • src\installer.nsi: سكريبت تثبيت NSIS.
  • src\icon\build-icon.js: كيستعمل sharp اللي جاي مع dsh باش يحوّل SVG ديال الحوت إلى ICO بأحجام متعددة.
  • test\test-install.ps1: كينفذ اختبارات التثبيت الصامت، وفحص الملفات، والتشغيل، والإيقاف، وفحص HTTP، وإزالة التثبيت.
  • work\: كيتحفظو فيه الملفات الوسيطة بحال أرشيف Node.js، وNSIS، وstaging. تقدر تحيدو ولا تخليه باش تسرّع عمليات البناء الجاية.
  • out\: كيتحفظو فيه المثبّتات النهائية فملف واحد.

تحضير بيئة البناء

خاص جهاز البناء يتوفر على الشروط التالية:

  • Windows 10 ولا Windows 11 x64.
  • PowerShell 5.1.
  • .NET Framework 4.x.
  • Node.js مثبت، وnode.exe خاصو يكون قابل للتلقى من PATH، ولا خاصك تحدد المسار ديالو صراحة وقت البناء.
  • إمكانية الولوج لـ nodejs.org وSourceForge.

المشروع كيستعمل مترجم C# اللي جاي مع النظام باش يجمع جوج ملفات تنفيذية، والمسار الافتراضي هو:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe

إلا ما كانش NSIS 3.x مثبت فالنظام، سكريبت البناء كينزّل النسخة المحمولة أوتوماتيكيا إلى work\nsis.

مهم: ما خاصش المسار ديال المشروع يحتوي على مسافات، حيث معاملات التعريف فسطـر أوامر makensis ما كتتعاملش مزيان مع المسارات اللي فيها مسافات.

الخطوة الأولى: تثبيت dsh

سكريبت البناء كيقرا @deepseek-ai/dsh افتراضيا من مجلد npm العام. نفّذ أولا فآلة البناء:

npm i -g @deepseek-ai/dsh

المجلد الافتراضي للحزمة هو:

%APPDATA%\npm\node_modules\@deepseek-ai\dsh

إلا كان dsh فمكان آخر، تقدر تحدد المسار من بعد باستعمال المعامل -DshSource.

الخطوة الثانية: بناء المثبّت فملف واحد

دخل لمجلد جذر المشروع وشغّل:

powershell -ExecutionPolicy Bypass -File build\build.ps1

السكريبت كيحضّر بالتتابع ملفات dsh، وNode.js المحمولة، وأيقونة التطبيق، ومشغّل C#، وبرنامج الإيقاف، وحزمة NSIS. الناتج الافتراضي كيكون شبيه بـ:

out\DeepSeekHarness-Setup-0.1.1.exe

الحجم التقريبي للمثبّت فالمثال اللي فـ README هو 44 MB.

معاملات البناء الشائعة

  • -DshSource <مجلد>: تحديد مجلد حزمة dsh.
  • -NodeExe <مسار>: تحديد node.exe الموجود فآلة البناء.
  • -AppVersion <نسخة>: تجاوز رقم نسخة المثبّت.
  • -WorkDir <مجلد>: تغيير مجلد الملفات الوسيطة.
  • -OutDir <مجلد>: تغيير مجلد إخراج المثبّت.

مثال باستعمال مسار مخصص لـ dsh وNode.js ورقم النسخة:

powershell -ExecutionPolicy Bypass -File build\build.ps1 -DshSource C:\dev\dsh -NodeExe C:\nodejs\node.exe -AppVersion 0.1.1 -OutDir C:\dsh-output

افتراضيا، رقم النسخة كيتاخد من package.json ديال dsh. النسخ قبل الإصدار النهائي كيتحوّلو للنسخة الأساسية، مثلا 0.1.1-rc.2 كتولي 0.1.1.

الملفات اللي فـ work\ كتبقى وكيعاود يتستعملوها. من بعد ما كيتنزّل أرشيف Node.js ما كيتعاودش تنزيلو، ومجلد NSIS المفكوك الضغط كيبقى حتى هو مستعمل.

الخطوة الثالثة: التثبيت والاستعمال الأساسي

من بعد ما يكمل البناء، دبل كليك على المثبّت الموجود فـ مجلد out\ وكمل التثبيت عبر المعالج. حيث التثبيت كيتدار للمستخدم الحالي، فالغالب ما غاديش يبان طلب صلاحيات UAC.

  1. دبل كليك على “DeepSeek Harness” فالسطح المكتب ولا فقائمة البداية.
  2. المشغّل كيشغّل dsh web.
  3. منين كتولي الخدمة متاحة، المتصفح الافتراضي كيتحلّ أوتوماتيكيا فالصفحة المناسبة.
  4. إلا بغيتي توقف الخدمة، شغّل “إيقاف DeepSeek Harness”.
  5. إلا بغيتي تحيد البرنامج، استعمل مدخل إزالة التثبيت فقائمة البداية ولا لائحة “التطبيقات” ديال Windows.

وتقدر حتى تستعمل الوضع الصامت للتثبيت فالمجلد الافتراضي:

out\DeepSeekHarness-Setup-0.1.1.exe /S

الخطوة الرابعة: تشغيل الاختبارات الآلية

المشروع فيه سكريبت اختبارات كيغطي دورة التثبيت كاملة:

powershell -ExecutionPolicy Bypass -File test\test-install.ps1

سكريبت الاختبار كينفذ العمليات التالية:

  1. تثبيت صامت فـ testinstall\ داخل المشروع.
  2. فحص ملفات التثبيت والاختصارات واحدا بواحد.
  3. التحقق من سلوك المشغّل وبرنامج الإيقاف باستعمال مداخل محاكاة.
  4. تشغيل dsh web فعليا مرة واحدة باستعمال Node.js المحمولة الموجودة فمجلد التثبيت.
  5. فحص استجابة HTTP 200 عبر منفذ الاختبار الافتراضي 3999، باش ما يتحتلش المنفذ الشائع 3080.
  6. تنفيذ إزالة التثبيت وفحص النتيجة.

فالناتج غادي تبانو عدة أسطر ديال معلومات الفحص كاتبدا بـ ###. خاص آخر سطر يكون:

ALL CHECKS PASSED

إلا فشل الاختبار، غادي يبان فالنهاية عدد العناصر اللي فشلات.

ملاحظة: الاختصارات اللي كينشئها الاختبار عندها نفس الأسماء ديال التثبيت الرسمي، وبالتالي وقت تشغيل الاختبار غادي تولّي اختصارات سطح المكتب وقائمة البداية ديال المستخدم الحالي كتشير مؤقتا لـ testinstall\، وكتتحيد فمرحلة إزالة التثبيت. من بعد الاختبار، إلا بغيتي ترجع التثبيت الرسمي، عاود نفّذ أمر التثبيت الصامت.

سجلات التشغيل وتتبع الأعطال

ملفات الحالة المهمة أثناء التشغيل كتتحفظ فـ:

%LOCALAPPDATA%\DeepSeekHarness\pid.txt
%LOCALAPPDATA%\DeepSeekHarness\run.log
  • pid.txt فيه رقم عملية dsh اللي خدامة، وبرنامج الإيقاف كيعتمد عليه باش يحدد العملية المستهدفة.
  • run.log فيه الخرج العادي والأخطاء العادية ديال dsh.

إلا فشل التشغيل، المشغّل كيعرض فنافذة منبثقة مكان run.log. أثناء التتبع، خاصك تبدا بهاد السجل باش تتأكد من احتلال المنفذ، وتحميل الاعتماديات، ولا أخطاء بدء الخدمة.

تقنيات متقدمة وملاحظات على التنفيذ

التأكد من توافق نسخة Node.js مع الوحدات الأصلية

اعتماديات dsh فيها وحدات أصلية بحال node-pty وsharp وkoffi. خاص نسخة Node.js المحمولة تكون متوافقة مع هاد الوحدات، وداكشي علاش سكريبت البناء كيختار افتراضيا نفس نسخة Node.js الموجودة فآلة البناء. منين كتبدل -NodeExe، خاصك تعاود تتأكد باللي المثبّت كيبدا بشكل عادي.

تجنب تشغيل الخدمة أكثر من مرة

إلا كان dsh خدام من قبل على المنفذ الافتراضي 3080، النقر مرة أخرى على المشغّل ما غاديش ينشئ نسخة ثانية. المشغّل كيفحص واش العملية اللي فملف pid ما زالت حية، وكيحلّ مباشرة صفحة الخدمة الحالية.

ما تخليش المشغّل يسالي بكري

من بعد ما كيشغّل المشغّل dsh، كيبقى خدام فالخلفية كعملية مضيفة، وكيكتب الخرج العادي والأخطاء العادية باستمرار فـ run.log حتى كتسالي dsh. إلا سالا المشغّل مباشرة، غادي تنقطع قناة الخرج، وممكن يوقع EPIPE منين تحاول dsh تكتب فالسجل من بعد.

الانتظار بشكل صحيح حتى يكمل NSIS إزالة التثبيت

برنامج إزالة التثبيت ديال NSIS كينسخ راسو أولا إلى %TEMP%، ومن بعد كيكمل التنفيذ من المجلد المؤقت، وكتسالي العملية الأصلية بسرعة. لذلك، السكريبت الآلي ما خاصوش يستنى غير حتى تسالي العملية الأصلية، بل خاصو يفحص بشكل دوري واش مجلد التثبيت اختفى. سكريبت test-install.ps1 فيه هاد التنفيذ.

الانتباه لترميز سكريبت التثبيت

خاص installer.nsi يستعمل UTF-8 BOM ولا UTF-16LE، وإلا NSIS غادي يعطي الخطأ Bad text encoding. ملفات المصدر فالمستودع هي UTF-8 بلا BOM، وbuild.ps1 كيحوّلها لـ UTF-16LE قبل ما يستدعي makensis.

التحكم فحجم المثبّت

عملية الحزم كتحيد الملفات اللي ما غاديش تتحمل فبيئة Windows x64، ومن بينها الملفات المسبقة التجميع ديال Darwin وLinux وARM64 الخاصة بـ node-pty، ونسخة WASM ديال sharp. حسب README، هاد المعالجة كتوفّر تقريبا 30 MB.

معلومات الترخيص

البرنامج dsh مرخّص بترخيص MIT، والتفاصيل كاينة فـ LICENSE داخل حزمة dsh. سكريبتات التثبيت ديال هاد المشروع منشورة حتى هي بترخيص MIT. أيقونة الحوت جاية من موارد واجهة dsh، وحقوقها راجعة لـ DeepSeek.

الخلاصة

DeepSeek Harness Easy-Setup كيجمع dsh، وNode.js المحمولة، وبرامج تشغيل وإيقاف Windows، ومسار تثبيت NSIS فحزمة وحدة. من بعد تحضير البيئة، غير ثبّت dsh بشكل عام وشغّل build\build.ps1 باش تنشئ مثبّت فملف واحد، بلا ما تكون Node.js مثبتة مسبقا فالجهاز المستهدف. قبل النشر، من الأحسن تشغّل سكريبت الاختبار الكامل وتركز خصوصا على السجلات، وتوافق نسخة Node.js، واسترجاع الاختصارات.