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 -s results. Text output marks them as [unsupported], so you know πŸ‘€
  • -a repository β€” add or delete an external repository. Using -a repository adds a repo, and -a -repository deletes it (yes the minus sign is doing the work, it's giving unsubscribe πŸ’€). Use with no arguments to list all the registered repos.
  • -c pkgname β€” clear the cached sources for the given package. And psst, use -cp to clean the user plugin directory 🧚
  • -d, doc pkgname β€” show documentation and source for the given package script. study time, bestie πŸ“š
  • -e pkgname β€” edit the given package script using $EDITOR. hands-on queen πŸ’…
  • -f β€” force the operation. Requires -U, -i or -u.
  • -gi pkg β€” global install (system-wide). big moves πŸ‘‘
  • -h β€” display the help message
  • -H [variable] β€” list all, or just the selected, r2pm environment variables 🌈
  • -i pkgname β€” 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, -s or -v. Search objects include a platforms array of strings and a supported boolean. machine-readable slay ⭐
  • -l β€” list installed packages
  • -q β€” be quiet. Requires an action (silence is a choice, but you gotta be doing something πŸ™ˆ)
  • -r cmd ...args β€” run a shell command with R2PM_BINDIR in PATH
  • -R pkgname β€” reload a plugin (see the R2PM_RELOAD code 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 😭
  • -t YYYY-MM-DD β€” set the package checkout date. Requires an action. time travel era πŸ•°οΈ
  • -u pkgname β€” uninstall the package (see -f to force the uninstall). it's not goodbye, it's see you later πŸ’”
  • -uci pkgname β€” uninstall + clean + install. the full glow-up combo ✨
  • -ui pkgname β€” uninstall + install
  • -U β€” download/initialize or update the database (-f for a clean clone) πŸ¦‹
  • -UU β€” same as -U but 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 -s results. Accepted values are r2, unix, windows, qjs, and any; multiple values may be space-separated. Packages with an R2PM_INSTALL_R2() block are portable radare2-command packages; the automatically detected platform always includes r2. The block is executed by radare2 during installation; a matching R2PM_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 β€” skip git pull operations when set
  • R2PM_TIME β€” point in time to use for git checkout (format: YYYY-MM-DD)
  • R2_LOG_LEVEL β€” control verbosity of log messages
  • R2PM_INCDIR β€” directory for include files
  • R2PM_LIBDIR β€” directory for libraries
  • R2PM_PREFIX β€” installation prefix
  • R2_CFLAGS β€” compiler flags to build against radare2 libraries
  • R2_LDFLAGS β€” linker search path flags to build against radare2 libraries
  • R2_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