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

Homebrew

>= 1.0.*

Homebrew Cask

>= 1.0.*

Python 2 pip

Python 3 pip

Node’s npm

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.3.0 (2017-12-15)

  • Add Sphinx documentation. Closes #24.

  • Add installation instructions. Closes #19.

  • Add a list of Falsehoods Programmers Believe About Package Managers.

  • Add a .mailmap config file to consolidate contributor’s identity.

  • Make it easier to change the font, size and color of text in BitBar plugin.

  • Move error icon in BitBar plugin to the front of manager name.

  • Fix parsing of cask packages with multiple names. Closes #26.

  • Move BitBar plugin documentation to dedicated page.

  • Fix exceptions when commands gives no output. Closes #29 and #31.

  • Fix cask update deprecation warning. Closes #28.

  • Activate unittests in Python 3.6.

  • Replace double by single-width characters in mpm output to fix table misalignement. Closes #30.

Full changelog.

Release history Release notifications | RSS feed

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.3.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

meta_package_manager-2.3.0-py2.py3-none-any.whl (40.7 kB view details)

Uploaded Python 2 Python 3

meta_package_manager-2.3.0-py2.7.egg (36.6 kB view details)

Uploaded Source

File details

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

File metadata

File hashes

Hashes for meta-package-manager-2.3.0.tar.gz
Algorithm Hash digest
SHA256 64d73f0f5156e534a08db7f6dc16c89c09fd1e2c02fa651b8a328f0d3cd78af5
MD5 5a8127c6d84b39418917377c3ddd18f5
BLAKE2b-256 2fde6cfdd50177ebbf177625a6fb0d38b221a596e9038f6e2ccc9dbfd27404ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for meta_package_manager-2.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3f4e5088644a709cf6fe55210c0f0bc6272da31a0a98c8526b182633c96601c6
MD5 dcba60a227d221037cdef4988f0d2106
BLAKE2b-256 d0e26b94405ba565a82126fe26f5e98f0b4e688637c6b2bcfe0e80e1f8500e78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for meta_package_manager-2.3.0-py2.7.egg
Algorithm Hash digest
SHA256 54aa8af210892d7323bb65c0e61dc1fbc54a26d4bc9784807d676c98f47dfcce
MD5 3026b848129813153071049305d868ee
BLAKE2b-256 693f6277c5accdd1a51ef011280feb0c9ac089da179fd5b0a764abf36b8d2446

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