无需 root 身份即可使用 apt 在 Ubuntu 上安装软件?

无需 root 身份即可使用 apt 在 Ubuntu 上安装软件?

我在许多 HPC 集群上都有帐户。这些机器的安装最少,管理员不会添加太多其他内容。我需要安装许多典型软件。通常我会使用 apt 来执行此操作,但我当然没有这些机器上的 root 权限。一些替代方案:

  1. 管理员推荐了spack。然后他们私下告诉我,每个人都讨厌 spack 并避免使用它。对我来说,它失败了。
  2. 下载源代码,自己编译+安装。这很烦人,很难更新,而且并非所有软件包都易于移动其安装位置。
  3. 不行。似乎会自动执行 (2)。有人说没有 root 权限很难安装。不知道……
  4. OverlayFS?有没有办法让系统相信我在所有地方都有 root 权限?
  5. 无根 Docker。最终,我开发的软件需要在集群上运行。它不能放在容器中。而且我使用了无数个 GPU,这对于 Docker 来说比较棘手。

这应该是一个常见问题。大多数公司不会向所有人授予 root 访问权限。在没有任何 root 权限的情况下安装软件的最佳方法是什么?

答案1

Spack 和 Nix 一样,可以自动执行 (2),但允许您针对外部包(如系统 MPI、数学库等)进行构建。它还为您提供了有关版本、编译器和构建其他方面的更多灵活性。老实说,它是为这种用例创建的(免责声明:由我创建!)。社区很支持;如果您遇到构建问题,您可能会很快获得帮助打包松弛。它很活跃;上面有大约 2,500 名用户。

其他不错的选择有:

  1. 易建,也将从源代码构建(社区较小,更针对管理员和模块)
  2. Conda、conda-forge 或 mamba(具有更快解算器的 conda)。仅限二进制,不会使用系统 MPI 构建,不太可能包含您可能需要的所有 HPC 软件。
  3. Linuxbrew与 Conda 类似的问题,根本不关注科学软件。

答案2

听起来像是 XY 问题。

我在许多 HPC 集群上都有账户

....您需要在哪里维护软件?那么您应该认真考虑使用编排工具。

无根 Docker

Docker?你不需要更改 Docker 软件,只需构建一个新的并重新部署即可。

如果由于某些您没有说明的模糊原因,这是正确的做法(我持怀疑态度),那么您必须已经在主机上运行无人值守升级 - 设置您自己的 ppa 并使用元包/依赖项来定义要安装/维护的附加包。

相关内容