
r2pm के लिए पैकेज डेटाबेस, जो radare2 पैकेज मैनेजर है, जो radare2 प्लगइन्स, स्क्रिप्ट्स और संबंधित रिवर्स-इंजीनियरिंग उपयोगिताओं के लिए इंस्टॉल हुक्स और बाइनरी पैकेज प्रदान करता है।
यह रिपॉज़िटरी r2pm -U द्वारा फ़ेच की जाती है और पैकेज डेटाबेस प्रदान करती है।
ये पैकेज उपयोगकर्ता के होम में इंस्टॉल होते हैं और radare2 के लिए प्लगइन/स्क्रिप्ट या r2 से संबंधित उपयोगिताएँ/प्रोग्राम भी हो सकते हैं।
r2pm के लिए https://github.com/radareorg/radare2 देखें
$ 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 इंस्टॉल और अनइंस्टॉल हुक नेटिव बैच सिंटैक्स का उपयोग करते हैं। विफलता पर स्पष्ट रूप से रुकें command || exit /b 1 के साथ; यह नकारात्मक एक्ज़िट कोड भी पकड़ता है। किसी अन्य बैच फ़ाइल को कॉल करते समय call helper.cmd || exit /b 1 का उपयोग करें ताकि निष्पादन हुक पर वापस लौटे। पर्यावरण परिवर्तन पंक्तियों के पार बने रहते हैं; बहु-पंक्ति 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"
स्पेस से अलग किए गए टैग पैकेज खोज फ़िल्टरिंग को नियंत्रित करते हैं और r2pm -sj में platforms ऐरे को भरते हैं। अन्य टैग, जैसे termux, समर्थित होने पर घोषित किए जा सकते हैं। घोषणा वैकल्पिक है: बिना घोषणा वाले पैकेज, या खाली मान वाले पैकेज, अपने इंस्टॉल हुक से प्लेटफ़ॉर्म अनुमान बनाए रखते हैं और अपना मौजूदा इंस्टॉल व्यवहार बनाए रखते हैं। सटीक os-arch-bits ट्रिपलेट्स को r2pm -H R2PM_TRIPLET के विरुद्ध मिलाया जाता है, जिसमें आर्किटेक्चर और बिटनेस शामिल हैं। कई प्रविष्टियाँ विकल्प हैं, इसलिए किसी ट्रिपलेट के साथ linux जोड़ने से सभी Linux आर्किटेक्चर की अनुमति मिलती है। JSON binary: true भी प्रदर्शित करता है जब कोई R2PM_BINSTALL* हुक मौजूद हो; तैयार-से-उपयोग स्क्रिप्ट भी बाइनरी इंस्टॉल के रूप में गिनी जाती हैं। प्लेटफ़ॉर्म टैग हर रिलीज़ के लिए बाइनरी की गारंटी नहीं देते हैं।
पैकेज Unix शेल कमांड के लिए R2PM_BINSTALL() और Windows कमांड के लिए R2PM_BINSTALL_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 सिस्टम प्लगइन निर्देशिका का चयन करता है और Unix पर R2PM_SUDO प्रदान करता है।
बाइनरी हुक को सटीक संस्करण और लक्ष्य का चयन करना चाहिए, अपने स्वयं के टूल्स और रनटाइम निर्भरताओं को संभालना चाहिए, R2PM_OFFLINE का सम्मान करना चाहिए, और यदि बाइनरी उपलब्ध न हो या इंस्टॉलेशन विफल हो तो नॉनज़ीरो लौटाना चाहिए। R2PM_NEEDS और R2PM_DEPS स्रोत-बिल्ड पूर्वापेक्षाएँ हैं और छोड़ दिए जाते हैं। कोई स्रोत फ़ॉलबैक नहीं है: r2pm त्रुटि की रिपोर्ट करता है और उपयोगकर्ता से -b के बिना पुनः चलाने के लिए कहता है।
r2frida हुक Linux .deb, macOS .pkg, और Windows .zip रिलीज़ एसेट्स को r2pm निर्देशिकाओं में निकालते हैं। उपलब्धता चयनित रिलीज़ पर निर्भर करती है; अनुपलब्ध आर्किटेक्चर या संस्करण किसी भिन्न रिलीज़ का उपयोग करने के बजाय विफल हो जाते हैं।