如何找出系统中的默认包管理器?

问题描述

我开始在我的 linux mint(ubuntu 系统)中管理我的点文件。所以,在这里我正在编写一个 bash 脚本来自动安装我喜欢的应用程序。但我希望该脚本独立于系统。假设当我成为 linux 系统的成熟用户时,我可能想切换到 arch 或其他东西,这就是为什么我想要制作不会引发错误的动态脚本文件,因为我的脚本说要使用 apt or apt-get 包下载应用程序manager 和我的系统有 pacman or dnf 包管理器。

如何找到系统包管理器?

解决方法

如果您想管理多个发行版上的系统,我建议您查看配置管理工具,而不是自己编写一些东西。

学到的技能在其他情况下也很有价值。

ansiblechefpuppet 等配置管理工具已经解决了确定特定发行版的包管理器的问题。 (并且通常会将细节隐藏在更通用的模块中。)

还要记住,即使有了这些信息,您也必须考虑到发行版可以并且确实为同一个包使用不同的名称。 例如。基于 Red Hat 的发行版有一个名为 httpd 的包,用于 apache Web 服务器。基于 Debian 的发行版将改用 apache2 软件包。

同样,配置管理工具允许您为每个分发系列定义变量。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...