انتقل إلى المحتوى

التثبيت والتحديث ​

يُنشر Signal Lab على GitHub: في كل إصدار التطبيق المكتبي لـ Windows وLinux، وسطر الأوامر signallab وحده، وقائمة بالمجاميع الاختبارية. أما تشغيله على خادم واستخدامه من المتصفح فتفاصيله في الخادم.

ما يُنزَّل ​

يُفتح أحدث إصدار ويُختار الملف المناسب للنظام. و<version> هو رقم الإصدار، مثل 1.0.0.

الملفالاستخدام
Signal.Lab_<version>_x64-setup.exeWindows 10 و11، x64 — برنامج الإعداد الذي يناسب معظم المستخدمين
Signal.Lab_<version>_x64_en-US.msiWindows، للنشر من قِبل قسم تقنية المعلومات (Intune، نهج المجموعة): يثبّت لكل المستخدمين
Signal.Lab_<version>_amd64.debLinux x86_64: Debian وUbuntu والتوزيعات القريبة منهما
Signal.Lab-<version>-1.x86_64.rpmLinux x86_64: Fedora وRHEL وopenSUSE والتوزيعات القريبة منها
Signal.Lab_<version>_amd64.AppImageLinux x86_64، أي توزيعة، دون تثبيت
signallab-<version>-windows-x64.zipسطر الأوامر وحده، لـ Windows
signallab-<version>-linux-x64.tar.gzسطر الأوامر وحده، لـ Linux
SHA256SUMS.txtالمجموع الاختباري SHA-256 لكل ملف مما سبق

ملفات .sig وlatest.json المجاورة لها خاصة بأداة التحديث في التطبيق نفسه؛ ولا حاجة إليها.

Windows ​

يعمل Signal Lab على Windows 10 و11، x64. ويستخدم بيئة تشغيل WebView2، وهي جزء من كليهما.

التثبيت ببرنامج الإعداد ​

  1. تشغيل Signal.Lab_<version>_x64-setup.exe.
  2. إذا ذكر Windows SmartScreen أنه حمى الكمبيوتر، يُختار مزيد من المعلومات ثم تشغيل على أي حال (انظر SmartScreen أدناه).
  3. اختيار لغة برنامج الإعداد. وهو يقدّم اللغات الإحدى عشرة نفسها التي يقدّمها التطبيق.
  4. اختيار لمن يكون التثبيت:
    • للمستخدم الحالي فقط: يُثبَّت في %LOCALAPPDATA%\Signal Lab ولا يحتاج إلى صلاحيات المسؤول.
    • لكل من يستخدم هذا الكمبيوتر: يُثبَّت في C:\Program Files\Signal Lab ويطلب صلاحيات المسؤول.
  5. تأكيد المجلد ثم التثبيت.
  6. تعرض الصفحة الأخيرة تشغيل Signal Lab فورًا وإنشاء اختصار له على سطح المكتب.

وتشغيل برنامج إعداد إصدار أحدث فوق إصدار مثبَّت يرقّيه في مكانه.

ما يضيفه برنامج الإعداد ​

إلى جانب التطبيق، يضع برنامج الإعداد شيئين، ويزيلهما برنامج إلغاء التثبيت كليهما:

  • سطر الأوامر. يوضع signallab.exe بجوار التطبيق ويُضاف مجلده إلى PATH — PATH الخاص بالمستخدم في التثبيت للمستخدم الحالي فقط، والخاص بالكمبيوتر في التثبيت للجميع — فيعمل signallab في كل نافذة طرفية تُفتح بعد ذلك. التفاصيل في سطر الأوامر.
  • قاعدة جدار حماية، في التثبيت للجميع فقط. لا يسمح جدار حماية Windows Defender للأجهزة الأخرى بالوصول إلى برنامج إلا إذا سمحت بذلك قاعدة، ويسأل الشخص الذي أمام الشاشة في أول مرة يستمع فيها البرنامج؛ والضغط على إلغاء هناك يُسقط بصمت كل ما ترسله الأجهزة الأخرى. ويضيف التثبيت للجميع، وهو يملك صلاحيات المسؤول، قاعدة سماح للاتصالات الواردة لـ signal-lab.exe (التطبيق) وأخرى لـ signallab.exe (سطر الأوامر)، على الشبكات الخاصة وشبكات المجال. أما التثبيت للمستخدم الحالي فقط فلا يمكنه تغيير جدار الحماية: يعرض التطبيق ذلك، عبر نافذة طلب صلاحيات المسؤول الخاصة بـ Windows، في أول مرة يستمع فيها شيء — انظر تنبيه جدار الحماية.

لا تخضع حركة المرور داخل هذا الكمبيوتر نفسه (127.0.0.1) للتصفية أبدًا، لذا يعمل كل ما يجري على عنوان الاسترجاع دون أي قاعدة.

التثبيت دون تدخل ​

يقبل برنامج الإعداد هذه المفاتيح في سطر أوامره:

المفتاحما يفعله
/Sيثبّت بصمت، دون أي سؤال.
/Pيثبّت مع شريط تقدّم ودون أسئلة.
/ALLUSERSيثبّت للجميع (يحتاج إلى موجّه أوامر بصلاحيات مرتفعة).
/CURRENTUSERيثبّت للمستخدم الحالي فقط.
/NSلا ينشئ اختصارات.
/D=C:\Tools\Signal Labيثبّت في هذا المجلد. يجب أن يأتي أخيرًا ودون علامات اقتباس.
/NOPATHلا يمس PATH: يُثبَّت signallab لكنه لا يُضاف إلى PATH.
/NOFIREWALLلا يضيف قواعد جدار حماية.

مثلًا، تثبيت صامت للجميع دون قواعد جدار حماية، من موجّه أوامر بصلاحيات مرتفعة:

powershell
.\Signal.Lab_1.0.0_x64-setup.exe /S /ALLUSERS /NOFIREWALL

حزمة MSI ​

Signal.Lab_<version>_x64_en-US.msi مخصصة للنشر من قِبل قسم تقنية المعلومات. تثبّت لكل المستخدمين، وتضع signallab.exe بجوار التطبيق وتضيف ذلك المجلد إلى PATH الخاص بالكمبيوتر، لكنها لا تضيف قاعدة جدار حماية: فذلك متروك لمن ينشرها (عبر نهج المجموعة مثلًا). ويظل التطبيق يعرض القاعدة عند أول استماع. لتثبيتها بصمت:

powershell
msiexec /i "Signal.Lab_1.0.0_x64_en-US.msi" /qn

SmartScreen ​

برامج التثبيت ليست موقّعة رقميًا بعد، لذا لا يعرف Windows SmartScreen ناشرها وقد يوقف برنامج الإعداد بتحذير. يُختار مزيد من المعلومات، ويُتحقق من أن الملف هو نفسه الذي نُزّل من صفحة الإصدارات، ثم يُختار تشغيل على أي حال. وللتأكد من أن الملف لم يتغير، يُطابَق أولًا مع SHA256SUMS.txt.

أما تحديثات التطبيق نفسه فموقّعة ويُتحقق منها على حدة؛ انظر التحديثات.

التحقق من ملف منزَّل ​

يسرد SHA256SUMS.txt المجموع الاختباري SHA-256 لكل ملف في الإصدار، واحدًا في كل سطر، متبوعًا باسم الملف. يُنزَّل بجوار الملف ثم تُقارن القيمتان.

على Windows، في PowerShell:

powershell
Get-FileHash .\Signal.Lab_1.0.0_x64-setup.exe -Algorithm SHA256
Select-String "Signal.Lab_1.0.0_x64-setup.exe" .\SHA256SUMS.txt

يجب أن تتطابق قيمتا التجزئة (يطبعها Get-FileHash بأحرف كبيرة؛ ولا أهمية لحالة الأحرف).

على Linux، في المجلد الذي يضم الملفين:

bash
sha256sum --check --ignore-missing SHA256SUMS.txt

يطبع OK بعد كل ملف وجده. وأي شيء آخر يعني أن الملف المنزَّل ليس الملف المنشور: يلزم تنزيله مجددًا.

Linux ​

بُني تطبيق Linux لمعمارية x86_64 (على Ubuntu 22.04)، ويحتاج إلى WebKitGTK 4.1، عارض الويب الذي يرسم به نافذته. ولا يوجد إصدار لمعالجات Arm؛ وعلى جهاز Arm يُشغَّل الخادم بدلًا منه.

حزمة ‎.deb ​

bash
sudo apt install ./Signal.Lab_1.0.0_amd64.deb

يثبّت apt ما تحتاجه الحزمة معها. وتضع الحزمة أيضًا سطر الأوامر في /usr/bin/signallab.

حزمة ‎.rpm ​

bash
sudo dnf install ./Signal.Lab-1.0.0-1.x86_64.rpm

على openSUSE، يُستخدم sudo zypper install مع الملف نفسه. وكما في .deb، تضع الحزمة سطر الأوامر في /usr/bin/signallab.

ملف AppImage ​

يعمل ملف AppImage دون تثبيت:

bash
chmod +x Signal.Lab_1.0.0_amd64.AppImage
./Signal.Lab_1.0.0_amd64.AppImage

ولا يتضمن سطر الأوامر signallab؛ ويمكن أخذه من أرشيف سطر الأوامر عند الحاجة إليه.

جدار الحماية على Linux ​

لا يعرض التطبيق على Linux أي تنبيه لجدار الحماية: يعمل ufw وfirewalld حسب المنفذ لا حسب البرنامج. فإذا كان أحدهما مفعّلًا وكان على الأجهزة الأخرى الوصول إلى مراقب أو مستمع أو محاكٍ أو مرحّل، يُفتح منفذه فيه، مثلًا:

bash
sudo ufw allow 9000/udp

ولا تتأثر حركة المرور على عنوان الاسترجاع.

سطر الأوامر وحده ​

تجلب برامج التثبيت المكتبية signallab معها. ولجهاز لا تطبيق عليه — وكيل بناء، أو خادم، أو كمبيوتر مختبر — يتضمن كل إصدار أيضًا سطر الأوامر وحده:

  • signallab-<version>-windows-x64.zip يضم signallab.exe والترخيص.
  • signallab-<version>-linux-x64.tar.gz يضم signallab والترخيص.

يُفك ضغطه في مجلد مدرج في PATH. على Linux:

bash
tar -xzf signallab-1.0.0-linux-x64.tar.gz signallab
sudo install signallab /usr/local/bin/
signallab version

وتتضمنه صورة Docker الخاصة بالخادم أيضًا. طريقة استخدامه: سطر الأوامر.

التحديثات ​

التطبيق المكتبي ​

يحدّث التطبيق المكتبي نفسه من الإصدارات المنشورة فقط، وعند الطلب فقط.

  • يبحث مرة يوميًا. حين يكون الخيار التحقق مرة يوميًا محدَّدًا (وهو كذلك افتراضيًا)، يبحث التطبيق عن إصدار أحدث بعد بدء تشغيله بقليل إن مضى على آخر بحث يوم أو أكثر، ثم كلما مضى يوم آخر أثناء عمله. وإلغاء تحديده في نافذة «حول» يوقف البحث التلقائي.
  • يمكن البحث الآن. تُفتح نافذة «حول» — علامة ? في الشريط العلوي — ويُضغط الزر التحقق من وجود تحديثات في قسم التحديثات.
  • ما يرسله التحقق. يسأل خدمة التحديث لدى الاستوديو (hub.proanima.net) عن الإصدار الذي ينبغي أن يحصل عليه هذا التثبيت، ولا يلجأ إلى أحدث إصدار على GitHub إلا إذا تعذّر الوصول إلى تلك الخدمة. ويحمل الطلب إصدار التطبيق، ونوع النظام والمعالج، ورقمًا عشوائيًا أُنشئ لهذا التثبيت، يتيح وصول الإصدار الجديد إلى نسبة من التثبيتات أولًا. ولا يُرسل شيء يدل على هوية المستخدم أو على هذا الكمبيوتر.
  • عند العثور على إصدار، تذكر ذلك وحدة التحكم، ويعرض الشريط العلوي زر تحديث يفتح نافذة «حول». وهناك يعرض الزر ما الجديد ملاحظات الإصدار.
  • لا يُثبَّت شيء قبل النقر. يُضغط الزر التثبيت وإعادة التشغيل (وحين تكون هناك مهام جارية، يذكر الزر أنه سيوقفها). فيحفظ Signal Lab كل ما لم يُحفظ بعد، ويوقف كل مهمة جارية، وينزّل التحديث ويتحقق من توقيعه مقابل المفتاح المدمج في التطبيق — ويُرفض كل تحديث لم توقّعه عملية الإصدار — ثم يثبّته ويعيد التشغيل بالإصدار الجديد.

على Windows يشغّل التحديث برنامج الإعداد دون أسئلة، ويُبقي على المجلد وPATH وقواعد جدار الحماية. وعلى Linux يستبدل ملف AppImage، أو يثبّت حزمة .deb أو .rpm الجديدة — ومع الحزمة يطلب النظام كلمة المرور أولًا.

لا تُعرض الإصدارات التجريبية ولا المسودات أبدًا. ولمنع كل تثبيت على جهاز من البحث تلقائيًا — حين يتولى قسم تقنية المعلومات نشر التحديثات بنفسه، مثلًا — يُعيَّن متغير البيئة SIGNALLAB_NO_UPDATE_CHECK إلى أي قيمة؛ ويظل الزر التحقق من وجود تحديثات يعمل عند الضغط عليه. ولا تبحث إصدارات التطوير عن تحديثات من تلقاء نفسها أبدًا.

الخادم ​

يُحدَّث الخادم، والصفحة التي يعرضها المتصفح منه، مع صورة Docker الخاصة به، لا من تلقاء نفسه أبدًا: وتذكر نافذة «حول» ذلك. طريقة تحديثه: الخادم.

إلغاء التثبيت ​

Windows. يُفتح الإعدادات ← التطبيقات ← التطبيقات المثبتة، ويُبحث عن Signal Lab ثم يُختار إلغاء التثبيت. يُزيل برنامج إلغاء التثبيت signallab.exe من PATH، وحين يعمل بصلاحيات المسؤول (كما في التثبيت للجميع) يحذف كل قاعدة جدار حماية للاتصالات الواردة خاصة بالتطبيق وبسطر الأوامر، بما فيها أي قاعدة أنشأتها نافذة طلب Windows. ويعرض خانة لحذف بيانات التطبيق أيضًا: وهي إعدادات التطبيق نفسه — اللغة، وأحجام الأجزاء، والشاشة التي كانت مفتوحة، والقيم التي كُتبت أخيرًا في الشاشات — لا ملفات المستخدم. وتُزال حزمة MSI المثبتة بالطريقة نفسها؛ فتأخذ معها مدخلها في PATH، وتترك جدار الحماية لمن نشرها.

Linux. تُزال الحزمة بمدير الحزم الذي ثُبّتت به، أو يُحذف ملف AppImage.

ولا يمس أيٌّ منهما مجلد البيانات: تبقى التجارب ومكتبتا الإشارات والمحاكيات وتقارير التشغيل والملفات المصدَّرة في Documents/SignalLab داخل المجلد الرئيسي للمستخدم. ومن أراد التخلص منها يحذف ذلك المجلد بنفسه.

أين تُحفظ البيانات ​

كل ما يُصنع يُحفظ ملفاتٍ عادية في مجلد واحد، Documents/SignalLab داخل المجلد الرئيسي للمستخدم، على Windows وLinux على حد سواء: التجربة الحالية، ومكتبة الإشارات، ومكتبة المحاكيات، وتقارير التشغيل، والملفات المصدَّرة، وما التقطه الفاحص. وتصف صفحة الملفات والمجلدات كل ملف وصيغته.

تشغيله خادمًا ​

لاستخدام Signal Lab من المتصفح — على كمبيوتر مختبر بجوار المعدات، أو على جهاز Linux، أو في Docker — التفاصيل في الخادم. وعلى جهاز Linux فيه Docker، يثبّته أمر واحد ويشغّله.