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

Installation

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

Documentation

Docs are hosted on Read the Docs.

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|apt|apm|brew|gem]
                                  Restrict sub-command to a subset of package
                                  managers. Repeat to select multiple
                                  managers. Defaults to all.
  -o, --output-format [simple|plain|json|fancy]
                                  Rendering mode of the output. Defaults to
                                  fancy.
  --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    │
╘═══════════════════╧══════╧═══════════════╧════════════════════════╧══════════════╧═════════════╛

Changes for v2.6.0 (2017-09-11)

  • Add support for apt on Linux systems.

  • Use pip 9.0 JSON output. Closes #18.

  • Bump minimal requirement of pip to 9.0.*.

  • Use new brew cask outdated command.

  • Remove usage of deprecated brew cask update command.

  • Bump minimal requirement of cask to 1.1.12.

  • Add dependency on simplejson.

  • Bump requirement to click_log >= 0.2.0. Closes #39.

  • Replace nose by pytest.

  • Only notify by mail of test failures.

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

Uploaded Source

Built Distributions

meta_package_manager-2.6.0-py2.py3-none-any.whl (50.6 kB view details)

Uploaded Python 2 Python 3

meta_package_manager-2.6.0-py2.7.egg (46.3 kB view details)

Uploaded Source

File details

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

File metadata

File hashes

Hashes for meta-package-manager-2.6.0.tar.gz
Algorithm Hash digest
SHA256 1e86dc5bb5332c0e068abdca5aec579e52707b2a5aed90230222732d1e522726
MD5 195407c382f78492b2090732b3343926
BLAKE2b-256 4220dc319e2ff65e799057e76f56d2c3d3bea37263ae677e0ed0cf6047b26582

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for meta_package_manager-2.6.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ef374d64d9a7f6fb86f67bf1eb9f71e08ba871037571283e15c2a6f752ca821e
MD5 57537ac42cb221e3a792fe8ad285b26f
BLAKE2b-256 f2b7c24ac68fbebde2d5ee4a70c4a4f4c6cc962e3ee1422f4be80d7a622faa93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for meta_package_manager-2.6.0-py2.7.egg
Algorithm Hash digest
SHA256 1ec92d172ca7f981d183836299427cbe763318876cd605ea44f9895b8739c4bf
MD5 f1cd167e1b4c168309479cddf76046e6
BLAKE2b-256 b5b0ed3ffd9276ba6e8e429bbb645c388251881111008bd42153f70d2ba5f7a3

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