๐ wraps all package managers with a unifying CLI
Project description
What is Meta Package Manager?
- provides the
mpm
CLI, a wrapper around all package managers mpm
is likeyt-dlp
, but for package managers instead of videosmpm
solves XKCD #1654 - Universal Install Script
Features
- Inventory and list all package managers available on the system.
- Supports macOS, Linux and Windows.
- Standalone executables for macOS, Linux and Windows.
- List installed packages.
- List duplicate installed packages.
- Search for packages.
- Install a package.
- Remove a package.
- List outdated packages.
- Sync local package infos.
- Upgrade all outdated packages.
- Backup list of installed packages to TOML file.
- Restore/install list of packages from TOML files.
- Pin-point commands to a subset of package managers (include/exclude selectors).
- Support plain, versionned and purl package specifiers.
- Export output to JSON or print user-friendly tables.
- Shell auto-completion for Bash, Zsh and Fish.
- Provides a Xbar/SwiftBar plugin for friendly macOS integration.
- Because
mpm
try to wrap all other package managers, it became another pathological case of XKCD #927: Standards
Supported package managers and operations
Package manager | Min. version | BSD[^bsd_without_macos] | Linux[^linux] | macOS | Unix[^unix] | Windows | installed |
outdated |
search |
install |
upgrade |
upgrade_all |
remove |
sync |
cleanup |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apm โ ๏ธ |
1.0.0 | ๐ ฑ๏ธ | ๐ง | ๐ | ๐ช | โ | โ | โ | โ | โ | โ | ||||
apt |
1.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | |||
apt-mint |
1.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | |||
brew |
2.7.0 | ๐ง | ๐ | โ | โ | โ | โ | โ | โ | โ | โ | โ | |||
cargo |
1.0.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | โ | โ | |||||
cask |
2.7.0 | ๐ | โ | โ | โ | โ | โ | โ | โ | โ | โ | ||||
choco |
0.10.9 | ๐ช | โ | โ | โ | โ | โ | โ | |||||||
composer |
1.4.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | โ | โ | โ | โ | โ | ||
dnf |
4.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | |||
emerge |
3.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | |||
flatpak |
1.2.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | ||||
gem |
2.5.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | โ | โ | โ | โ | โ | โ | |
mas |
1.6.1 | ๐ | โ | โ | โ | โ | โ | โ | |||||||
npm |
4.0.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | โ | โ | โ | โ | โ | ||
opkg |
0.2.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | ||||
pacaur |
4.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | โ | ||
pacman |
5.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | โ | ||
paru |
1.9.3 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | โ | ||
pip |
10.0.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | โ | โ | โ | โ | |||
pipx |
1.0.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | โ | โ | โ | โ | |||
scoop |
0.2.4 | ๐ช | โ | โ | โ | โ | โ | โ | โ | โ | โ | ||||
snap |
2.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | |||||
steamcmd |
None | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | ||||||||
vscode |
1.60.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | |||||||
yarn |
1.20.0 | ๐ ฑ๏ธ | ๐ง | ๐ | >_ |
๐ช | โ | โ | โ | โ | โ | โ | โ | โ | |
yay |
11.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | โ | ||
yum |
4.0.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ | |||
zypper |
1.14.0 | ๐ ฑ๏ธ | ๐ง | >_ |
โ | โ | โ | โ | โ | โ | โ | โ |
[^bsd_without_macos]: BSD: FreeBSD, NetBSD, OpenBSD, SunOS.
[^linux]: Linux: Linux, Windows Subsystem for Linux v2.
[^unix]: Unix: AIX, Cygwin, GNU/Hurd, Solaris, Windows Subsystem for Linux v1.
Note: Missing manager
If your favorite manager is missing or does not support an operation, you can influence its implementation: open a ticket to document its output or read the contribution guide and submit a pull request.
I can do that work for you if you purchase business support ๐ค or sponsor the project ๐ซถ.
Installation
From sources
Easiest way is to install mpm
from sources with pipx
:
$ pipx install meta-package-manager
Other alternatives installation methods are available in the documentation.
Binaries
Binaries are available so you can skip the installation process above and download the standalone executables directly:
Platform | x86_64 |
---|---|
Linux[^linux] | Download mpm.bin |
macOS | Download mpm.bin |
Windows | Download mpm.exe |
All links above points to the latest released version.
Quickstart
List managers
List all supported package managers and their status on current system (macOS in this case):
$ mpm --all-managers managers
โญโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโฎ
โ Manager ID โ Name โ Supported โ CLI โ Executable โ Version โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโค
โ apm โ Atom's apm โ โ โ โ apm not found โ โ โ
โ apt โ APT โ โ Linux only โ โ /usr/bin/apt โ โ โ โ โ
โ apt-mint โ Linux Mint's apt โ โ Linux only โ โ /usr/bin/apt โ โ โ โ โ
โ brew โ Homebrew Formulae โ โ โ โ /opt/homebrew/bin/brew โ โ โ โ 3.6.3 โ
โ cargo โ Rust's cargo โ โ โ โ /opt/homebrew/bin/cargo โ โ โ โ 1.64.0 โ
โ cask โ Homebrew Cask โ โ โ โ /opt/homebrew/bin/brew โ โ โ โ 3.6.3 โ
โ choco โ Chocolatey โ โ Windows only โ โ choco not found โ โ โ
โ composer โ PHP's Composer โ โ โ โ /opt/homebrew/bin/composer โ โ โ โ 2.4.2 โ
โ dnf โ DNF โ โ Linux only โ โ dnf not found โ โ โ
โ emerge โ Emerge โ โ Linux only โ โ emerge not found โ โ โ
โ flatpak โ Flatpak โ โ Linux only โ โ flatpak not found โ โ โ
โ gem โ Ruby Gems โ โ โ โ /usr/bin/gem โ โ โ โ 3.0.3.1 โ
โ mas โ Mac AppStore โ โ โ โ /opt/homebrew/bin/mas โ โ โ โ 1.8.6 โ
โ npm โ Node's npm โ โ โ โ /opt/homebrew/bin/npm โ โ โ โ 8.19.2 โ
โ opkg โ OPKG โ โ Linux only โ โ opkg not found โ โ โ
โ pacman โ Pacman โ โ Linux only โ โ pacman not found โ โ โ
โ paru โ Paru โ โ Linux only โ โ paru not found โ โ โ
โ pip โ Pip โ โ โ โ ~/.pyenv/shims/python3 โ โ โ โ 22.2.2 โ
โ pipx โ Pipx โ โ โ โ /opt/homebrew/bin/pipx โ โ โ โ 1.1.0 โ
โ scoop โ Scoop โ โ Windows only โ โ scoop not found โ โ โ
โ snap โ Snap โ โ Linux only โ โ snap not found โ โ โ
โ steamcmd โ Valve Steam โ โ โ โ steamcmd not found โ โ โ
โ vscode โ Visual Studio Code โ โ โ โ /opt/homebrew/bin/code โ โ โ โ 1.71.2 โ
โ yarn โ Node's yarn โ โ โ โ /opt/homebrew/bin/yarn โ โ โ โ 1.22.19 โ
โ yay โ Yay โ โ Linux only โ โ yay not found โ โ โ
โ yum โ YUM โ โ Linux only โ โ yum not found โ โ โ
โ zypper โ Zypper โ โ Linux only โ โ zypper not found โ โ โ
โฐโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโฏ
If your favorite manager is not supported yet, you can help! See the contibution guide.
List installed packages
List all packages installed on current system:
$ mpm installed
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฎ
โ Package name โ ID โ Manager โ Installed version โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ github โ github โ apm โ 0.36.9 โ
โ update-package-dependencies โ update-package-dependencies โ apm โ 0.13.1 โ
โ rust โ rust โ brew โ 1.55.0 โ
โ x264 โ x264 โ brew โ r3060 โ
โ atom โ atom โ cask โ 1.58.0 โ
โ visual-studio-code โ visual-studio-code โ cask โ 1.52.0 โ
โ nokogiri โ nokogiri โ gem โ x86_64-darwin โ
โ rake โ rake โ gem โ 13.0.3 โ
โ iMovie โ 408981434 โ mas โ 10.2.5 โ
โ Telegram โ 747648890 โ mas โ 8.1 โ
โ npm โ npm โ npm โ 7.24.0 โ
โ raven โ raven โ npm โ 2.6.4 โ
โ jupyterlab โ jupyterlab โ pip โ 3.1.14 โ
โ Sphinx โ Sphinx โ pip โ 4.2.0 โ
โ ms-python.python โ ms-python.python โ vscode โ 2021.10.1317843341 โ
โ ms-toolsai.jupyter โ ms-toolsai.jupyter โ vscode โ 2021.9.1001312534 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโฏ
16 packages total (brew: 2, pip: 2, apm: 2, gem: 2, cask: 2, mas: 2, vscode: 2, npm: 2, composer: 0).
List outdated packages
List all packages installed for which an upgrade is available:
$ mpm outdated
โญโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฎ
โ Package name โ ID โ Manager โ Installed version โ Latest version โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ curl โ curl โ brew โ 7.79.1 โ 7.79.1_1 โ
โ git โ git โ brew โ 2.33.0 โ 2.33.0_1 โ
โ openssl@1.1 โ openssl@1.1 โ brew โ 1.1.1l โ 1.1.1l_1 โ
โ rake โ rake โ gem โ 13.0.3 โ 13.0.6 โ
โ Telegram โ 747648890 โ mas โ 8.1 โ 8.1.3 โ
โ npm โ npm@8.0.0 โ npm โ 7.24.0 โ 8.0.0 โ
โ pip โ pip โ pip โ 21.2.4 โ 21.3 โ
โ regex โ regex โ pip โ 2021.9.30 โ 2021.10.8 โ
โฐโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโฏ
8 packages total (brew: 3, pip: 2, gem: 1, mas: 1, npm: 1, apm: 0, cask: 0, composer: 0).
Usage
Other subcommands and options are documented in:
- the detailed help screens
- the
list of use-cases
where youโll find inspiration on how to leverage
mpm
power
Project details
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
Built Distribution
Hashes for meta_package_manager-5.11.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28e991b2d848ef9c7901d37690f1f79d901ced4f16775e3d1518229a939caf8a |
|
MD5 | eb635c4a610cc691b8dc14e810aa1be7 |
|
BLAKE2b-256 | c6f7e03ff1db0448484c83d9970b6d06d1d249e1ce1323177e2255d9c6877f9e |
Hashes for meta_package_manager-5.11.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b61b6269c1d4ccce51d541363c35d4cc5edcfb09eee44dcf67bed2d997d2b6c0 |
|
MD5 | 0060d576c84f07e810acd03f96f03ef5 |
|
BLAKE2b-256 | 8553baa2377274a37f6dafabf426bd410e0d02633a825c0f821973bca615d054 |