依赖包管理器的存在还是通过下载源安装包?

Inv*_*ath 0 ubuntu shell-script software-installation package-management source-code

我想创建一个脚本,能够在任何 Linux 发行版中安装我想要的一组软件包(最初创建它以在 Ubuntu 中运行,然后将其扩展到任何一个),并且基本上充当环境设置。此类软件包的示例有zsh、omz、fzf、自动完成等...
我的问题是,我是否应该依赖软件包管理器 ( apt-get) 的存在来安装软件包,然后通过脚本或手动调用wget它源文件并继续安装?您认为哪个最好?

Mar*_*ler 5

我建议始终首选本机包管理器来处理需要链接到系统库的任何内容,或者目标系统上的其他内容可能链接到的任何内容。否则,您将需要努力使事情与您所针对的每个平台的发行版怪癖一起工作,并且如果人们尝试使用您的版本与他们安装的软件包的版本,则会导致他们遇到问题需要。

\n

正如@ArtemS.Tashkinov 所说,您需要单独处理每个目标。这确实无法扩展:GNU Radio 社区有一个名为 PyBOMBS 的工具,它试图为少数平台做到这一点。这是一场维护噩梦。对于用户实际上想要隔离前缀的用例,我们应该从一开始就使用现有的前缀管理器(例如 conda)\xc2\xb9,并付出更多努力与官方发行版包维护人员协调,使我们发布的软件可通过 apt 安装、 yum、pacman、emerge、zypper...并且实际上可以完美地开箱即用。

\n

特别是关于您的软件:在任何情况下都不应将手工编译的 zsh 安装到系统路径中。这就是噩梦般的不兼容的根源。只需安装您的发行版带来的 zsh 即可。
\n Linux 发行版是一种软件冲突避免机制,您应该尽可能使用它。从源代码构建东西并安装用户晚上通过包管理器合理安装的东西会导致冲突,从而破坏用户的系统。

\n
\n

\xc2\xb9 这是我个人的看法;PyBOMBS1 和 PyBOMBS2 仍然启用了大量出色的应用程序!拥有它绝对是一件很酷的事情。这是一项巨大的努力,重复了更大的社区已经在做的事情。

\n