OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

تطبيق التصحيح‌


في إحدى حالات الاستخدام الخاصة بنا ، قمنا بتنزيل ملف بيريت حزمة المصدر ونريد تطبيق تصحيح وجدنا في مستودع git المنبع. هذه عملية شائعة ويجب أن تكون بسيطة دائمًا. لسوء الحظ ، يمكن معالجة التصحيحات بطرق مختلفة اعتمادًا على تنسيق الحزمة المصدر وعلى سير عمل حزمة Git قيد الاستخدام (عند استخدام Git للحفاظ على الحزمة).


مع حزمة مصدر غير معبأة لقد ركضت مصدر مناسب pyrit ولديك بيريت 0.

4.0 دليل. يمكنك تطبيق التصحيح الخاص بك مباشرة مع التصحيح -p1 ملف التصحيح:


$ مصدر مناسب pyrit

[...]

$ قرص مضغوط pyrit-0.4.0

$ wget https://github.com/JPaulMora/Pyrit/commit/14

ec997174b8e8fd20d22b6a97c57e19633f12a0.patch -O /tmp/pyrit-patch

[...]

$ التصحيح -p1

ملف الترقيع cpyrit / pckttools.py

$ مصدر مناسب pyrit

[...]

$ قرص مضغوط pyrit-0.4.0

$ wget https://github.com/JPaulMora/Pyrit/commit/14

ec997174b8e8fd20d22b6a97c57e19633f12a0.patch -O /tmp/pyrit-patch

[...]

$ التصحيح -p1

ملف الترقيع cpyrit / pckttools.py


نجحت القطعة رقم 1 في 53 (إزاحة -1 خطوط).

$ dch - local buxy "ضع رقعة للعمل مع scapy 2.3"

نجحت القطعة رقم 1 في 53 (إزاحة -1 خطوط).

$ dch - local buxy "ضع رقعة للعمل مع scapy 2.3"


في هذه المرحلة ، قمت بتصحيح الكود المصدري يدويًا ويمكنك بالفعل إنشاء حزم ثنائية من نسختك المعدلة (انظر القسم 9.1.4، "بدء تشغيل البناء”[الصفحة 231]). ولكن إذا حاولت إنشاء حزمة مصدر محدثة ، فسوف تفشل ، وتشتكي من "التغييرات الأولية غير المتوقعة". هذا لأن pyrit (مثل غالبية حزم المصدر) يستخدم تنسيق المصدر (انظر ديبيان / المصدر / الشكل file) المعروف باسم 3.0 (لحاف) ، حيث يجب تسجيل التغييرات التي تطرأ على الكود الأولي في تصحيحات منفصلة مخزنة في ديبيان / بقع / وحيث ال ديبيان / بقع / سلسلة يشير ملف إلى الترتيب الذي يجب تطبيق التصحيحات به. يمكنك تسجيل تغييراتك في تصحيح جديد عن طريق التشغيل مصدر dpkg - التزام:


$ مصدر dpkg - التزام

dpkg-source: info: تم اكتشاف تغييرات محلية ، الملفات المعدلة هي: pyrit-0.4.0 / cpyrit / pckttools.py

أدخل اسم التصحيح المطلوب: الإصلاح مقابل سكابي 2.3

dpkg-source: info: تم تسجيل التغييرات المحلية في تصحيح جديد: pyrit-0.4.0 / debian /

بقع / Fix-for-scapy-2.3.patch

$ Tail -n 1 ديبيان / بقع / سلسلة

الإصلاح مقابل سكابي 2.3

$ مصدر dpkg - التزام

dpkg-source: info: تم اكتشاف تغييرات محلية ، الملفات المعدلة هي: pyrit-0.4.0 / cpyrit / pckttools.py

أدخل اسم التصحيح المطلوب: الإصلاح مقابل سكابي 2.3

dpkg-source: info: تم تسجيل التغييرات المحلية في تصحيح جديد: pyrit-0.4.0 / debian /

بقع / Fix-for-scapy-2.3.patch

$ Tail -n 1 ديبيان / بقع / سلسلة

الإصلاح مقابل سكابي 2.3


سلسلة لحاف باتش تم تعميم اتفاقية إدارة التصحيح هذه بواسطة أداة تسمى لحاف وبالتالي فإن تنسيق الحزمة المصدر "3.0 (لحاف)" متوافق مع هذه الأداة — مع الانحراف الصغير الذي تستخدمه ديبيان / بقع بدلا من بقع. تتوفر هذه الأداة في الحزمة التي تحمل الاسم نفسه ويمكنك العثور على برنامج تعليمي لطيف هنا:

https://raphaelhertzog.com/2012/08/08/

how-to-use-quilt-to-management-patches-in-debian-pack /

سلسلة لحاف باتش تم تعميم اتفاقية إدارة التصحيح هذه بواسطة أداة تسمى لحاف وبالتالي فإن تنسيق الحزمة المصدر "3.0 (لحاف)" متوافق مع هذه الأداة — مع الانحراف الصغير الذي تستخدمه ديبيان / بقع بدلا من بقع. تتوفر هذه الأداة في الحزمة التي تحمل الاسم نفسه ويمكنك العثور على برنامج تعليمي لطيف هنا:

https://raphaelhertzog.com/2012/08/08/

how-to-use-quilt-to-management-patches-in-debian-pack /


إذا كانت الحزمة المصدر تستخدم تنسيق المصدر 1.0 أو 3.0 (أصلي) ، فلا داعي لتسجيل التغييرات الأولية في تصحيح. يتم تجميعها تلقائيًا في الحزمة المصدر الناتجة.


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

الأداة الأكثر شيوعًا هي git-buildpackage. إنه ما نستخدمه لإدارة جميع المستودعات على git- lab.com/kalilinux/packages. عند استخدامه ، لا يتم تطبيق التصحيحات مسبقًا في شجرة المصدر ولكن يتم تخزينها في ديبيان / بقع. يمكنك إضافة تصحيحات يدويًا في هذا الدليل وإدراجها في قائمة

in ديبيان / بقع / سلسلة لكن مستخدمي git-buildpackage يميلون إلى استخدام ملفات الجنيه الاسترليني صق لتعديل سلسلة التصحيح بأكملها كفرع واحد يمكنك تمديده أو إعادة تأسيسه حسب رغبتك. يفحص جي بي بي-بي كيو (1) لتتعلم كيف تستدعيه.

بوابة dpm (مع الأمر المرتبط بنفس الاسم) هو أداة أخرى لتعبئة git يمكنك أن تجدها قيد الاستخدام. يسجل البيانات الوصفية بتنسيق debian / .git-dpm ويحافظ على التصحيحات مطبقة في شجرة المصدر عن طريق دمج فرع معاد تأسيسه باستمرار والذي يبني من محتوى ديبيان / بقع.


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: