跳转到主要内容

🎁 统一所有包管理器的CLI

项目描述

Meta Package Manager

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

什么是元包管理器?


功能

  • 库存和列出系统上可用的所有包管理器。
  • 支持macOS、Linux和Windows。
  • 独立可执行文件适用于Linux、macOS和Windows。
  • 列出已安装的软件包。
  • 列出重复安装的软件包。
  • 搜索软件包。
  • 安装软件包。
  • 删除软件包。
  • 列出过时的软件包。
  • 同步本地软件包信息。
  • 升级所有过时的软件包。
  • 将已安装软件包的列表备份到TOML文件。
  • 从TOML文件恢复/安装软件包列表。
  • 软件物料清单:将已安装的软件包导出到SPDXCycloneDX SBOM文件。
  • 将命令精确到包管理器的子集(包括/排除选择器)。
  • 支持纯文本、版本化和purl软件包指定符。
  • 将输出导出到JSON或打印用户友好的表格。
  • 为Bash、Zsh和Fish提供shell自动完成。
  • 提供Xbar/SwiftBar插件,以便于macOS集成。
  • 因为mpm试图包装所有其他包管理器,所以它成为XKCD #927:标准的另一个病理案例

支持的包管理器和操作

包管理器 最小版本 BSD[^bsd_without_macos] Linux[^linux] macOS Unix[^unix] Windows 已安装 过时 搜索 安装 升级 升级所有 删除 同步 清理
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子系统for Linux v2。

[^unix]: Unix:AIX、Cygwin、GNU/Hurd、Solaris、Windows子系统for Linux v1。

注意:缺少管理器

如果您的首选管理器缺失或不支持某种操作,您可以通过以下方式影响其实现:通过 提交一个工单记录其输出阅读贡献指南 并提交一个pull request。

如果您 购买商业支持 🤝 或赞助项目 🫶,我可以为您完成这项工作。

安装

所有安装方法都在文档中提供。查看所有安装方法

以下是其中最受欢迎的几种:

macOS

mpm 是官方 Homebrew 默认 tap 的一部分,因此您可以使用以下命令进行安装:

$ brew install meta-package-manager

Windows

mpm 可在 Scoopmain 仓库中找到,因此您只需

> scoop install main/meta-package-manager

从源代码安装

pipx 是在任何平台上从源代码安装 mpm 的最干净的方法

$ pipx install meta-package-manager

可执行文件

最新版本的 mpm 的独立可执行文件作为直接下载提供,适用于多个平台和架构

平台 x86_64 arm64
Linux[^linux] 下载 mpm-linux-x64.bin
macOS 下载 mpm-macos-x64.bin 下载 mpm-macos-arm64.bin
Windows 下载 mpm-windows-x64.exe

快速入门

列出已安装的包

列出当前系统上安装的所有包

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

列出过时的包

列出所有可升级的包

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

列出管理器

如果您想知道为什么您的包管理器似乎没有被识别,您可以使用以下命令列出 mpm 识别的所有管理器:

$ 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           │            │           │
╰────────────┴────────────────────┴────────────────┴──────────────────────────────┴────────────┴───────────╯

如果您的首选管理器尚未支持,您可以帮忙!请参阅 贡献指南

用法

其他子命令和选项的文档在

[^bsd_without_macos]: BSD:FreeBSD、NetBSD、OpenBSD、SunOS。

[^linux]: Linux:Linux、Windows子系统for Linux v2。

[^unix]: Unix:AIX、Cygwin、GNU/Hurd、Solaris、Windows子系统for Linux v1。

项目详情


发行历史 发行通知 | RSS 源

下载文件

下载适合您平台的项目文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

meta_package_manager-5.18.0.tar.gz (137.5 kB 查看哈希值)

上传时间 源代码

构建分发

meta_package_manager-5.18.0-py3-none-any.whl (143.1 kB 查看哈希值)

上传时间 Python 3

由以下组织支持