
База данных пакетов для 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"
# Для переносимого скрипта r2js вместо этого:
R2PM_PLATFORMS "r2js"
# Для пакета, ограниченного 32-битным x86 Linux, вместо этого:
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 и
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. Доступность зависит от выбранного релиза;
отсутствующие архитектуры или версии приводят к ошибке, а не к использованию другого релиза.