R2PM(1)
π
r2pm β Radare2 Package Manager (the r2pm(1) page, bestie edition)
okay so imagine a whole package manager for Radare2 that installs, updates, uninstalls and discovers plugins and tools for you β that's r2pm, and she's literally the main character of your ~/.local/share/radare2 era π
β¨ SYNOPSIS β¨
r2pm [-AacdeHhijlpqrRstuUvw] [pkgs...]
that's it. that's the vibe check. flags + packages, go off π
πΈ DESCRIPTION πΈ
The package manager for Radare2, allowing installation, update, uninstallation, and discovery of plugins and tools. She does it all and she does it quietly (unless you forget -q, then she's chatty, which is also fine π«Ά).
-Aβ include packages that are unsupported by your local platform or build in the-sresults. Text output marks them as[unsupported], so you know π-arepository β add or delete an external repository. Using-a repositoryadds a repo, and-a -repositorydeletes it (yes the minus sign is doing the work, it's giving unsubscribe π). Use with no arguments to list all the registered repos.-cpkgname β clear the cached sources for the given package. And psst, use-cpto clean the user plugin directory π§-d,docpkgname β show documentation and source for the given package script. study time, bestie π-epkgname β edit the given package script using$EDITOR. hands-on queen π-fβ force the operation. Requires-U,-ior-u.-gipkg β global install (system-wide). big moves π-hβ display the help message-H[variable] β list all, or just the selected, r2pm environment variables π-ipkgname β install/update the package and its dependencies. no package left behind fr fr-Iβ information about the repository and the installed packages π-jβ JSON output. Requires-l,-sor-v. Search objects include aplatformsarray of strings and asupportedboolean. machine-readable slay β-lβ list installed packages-qβ be quiet. Requires an action (silence is a choice, but you gotta be doing something π)-rcmd ...args β run a shell command withR2PM_BINDIRinPATH-Rpkgname β reload a plugin (see theR2PM_RELOADcode block package) π₯-s[keyword] β search available packages in the database matching a string. By default it filters to packages supported by the local platform and build. Returns an error code if no package was found π-tYYYY-MM-DD β set the package checkout date. Requires an action. time travel era π°οΈ-upkgname β uninstall the package (see-fto force the uninstall). it's not goodbye, it's see you later π-ucipkgname β uninstall + clean + install. the full glow-up combo β¨-uipkgname β uninstall + install-Uβ download/initialize or update the database (-ffor a clean clone) π¦-UUβ same as-Ubut it also upgrades all the installed r2 plugins. overachiever behavior, obsessed π-vβ show version
π ENVIRONMENT π
these are the little env vars that run the whole operation. set them, love them, don't fight them π«Ά
SUDOβ command to use for system-wide installs (default:sudo)R2PM_PLUGDIRβ directory for user plugins (default:~/.local/share/radare2/plugins)R2PM_BINDIRβ directory for user binaries (default:~/.local/share/radare2/prefix/bin)R2PM_MANDIRβ directory for user man pages (default:~/.local/share/radare2/prefix/man)R2PM_DOCDIRβ directory for user documentation (default:~/.local/share/radare2/prefix/doc)R2PM_OFFLINEβ disable online operations (default:0)R2PM_PLATFORMβ override the platform used to filter-sresults. Accepted values arer2,unix,windows,qjs, andany; multiple values may be space-separated. Packages with anR2PM_INSTALL_R2()block are portable radare2-command packages; the automatically detected platform always includesr2. The block is executed by radare2 during installation; a matchingR2PM_UNINSTALL_R2()block handles uninstallation. portability icon πR2PM_DBDIRβ directory for the r2pm database (default:~/.local/share/radare2/r2pm/db)R2PM_GITDIRβ directory for git repositories (default:~/.local/share/radare2/r2pm/git)R2PM_GITSKIPβ skipgit pulloperations when setR2PM_TIMEβ point in time to use forgit checkout(format:YYYY-MM-DD)R2_LOG_LEVELβ control verbosity of log messagesR2PM_INCDIRβ directory for include filesR2PM_LIBDIRβ directory for librariesR2PM_PREFIXβ installation prefixR2_CFLAGSβ compiler flags to build against radare2 librariesR2_LDFLAGSβ linker search path flags to build against radare2 librariesR2_LIBSβ library flags to link against radare2 libraries
π EXAMPLES π
Install a package β the classic, the icon:
$ r2pm -i yara3
Clean the cache and then install (and no git pull on $R2PM_GITDIR/yara3, she's on timeout):
$ r2pm -ci yara3
Avoid init/update calls (no git pull on $R2PM_DBDIR, we're staying in tonight):
$ R2PM_OFFLINE=1 r2pm -i yara
Uninstall a package:
$ r2pm -u yara3
Force uninstall a package (when she refuses to leave π€):
$ r2pm -fu yara3
Search a package:
$ r2pm -s yara
Search all packages, including the unsupported ones:
$ r2pm -As
List installed packages:
$ r2pm -l
Update the database and upgrade all installed packages β the full send π₯:
$ r2pm -UU
π¦ SEE ALSO π¦
radare2(1)β go say hi to the parent, iykyk
π AUTHORS π
Written by pancake <pancake@nopcode.org>. legend behavior, no cap π«Ά
okay that's the whole page bestie, go install something cute β¨π and yeah β this was the R2PM(1) page, September 1, 2026, mwah ππ
π¦ where this page comes from
- arch rolling: radare2 6.2.2-1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms