
Base de données de paquets pour r2pm, le gestionnaire de paquets de radare2, fournissant des hooks d'installation et des paquets binaires pour les plugins, scripts et utilitaires de rétro-ingénierie associés à radare2.
Ce dépôt est récupéré par r2pm -U et fournit la base de données des paquets.
Ces paquets sont installés dans le répertoire personnel de l'utilisateur et peuvent être des plugins/scripts pour radare2 ou même des utilitaires/programmes liés à r2.
Voir https://github.com/radareorg/radare2 pour 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"
Les hooks d'installation et de désinstallation Windows utilisent la syntaxe batch native. Arrêtez-vous explicitement
en cas d'échec avec command || exit /b 1 ; cela intercepte aussi les codes de sortie négatifs.
Utilisez call helper.cmd || exit /b 1 lors de l'appel d'un autre fichier batch afin que l'exécution
revienne au hook. Les modifications d'environnement persistent d'une ligne à l'autre ; les blocs
if/else multilignes et les continuations ^ suivent les règles CMD habituelles.
Utilisez r2pm -bi r2frida pour installer un binaire publié sans cloner ni compiler
les sources. R2V sélectionne la version et vaut par défaut la version installée de radare2 :
R2V=6.2.2 r2pm -bi r2frida
Déclarez éventuellement les systèmes d'exploitation, environnements d'exécution ou cibles exactes pris en charge avec
R2PM_PLATFORMS :
R2PM_PLATFORMS "linux darwin windows"
# Pour un script r2js portable à la place :
R2PM_PLATFORMS "r2js"
# Pour un paquet restreint à Linux x86 32 bits à la place :
R2PM_PLATFORMS "linux-x86-32"
Les étiquettes séparées par des espaces contrôlent le filtrage de recherche des paquets et remplissent le
tableau platforms dans r2pm -sj. D'autres étiquettes, comme termux, peuvent être déclarées
lorsqu'elles sont prises en charge. La déclaration est facultative : les paquets qui n'en ont pas, ou avec une
valeur vide, conservent l'inférence de plateforme à partir de leurs hooks d'installation et gardent leur
comportement d'installation existant. Les triplets exacts os-arch-bits sont comparés à
r2pm -H R2PM_TRIPLET, y compris l'architecture et le nombre de bits. Plusieurs entrées
sont des alternatives, donc ajouter linux à côté d'un triplet autorise toutes les architectures Linux. Le JSON expose aussi binary: true lorsqu'un hook R2PM_BINSTALL*
existe ; les scripts prêts à l'emploi comptent aussi comme installations binaires. Les étiquettes de plateforme
ne garantissent pas un binaire pour chaque version.
Les paquets fournissent R2PM_BINSTALL() pour les commandes shell Unix et
R2PM_BINSTALL_WINDOWS() pour les commandes Windows. Ces hooks s'exécutent sans
extraction des sources, reçoivent R2V, R2PM_OS (linux, darwin, windows, ...),
R2PM_ARCH (x86, arm, ...), R2PM_BITS (32 ou 64) et R2PM_TRIPLET
(<os>-<arch>-<bits>, par exemple linux-x86-64), et installent dans
les répertoires habituels R2PM_PLUGDIR, R2PM_BINDIR et autres répertoires r2pm. -g sélectionne
le répertoire des plugins système et fournit R2PM_SUDO sous Unix.
Les hooks binaires doivent sélectionner la version et la cible exactes, gérer leurs propres outils
et dépendances d'exécution, respecter R2PM_OFFLINE, et renvoyer une valeur non nulle si le
binaire est indisponible ou si l'installation échoue. R2PM_NEEDS et R2PM_DEPS sont
des prérequis de compilation depuis les sources et sont ignorés. Il n'y a pas de repli vers les sources : r2pm
signale l'erreur et demande à l'utilisateur de relancer sans -b.
Les hooks r2frida extraient les ressources publiées Linux .deb, macOS .pkg et Windows .zip
dans les répertoires r2pm. La disponibilité dépend de la version sélectionnée ;
les architectures ou versions manquantes échouent plutôt que d'utiliser une autre version.