What is Meta Package Manager?
mpm
CLImpm
is like yt-dlp
, but for package managers instead of videosmpm
solves XKCD #1654: Universal Install Scriptmpm
try to wrap all other package managers, it became another pathological case of XKCD #927: StandardsPackage manager | Min. version | macOS | Linux | Windows | sync |
installed |
search |
install |
outdated |
upgrade |
cleanup |
---|---|---|---|---|---|---|---|---|---|---|---|
apm |
1.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
apt |
1.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
apt-mint |
1.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
brew |
2.7.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
cask |
2.7.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
choco |
0.10.4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
composer |
1.4.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
flatpak |
1.2.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
gem |
2.5.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
mas |
1.6.1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
npm |
4.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
opkg |
0.2.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
pip |
10.0.0 | ✓ | ✓ | ✓ | ✓ | ✘* | ✓ | ✓ | ✓ | ||
snap |
2.0.0 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
vscode |
1.60.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
yarn |
1.21.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Install mpm
with pip
:
$ pip install meta-package-manager
Other alternatives installation methods are available in the documentation.
List all supported package managers and their status on current system (macOS in this case):
$ mpm -a managers
┌────────────────────┬──────────┬─────────────────┬────────────────────────────┬────────────┬───────────┐
│ Package manager │ ID │ Supported │ CLI │ Executable │ Version │
├────────────────────┼──────────┼─────────────────┼────────────────────────────┼────────────┼───────────┤
│ Atom's apm │ apm │ ✓ │ ✓ /usr/local/bin/apm │ ✓ │ ✓ 2.6.2 │
│ APT │ apt │ ✘ Linux only │ ✓ /usr/bin/apt │ ✓ │ ✘ │
│ Linux Mint's apt │ apt-mint │ ✘ Linux only │ ✓ /usr/bin/apt │ ✓ │ ✘ │
│ Homebrew Formulae │ brew │ ✓ │ ✓ /usr/local/bin/brew │ ✓ │ ✓ 3.2.15 │
│ Homebrew Cask │ cask │ ✓ │ ✓ /usr/local/bin/brew │ ✓ │ ✓ 3.2.15 │
│ Chocolatey │ choco │ ✘ Windows only │ ✘ choco not found │ │ │
│ PHP's Composer │ composer │ ✓ │ ✓ /usr/local/bin/composer │ ✓ │ ✓ 2.1.8 │
│ Flatpak │ flatpak │ ✘ Linux only │ ✘ flatpak not found │ │ │
│ Ruby Gems │ gem │ ✓ │ ✓ /usr/bin/gem │ ✓ │ ✓ 3.0.3 │
│ Mac AppStore │ mas │ ✓ │ ✓ /usr/local/bin/mas │ ✓ │ ✓ 1.8.3 │
│ Node's npm │ npm │ ✓ │ ✓ /usr/local/bin/npm │ ✓ │ ✓ 7.24.0 │
│ OPKG │ opkg │ ✘ Linux only │ ✘ opkg not found │ │ │
│ Pip │ pip │ ✓ │ ✓ /usr/local/bin/python3 │ ✓ │ ✓ 21.2.4 │
│ Snap │ snap │ ✘ Linux only │ ✘ snap not found │ │ │
│ Visual Studio Code │ vscode │ ✓ │ ✓ /usr/local/bin/code │ ✓ │ ✓ 1.60.2 │
│ Node's yarn │ yarn │ ✓ │ ✘ yarn not found │ │ │
└────────────────────┴──────────┴─────────────────┴────────────────────────────┴────────────┴───────────┘
More documentation is available in:
mpm
power本文记录一下我在研究Android的meta-data所得的一些收获和坑,希望大家少走弯路。 项目中集成一些第三方的API时,按其官方文档,经常需要在AndroidManifest文件中的application标签下加上meta-data配置。 比如如下友盟的配置: 一、meta-data的配置和动态获取 <application android:name=".MyAppl
支持 admin 升级 Cloudera Manager Agent 软件包 Install Agents 所有主机上的安装均失败。 已成功完成 1 个主机中的 0 个。 安装失败后已在 1 主机上卸载。 主机名称 IP 地址 进度 状态 poem1 192.168.22.136 重试 | 详细信息 安装失败。 已卸载。 × 无法安装 cloudera-manager-agent 包
https://rocketboards.org/foswiki/Documentation/YoctoDoraBuildWithMetaAltera Introduction Yocto 2.0 Jethro Setup Repos Prepare for and configure the build Configure bblayers.conf Configure local.conf B
/tmp/scm_prepare_node.K0tOAFSy using SSH_CLIENT to get the SCM hostname: 10.221.5.140 33607 22 opening logging file descriptor 正在启动安装脚本... 正在获取安装锁... BEGIN flock 4 END (0) 正在检测根权限... effective UI
1、获取application中指定key的meta-data值 public static String getApplicationMetadata(Context context,String metaDataKey) { ApplicationInfo info = null; try { PackageManager pm
Weka 3.8 软件包管理器 出现“ There was a problem establishing the package meta data cache.We'll try to use the repository directly.”的错误信息, 在文件夹:C:\Users\Administrator\wekafiles\props 中: 新建文件PackageRepository.p
描述 (Description) 此函数将当前符号表的名称更改为NAME。 包名称的范围是封闭块的末尾。 如果省略NAME,则没有当前包,并且必须使用其完全限定名称声明所有函数和变量名称。 语法 (Syntax) 以下是此函数的简单语法 - package NAME package 返回值 (Return Value) 此函数不返回任何值。 要了解package关键字检查Perl Modules
meta 模块可用于声明单个页面的元信息,通常是一些页面级别的配置,如容器的显示宽度 (viewport) 等。默认情况下,应用无需修改此配置。 setViewport Weex 容器默认的宽度 (viewport) 是 750px,通过 setViewport 方法可以改变页面的显示宽度,仅对当前页面生效。 setViewport(options) @options width,number,具
此函数用于查看是否有任何元数据与对象关联。 语法 (Syntax) 以下是语法。 (meta obj) Parameters - 'obj'是需要检查的对象,如果有任何元数据与之关联。 Return Value - 返回obj的元数据,如果没有元数据则返回nil。 例子 (Example) 以下程序显示了如何使用它的示例。 (ns clojure.examples.example (:ge
[meta] A stack. A framework. A conversation. Meta is developed and maintained by Degree9 What is [meta]? [meta] is a stack for building software using Clojure(Script). Why [meta]? We built [meta] out
节点包管理器(NPM)提供两个主要功能 - 可在search.nodejs.org上搜索的node.js包/模块的联机存储库 用于安装Node.js包的命令行实用程序,执行Node.js包的版本管理和依赖关系管理。 在v0.6.3版本之后,NPM捆绑了Node.js可安装程序。 要验证相同,请打开控制台并键入以下命令并查看结果 - $ npm --version 2.7.1 如果您运行的是旧版本
Tiny Package Manager A very very simple demo and guide for explaining package manager. Introduction As a JavaScript developer, you may use package manager like npm or Yarnfrequently. However, do you k