Meta Package Manager

🎁 wraps all package managers with a unifying CLI

Meta Package Manager

Last release Python versions Type checked with mypy Unittests status Coverage status Documentation status DOI

What is Meta Package Manager?


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

Executables

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

Platform x86_64
Linux[^linux] Download mpm-linux-x64.bin
macOS Download mpm-macos-x64.bin
Windows Download mpm-windows-x64.exe

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       
 [email protected]   [email protected]  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           [email protected]    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:

Popular Package Manager Projects
Popular Steam Projects
Popular Package Managers Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Steam
Package Manager