meta-package-manager 5.18.0

Creator: bradpython12

Last updated:

Add to Cart

Description:

metapackagemanager 5.18.0

What is Meta Package Manager?

provides the mpm CLI, a wrapper around all package managers
mpm is like yt-dlp, but for package
managers instead of videos
mpm 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 Linux, macOS 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.
Software Bill of Materials: export installed packages to SPDX and CycloneDX SBOM files.
Pin-point commands to a subset of package managers (include/exclude
selectors).
Support plain, versioned 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
2.0.0




🪟











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
🅱️
🐧
🍎
>_
🪟











pkg
1.11
🅱️
🐧
🍎
>_












scoop
0.2.4




🪟











snap
2.0.0
🅱️
🐧

>_












steamcmd
None
🅱️
🐧
🍎
>_
🪟











uv
0.1.45
🅱️
🐧
🍎
>_
🪟











vscode
1.60.0
🅱️
🐧
🍎
>_
🪟











winget
1.7




🪟











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
All installation methods are available in the documentation.
Below are the most popular ones:
macOS
mpm is part of the official Homebrew default tap, so you can install it with:
$ brew install meta-package-manager

Windows
mpm is available in the main repository of Scoop, so you just need to:
> scoop install main/meta-package-manager

From sources
pipx is the cleanest way to install mpm from sources on any platform:
$ pipx install meta-package-manager

Executables
Standalone executables of mpm's latest version are available as direct downloads for several platforms and architectures:



Platform
x86_64
arm64




Linux[^linux]
Download mpm-linux-x64.bin



macOS
Download mpm-macos-x64.bin
Download mpm-macos-arm64.bin


Windows
Download mpm-windows-x64.exe




Quickstart
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).

List managers
If you wonder why your package manager doesn't seems to be identified, you can list all those recognized by mpm with:
$ 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 contribution guide.
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

[^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.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.