Skip to main content

CLI providing unifying interface to all package managers.

Project description

CLI providing unifying interface to all package managers.

Stable release: Last release Python versions Software license Requirements freshness

Development: Unit-tests status Documentation Status Coverage Status Code Quality

Obligatory XKCD.

Source: XKCD #1654.

Features

  • 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.

Supported package managers

Package manager

Version

macOS

Linux

Windows

sync

installed

search

install

outdated

upgrade

Homebrew

>= 1.0.*

Homebrew Cask

>= 1.0.*

Python 2 pip

Python 3 pip

Node’s npm

>= 4.0.*

Atom’s apm

Ruby’s gem

Mac AppStore via mas

>= 1.3.1

If you’re bored, feel free to add support for new package manager. See the list of good candidates.

Usage

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 [npm|mas|pip3|pip2|cask|apm|brew|gem]
                                  Restrict sub-command to one package manager.
                                  Defaults to all.
  -o, --output-format [simple|plain|json|fancy]
                                  Rendering mode of the output. Defaults to
                                  fancy.
  --version                       Show the version and exit.
  --help                          Show this message and exit.

Commands:
  managers  List supported package managers and their location.
  outdated  List outdated packages.
  sync      Sync local package info.
  upgrade   Upgrade all packages.

List all supported package managers and their status on current system:

$ mpm managers
╒═══════════════════╤══════╤═════════════╤════════════════════════╤══════════════╤═════════════╕
│ Package manager   │ ID   │ Supported   │ CLI                    │ Executable   │ Version     │
╞═══════════════════╪══════╪═════════════╪════════════════════════╪══════════════╪═════════════╡
│ Atom's apm        │ apm  │ ✓           │ ✓  /usr/local/bin/apm  │ ✓            │ ✓  1.12.9   │
├───────────────────┼──────┼─────────────┼────────────────────────┼──────────────┼─────────────┤
│ Homebrew          │ brew │ ✓           │ ✓  /usr/local/bin/brew │ ✓            │ ✓  1.1.7    │
├───────────────────┼──────┼─────────────┼────────────────────────┼──────────────┼─────────────┤
│ Homebrew Cask     │ cask │ ✓           │ ✓  /usr/local/bin/brew │ ✓            │ ✓  1.1.7    │
├───────────────────┼──────┼─────────────┼────────────────────────┼──────────────┼─────────────┤
│ 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  │ ✓            │ ✓  4.0.5    │
├───────────────────┼──────┼─────────────┼────────────────────────┼──────────────┼─────────────┤
│ Python 2's Pip    │ pip2 │ ✓           │ ✓  /usr/local/bin/pip2 │ ✓            │ ✓  9.0.1    │
├───────────────────┼──────┼─────────────┼────────────────────────┼──────────────┼─────────────┤
│ Python 3's Pip    │ pip3 │ ✓           │ ✓  /usr/local/bin/pip3 │ ✓            │ ✓  9.0.1    │
╘═══════════════════╧══════╧═════════════╧════════════════════════╧══════════════╧═════════════╛

Changes for v2.5.0 (2017-03-01)

  • Auto-detect location of manager CLI on the system.

  • Add new search operation. Closes #22.

  • Bump minimal requirement of npm to 4.0.*.

  • Rename list operation to installed.

  • Allow use of gem, npm and apm managers on Linux.

  • Add new --stats/--no-stats boolean flags. Closes #8.

  • Add new --stop-on-error/--continue-on-error parameters to make CLI errors either blocking or non-blocking.

  • Allow reporting of several CLI errors by managers.

  • Allow selection of a subset of managers.

  • Do not force a sync before listing installed packages in CLI.

  • Rework API documentation.

  • Add unittest to cover unicode names for Cask packages. Closes #16.

  • Add unittest to cover Cask packages with multiple names. Refs #26.

  • Drop support of Python 3.3.

Full changelog.

Release history Release notifications | RSS feed

This version

2.5.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meta-package-manager-2.5.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

meta_package_manager-2.5.0-py2.py3-none-any.whl (48.4 kB view details)

Uploaded Python 2 Python 3

meta_package_manager-2.5.0-py2.7.egg (44.4 kB view details)

Uploaded Source

File details

Details for the file meta-package-manager-2.5.0.tar.gz.

File metadata

File hashes

Hashes for meta-package-manager-2.5.0.tar.gz
Algorithm Hash digest
SHA256 3e9a2eb1a8cae2d437a446fc68b47444280388a8e5e5003c6c6eef993724f911
MD5 a4dc4ab9f81676a392f8f59081d49160
BLAKE2b-256 033aeaa93eb6cd3713ed8388f9eaee0bf2348bce862bdc1fe2b4d2fd0ef0ba21

See more details on using hashes here.

File details

Details for the file meta_package_manager-2.5.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for meta_package_manager-2.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 36dd18f6195b28346b5863ce0cee6ccfea8d006a6f2a1fea5ceff9396b645056
MD5 aab712075abaab85a19da50305913e02
BLAKE2b-256 6ad45c029ba1e649fe3528b9658f38a90c6f94869d079f4db05b57fa9722d94f

See more details on using hashes here.

File details

Details for the file meta_package_manager-2.5.0-py2.7.egg.

File metadata

File hashes

Hashes for meta_package_manager-2.5.0-py2.7.egg
Algorithm Hash digest
SHA256 19decdddc9eb0a0c64b1ca926fdb587336a64eb87a7baadc0c5804fa478f8064
MD5 7a08ece5c75058d129887090c96b9d21
BLAKE2b-256 f2aa69b8525394f2fb90ae063129b215d3e27c72f2ae614d1445f7e60f1938db

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page