
قاعدة بيانات الحزم الخاصة بـ r2pm، مدير حزم radare2، توفّر خطافات التثبيت والحزم الثنائية لإضافات radare2 والنصوص البرمجية والأدوات المساعدة ذات الصلة بهندسة عكس البرمجيات.
يتم جلب هذا المستودع بواسطة r2pm -U ويوفر قاعدة بيانات الحزم.
تُثبَّت هذه الحزم في مجلد المستخدم الرئيسي ويمكن أن تكون إضافات/سكربتات لـ radare2 أو حتى أدوات/برامج مرتبطة بـ r2.
راجع https://github.com/radareorg/radare2 للحصول على r2pm
$ r2pm -U
$ r2pm -ci r2frida
export R2PM_DBDIR="$PWD/db"
# export R2PM_GITDIR="/path/to/the/root/folder/of/the/local/repository"
# export R2PM_USRDIR="/path/to/usr/dir"
تستخدم خطافات التثبيت وإلغاء التثبيت في Windows صيغة batch الأصلية. توقّف صراحةً
عند الفشل باستخدام command || exit /b 1؛ فهذا يلتقط رموز الخروج السالبة أيضًا.
استخدم call helper.cmd || exit /b 1 عند استدعاء ملف batch آخر حتى يعود التنفيذ
إلى الخطاف. تستمر تغييرات البيئة عبر الأسطر؛ وتتبع كتل if/else متعددة الأسطر
واستمرارات ^ قواعد CMD المعتادة.
استخدم r2pm -bi r2frida لتثبيت إصدار ثنائي جاهز دون استنساخ أو تجميع
المصادر. يحدد R2V الإصدار ويُعيَّن افتراضيًا إلى إصدار radare2 المثبَّت:
R2V=6.2.2 r2pm -bi r2frida
يمكنك اختياريًا الإعلان عن أنظمة التشغيل أو بيئات التشغيل أو الأهداف الدقيقة المدعومة
باستخدام R2PM_PLATFORMS:
R2PM_PLATFORMS "linux darwin windows"
# For a portable r2js script instead:
R2PM_PLATFORMS "r2js"
# For a package restricted to 32-bit x86 Linux instead:
R2PM_PLATFORMS "linux-x86-32"
تتحكم الوسوم المفصولة بمسافات في تصفية البحث عن الحزم وتملأ
مصفوفة platforms في r2pm -sj. يمكن الإعلان عن وسوم أخرى، مثل termux،
عند دعمها. الإعلان اختياري: الحزم التي لا تحتويه، أو التي تحتوي على قيمة
فارغة، تحتفظ باستنتاج المنصة من خطافات التثبيت الخاصة بها وتحافظ على
سلوك التثبيت الحالي. تُطابَق ثلاثيات os-arch-bits الدقيقة مع
r2pm -H R2PM_TRIPLET، بما في ذلك المعمارية وعدد البتات. الإدخالات المتعددة
بدائل، لذا فإن إضافة linux إلى جانب ثلاثية تسمح بجميع معماريات Linux.
يكشف JSON أيضًا عن binary: true عند وجود خطاف R2PM_BINSTALL*؛
وتُعدّ السكربتات الجاهزة للاستخدام عمليات تثبيت ثنائية أيضًا. لا تضمن وسوم المنصة
وجود نسخة ثنائية لكل إصدار.
توفر الحزم R2PM_BINSTALL() لأوامر Unix shell و
R2PM_BINSTALL_WINDOWS() لأوامر Windows. تعمل هذه الخطافات دون
استنساخ المصدر، وتستقبل R2V وR2PM_OS (linux، darwin، windows، ...)،
وR2PM_ARCH (x86، arm، ...)، وR2PM_BITS (32 أو 64) وR2PM_TRIPLET
(<os>-<arch>-<bits>، على سبيل المثال linux-x86-64)، وتُثبِّت في
مجلدات R2PM_PLUGDIR وR2PM_BINDIR المعتادة وغيرها من مجلدات r2pm. يحدد -g
مجلد إضافات النظام ويوفر R2PM_SUDO على Unix.
يجب على الخطافات الثنائية اختيار الإصدار والهدف الدقيقين، والتعامل مع أدواتها
واعتماديات بيئة التشغيل الخاصة بها، واحترام R2PM_OFFLINE، وإرجاع قيمة غير صفرية إذا كان
الملف الثنائي غير متاح أو فشل التثبيت. تُعدّ R2PM_NEEDS وR2PM_DEPS
متطلبات مسبقة للبناء من المصدر ويتم تخطيها. لا يوجد بديل من المصدر: يُبلِّغ r2pm
عن الخطأ ويطلب من المستخدم إعادة التشغيل دون -b.
تستخرج خطافات r2frida أصول إصدار Linux .deb وmacOS .pkg وWindows .zip
إلى مجلدات r2pm. يعتمد التوفر على الإصدار المحدد؛
وتفشل المعماريات أو الإصدارات المفقودة بدلًا من استخدام إصدار مختلف.