我正在尝试编写一个通用脚本,该脚本有时会尝试在 Linux 系统上安装某些软件包。为了处理不同发行版中的不同包管理器,我使用 pacap (https://github.com/icy/pacapt)。
然而,pacap似乎不执行包名翻译。各个发行版的软件包具有不同的命名约定,因此我无法编写单个命令来在不同类型的系统上安装软件包。是否有任何实用程序/网络服务/列表可以用来将包名称从一个发行版转换为另一个发行版?
答案1
不同的发行版不仅有不同的包名称,而且分解包的方式也不同。我认为最好的选择是根据文件而不是包来定义依赖项。例如,如果您需要 perl,请记录您想要的/usr/bin/perl
,而不是perl
。
不幸的是,粗略地看,pacapt 似乎不支持查询哪个包提供给定的文件(-Qo
仅查询已安装的包,而不是可用的包)。这将是一个值得添加的功能。我不知道有任何类似的工具可以做到这一点;对于某些发行版,这可能会很困难,因为它们并不都以合理的形式提供此信息(例如,在 Debian 上,有apt-file
,但某些衍生版本不提供相应的数据库)。这吃豆人罗塞塔列出要使用的命令(pkgfile
在 Arch 上)。