CLI providing unifying interface to all package managers.
Source: XKCD #1654.
- Search and list all package managers on the system.
- Supports macOS and Linux.
- List installed packages.
- Search for packages.
- List outdated packages.
- Sync local package infos.
- Upgrade all outdated packages.
- Apply commands per-package manager or to all of them.
- Export results in JSON or user-friendly tables.
- Provides a BitBar plugin for friendly macOS integration.
Package manager | Version | macOS | Linux | Windows | sync |
installed |
search |
install |
outdated |
upgrade |
---|---|---|---|---|---|---|---|---|---|---|
Homebrew | >= 1.0.* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Homebrew Cask | >= 1.1.12 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Python 2 pip |
>= 9.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Python 3 pip |
>= 9.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Node's npm |
>= 4.0.* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Atom's apm |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Ruby's gem |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Mac AppStore via mas |
>= 1.3.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
apt |
>= 1.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
If you're bored, feel free to add support for new package manager. See good candidates at:
This package is available on PyPi, so you can install the
latest stable release and its dependencies with a simple pip
call:
$ pip install meta-package-manager
Docs are hosted on Read the Docs.
Examples of the package's mpm
CLI.
List global options and commands:
$ mpm
Usage: mpm [OPTIONS] COMMAND [ARGS]...
CLI for multi-package manager upgrades.
Options:
-v, --verbosity LEVEL Either CRITICAL, ERROR, WARNING, INFO or
DEBUG. Defaults to INFO.
-m, --manager [apm|apt|brew|cask|gem|mas|npm|pip2|pip3]
Restrict sub-command to a subset of package
managers. Repeat to select multiple
managers. Defaults to all.
--ignore-auto-updates / --include-auto-updates
Report all outdated packages, including
those tagged as auto-updating. Defaults to
include all packages. Only applies for
'outdated' and 'upgrade' commands.
-o, --output-format [ascii|csv|double|fancy_grid|github|grid|html|jira|json|latex|latex_booktabs|mediawiki|moinmoin|orgtbl|pipe|plain|psql|rst|simple|textile|tsv|vertical]
Rendering mode of the output. Defaults to
fancy-grid.
--stats / --no-stats Print statistics or not at the end of
output. Active by default.
--stop-on-error / --continue-on-error
Stop right away or continue operations on
manager CLI error. Defaults to stop.
--version Show the version and exit.
--help Show this message and exit.
Commands:
installed List installed packages.
managers List supported package managers and their location.
outdated List outdated packages.
search Search packages.
sync Sync local package info.
upgrade Upgrade all packages.
List all supported package managers and their status on current system (macOS):
$ mpm managers
╒═══════════════════╤══════╤═══════════════╤════════════════════════╤══════════════╤═════════════╕
│ Package manager │ ID │ Supported │ CLI │ Executable │ Version │
╞═══════════════════╪══════╪═══════════════╪════════════════════════╪══════════════╪═════════════╡
│ Atom's apm │ apm │ ✓ │ ✓ /usr/local/bin/apm │ ✓ │ ✓ 1.18.1 │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ APT │ apt │ ✘ Linux only │ ✓ /usr/bin/apt │ ✓ │ ✘ │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ Homebrew │ brew │ ✓ │ ✓ /usr/local/bin/brew │ ✓ │ ✓ 1.2.5 │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ Homebrew Cask │ cask │ ✓ │ ✓ /usr/local/bin/brew │ ✓ │ ✓ 1.2.5 │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ Ruby Gems │ gem │ ✓ │ ✓ /usr/bin/gem │ ✓ │ ✓ 2.0.14.1 │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ Mac AppStore │ mas │ ✓ │ ✓ /usr/local/bin/mas │ ✓ │ ✓ 1.3.1 │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ Node's npm │ npm │ ✓ │ ✓ /usr/local/bin/npm │ ✓ │ ✓ 5.3.0 │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ Python 2's Pip │ pip2 │ ✓ │ ✓ /usr/local/bin/pip2 │ ✓ │ ✓ 9.0.1 │
├───────────────────┼──────┼───────────────┼────────────────────────┼──────────────┼─────────────┤
│ Python 3's Pip │ pip3 │ ✓ │ ✓ /usr/local/bin/pip3 │ ✓ │ ✓ 9.0.1 │
╘═══════════════════╧══════╧═══════════════╧════════════════════════╧══════════════╧═════════════╛