meta-package-manager

🎁 wraps all package managers with a unifying CLI

https://github.com/kdeldycke/meta-package-manager

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • β—‹
    CITATION.cff file
  • βœ“
    codemeta.json file
    Found codemeta.json file
  • βœ“
    .zenodo.json file
    Found .zenodo.json file
  • βœ“
    DOI references
    Found 3 DOI reference(s) in README
  • βœ“
    Academic publication links
    Links to: zenodo.org
  • β—‹
    Committers with academic emails
  • β—‹
    Institutional organization owner
  • β—‹
    JOSS paper metadata
  • β—‹
    Scientific vocabulary similarity
    Low similarity (12.7%) to scientific vocabulary

Keywords

apt cyclonedx flatpak homebrew linux mac-app-store macos npm package-manager package-url php-composer pip ruby-gem sbom snap spdx steam windows xbar yarn

Keywords from Contributors

standardization hack interpretability meshing interaction log-parser interface yolov5s energy-systems exoplanets
Last synced: 6 months ago · JSON representation

Repository

🎁 wraps all package managers with a unifying CLI

Basic Info
Statistics
  • Stars: 528
  • Watchers: 11
  • Forks: 38
  • Open Issues: 34
  • Releases: 70
Topics
apt cyclonedx flatpak homebrew linux mac-app-store macos npm package-manager package-url php-composer pip ruby-gem sbom snap spdx steam windows xbar yarn
Created over 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation

readme.md

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

One CLI to rule them all:

```mermaid

config: {"sankey": {"showValues": false, "width": 800, "height": 400}}

sankey-beta

Meta Package Manager,apm,1 Meta Package Manager,apt,1 Meta Package Manager,apt-mint,1 Meta Package Manager,brew,1 Meta Package Manager,cargo,1 Meta Package Manager,cask,1 Meta Package Manager,choco,1 Meta Package Manager,composer,1 Meta Package Manager,dnf,1 Meta Package Manager,dnf5,1 Meta Package Manager,emerge,1 Meta Package Manager,eopkg,1 Meta Package Manager,flatpak,1 Meta Package Manager,fwupd,1 Meta Package Manager,gem,1 Meta Package Manager,mas,1 Meta Package Manager,npm,1 Meta Package Manager,opkg,1 Meta Package Manager,pacaur,1 Meta Package Manager,pacman,1 Meta Package Manager,paru,1 Meta Package Manager,pip,1 Meta Package Manager,pipx,1 Meta Package Manager,pkg,1 Meta Package Manager,scoop,1 Meta Package Manager,snap,1 Meta Package Manager,steamcmd,1 Meta Package Manager,uv,1 Meta Package Manager,vscode,1 Meta Package Manager,vscodium,1 Meta Package Manager,winget,1 Meta Package Manager,yarn,1 Meta Package Manager,yay,1 Meta Package Manager,yum,1 Meta Package Manager,zypper,1 ```

Metadata and operations

| Package manager | Min. version | BSD[^bsd] | 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 | | | | | | | | | | | | | | | | dnf5 | 5.0.0 | | | | | | | | | | | | | | | | emerge | 3.0.0 | | | | | | | | | | | | | | | | eopkg | 3.2.0 | | | | | | | | | | | | | | | | flatpak | 1.2.0 | | | | | | | | | | | | | | | | fwupd | 1.9.5 | | | | | | | | | | | | | | | | gem | 2.5.0 | | | | | | | | | | | | | | | | mas | 1.8.7 | | | | | | | | | | | | | | | | 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.5.0 | | | | | | | | | | | | | | | | vscode | 1.60.0 | | | | | | | | | | | | | | | | vscodium | 1.60.0 | | | | | | | | | | | | | | | | winget | 1.7 | | | | | | | | | | | | | | | | yarn | 1.20.0 | | | | | | | | | | | | | | | | yay | 11.0.0 | | | | | | | | | | | | | | | | yum | 4.0.0 | | | | | | | | | | | | | | | | zypper | 1.14.0 | | | | | | | | | | | | | | |

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

You can help 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:

shell-session $ brew install meta-package-manager

Windows

mpm is available in the main repository of Scoop, so you just need to:

```pwsh-session

scoop install main/meta-package-manager ```

Python

uv is the fastest way to run mpm from sources on any platform, thanks to its uvx command:

shell-session $ uvx --from meta-package-manager mpm

Executables

Standalone binaries 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 | Download mpm-linux-arm64.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:

```shell-session $ 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:

```shell-session $ mpm outdated

Package name ID Manager Installed version Latest version

curl curl brew 7.79.1 7.79.11
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:

```shell-session $ 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:

[^bsd]: BSD: FreeBSD, MidnightBSD, NetBSD, OpenBSD, SunOS.

[^linux]: Linux: ALT Linux, Amazon Linux, Android, Arch Linux, Buildroot, CentOS, CloudLinux OS, Debian, Exherbo Linux, Fedora, Gentoo Linux, Guix System, IBM PowerKVM, KVM for IBM z Systems, Linux Mint, Mageia, Mandriva Linux, Nobara, openSUSE, openSUSE Tumbleweed, Oracle Linux, Parallels, Pidora, Raspbian, RedHat Enterprise Linux, Rocky Linux, Scientific Linux, Slackware, SUSE Linux Enterprise Server, Tuxedo OS, Ubuntu, Unknown Linux, Windows Subsystem for Linux v1, Windows Subsystem for Linux v2, XenServer.

[^unix]: Unix: Cygwin, GNU/Hurd, IBM AIX, Solaris.<!-- operation-footnotes-end -->

Owner

  • Name: Kevin Deldycke
  • Login: kdeldycke
  • Kind: user
  • Location: ☁︎

Entrepreneur, VP, Engineering Manager, Founding Engineer - Billing, Payments & IAM.

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 4,325
  • Total Committers: 22
  • Avg Commits per committer: 196.591
  • Development Distribution Score (DDS): 0.158
Past Year
  • Commits: 424
  • Committers: 4
  • Avg Commits per committer: 106.0
  • Development Distribution Score (DDS): 0.172
Top Committers
Name Email Commits
Kevin Deldycke k****n@d****m 3,642
dependabot[bot] 4****] 546
Kevin Deldycke k****e@s****m 41
github-actions[bot] 4****] 33
BjΓΆrn Torkelsson t****l@t****e 10
Brian Hartvigsen b****w@b****m 8
Sidney Kuyateh s****3@k****u 8
rgermain c****t@g****r 7
Ivan Poőtić b****p@g****m 6
Hannes h@n****v 5
Rob Eden r****n@g****m 4
ncihnegn n****n 3
is i****t@g****m 3
CouldBeThis 5****s 1
Dilawar Singh d****r@s****h 1
Francis St-Amour f****r@g****m 1
Gutierri Barboza me@g****e 1
Kian-Meng Ang k****g@c****g 1
Mawoka m****a@e****l 1
Csaba Maulis c****s@g****m 1
Niklas Uhl n****l@o****e 1
Aidan Weiss a****s@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 78
  • Total pull requests: 698
  • Average time to close issues: 5 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 30
  • Total pull request authors: 13
  • Average comments per issue: 1.85
  • Average comments per pull request: 1.26
  • Merged pull requests: 401
  • Bot issues: 29
  • Bot pull requests: 680
Past Year
  • Issues: 10
  • Pull requests: 274
  • Average time to close issues: 4 days
  • Average time to close pull requests: 9 days
  • Issue authors: 6
  • Pull request authors: 5
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.77
  • Merged pull requests: 115
  • Bot issues: 6
  • Bot pull requests: 265
Top Authors
Issue Authors
  • github-actions[bot] (32)
  • kdeldycke (12)
  • pdelre (4)
  • rkrug (3)
  • dependabot[bot] (3)
  • grahamperrin (2)
  • paxsali (2)
  • CouldBeThis (2)
  • Lazerbeak12345 (1)
  • dinhanhx (1)
  • Auratelience (1)
  • LoricAndre (1)
  • bit-man (1)
  • wickles (1)
  • micwoj92 (1)
Pull Request Authors
  • dependabot[bot] (584)
  • github-actions[bot] (347)
  • remigermain (12)
  • aidanweiss (2)
  • pthariensflame (2)
  • tresni (2)
  • maiamie (1)
  • ncihnegn (1)
  • kdeldycke (1)
  • izzergh (1)
  • hedinfaok (1)
  • niklas-uhl (1)
  • senki (1)
Top Labels
Issue Labels
πŸ“š documentation (35) πŸ› bug (23) 🎁 feature request (14) πŸ“¦ manager: homebrew (11) πŸ™ help wanted (9) πŸ“¦ manager: mpm (7) ✨ enhancement (5) πŸ–₯ platform: Windows (5) πŸ–₯ platform: Linux (5) πŸ“¦ dependencies (3) πŸ“¦ manager: dpkg-based (3) ❔ question (2) πŸ“¦ manager: scoop (2) πŸ“¦ manager: pip-based (2) πŸ–₯ platform: macOS (2) πŸ€– ci (2) πŸ”Œ bar-plugin (2) πŸ“¦ manager: cargo (1) πŸ“¦ manager: gem (1) πŸ“¦ manager: pacman-based (1) πŸ“¦ manager: npm-based (1) πŸ“¦ manager: dnf-based (1) πŸ“¦ manager: steamcmd (1) πŸ–₯ platform: BSD (1)
Pull Request Labels
πŸ“¦ dependencies (627) πŸ“š documentation (181) πŸ€– ci (74) πŸ†™ changelog (52) πŸ› bug (9) πŸ“¦ manager: homebrew (7) πŸ–₯ platform: macOS (6) ✨ enhancement (5) πŸ“¦ manager: dnf-based (3) 🎁 feature request (2) πŸ“¦ manager: vscode-based (2) πŸ”Œ bar-plugin (2) πŸ“¦ manager: mpm (2) πŸ–₯ platform: Linux (2) 🚫 wont do/fix (1) πŸ“¦ manager: fwupd (1) πŸ“¦ manager: vscode (1) πŸ“¦ manager: flatpak (1) πŸ“¦ manager: pip-based (1) πŸ“¦ manager: gem (1) πŸ“¦ manager: dpkg-based (1)

Packages

  • Total packages: 3
  • Total downloads:
    • homebrew 67 last-month
    • pypi 1,020 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 199
  • Total maintainers: 1
proxy.golang.org: github.com/kdeldycke/meta-package-manager
  • Versions: 100
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 2.8%
Forks count: 4.1%
Average: 6.5%
Dependent packages count: 8.4%
Dependent repos count: 10.6%
Last synced: 6 months ago
pypi.org: meta-package-manager

🎁 wraps all package managers with a unifying CLI

  • Versions: 88
  • Dependent Packages: 1
  • Dependent Repositories: 2
  • Downloads: 1,020 Last month
Rankings
Stargazers count: 3.2%
Dependent packages count: 4.7%
Forks count: 7.1%
Average: 7.2%
Downloads: 9.2%
Dependent repos count: 11.6%
Maintainers (1)
Funding
  • https://github.com/sponsors/kdeldycke
Last synced: 6 months ago
formulae.brew.sh: meta-package-manager

Wrapper around all package managers with a unifying CLI

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 67 Last month
Rankings
Dependent packages count: 19.1%
Stargazers count: 25.6%
Forks count: 28.7%
Average: 40.8%
Dependent repos count: 51.5%
Downloads: 78.9%
Last synced: 6 months ago