我们有几台机器想要在其上运行相同的 Singularity 容器。由于我们已经在每台机器上安装了 NAS,因此我们认为这将是存储它的好地方,而无需考虑分发。
最初,我们放了一个只读容器来测试,结果是成功的。然后我们需要在容器内安装额外的系统包。因此,我们直接在NAS上构建一个新的沙箱容器(我们拥有NAS的root权限)。但是,我们无法在沙箱中安装软件包(奇点 shell 是使用写入标志-w
和 root 权限启动的)并收到以下错误。例如,从yum update
沙箱内部开始:
error: cannot get shared lock on /var/lib/rpm/Packages
error: cannot open Packages index using db5 - Operation not permitted (1)
error: cannot open Packages database in /var/lib/rpm
Error: Error: rpmdb open failed
当我们在其中一台机器本地构建沙箱容器并访问它时,我们可以通过包管理器安装软件。
为了进行设置,我们执行这些命令。第一个从图像库构建沙箱。在本例中是AlmaLinux 8(我们也尝试了CentOS 7,但它也有同样的问题)。然后我们以shell模式进入沙箱来安装软件包。
singularity build --sandbox al8.6-sandbox library://library/default/almalinux:8
singularity shell -w -B /mnt:/mnt al8.6-sandbox
NAS 出现错误的原因可能是什么?