我一直在从事这个项目,每个异常都已得到纠正,唯一剩下的似乎是 docker 限制,但我仍然会在这里试试运气,以防还有其他办法。
-> 我已经为 CentOS 7 创建了一个容器,我的指令是使用 yum 从主机安装一个包,因此,我正在执行以下操作:
docker exec <container-name> yum install -y <package-name>
如果我们为包名称提供一个首字母,这似乎可以正常工作,为了方便起见,假设我正在尝试安装 elinks,因此:
docker exec <container-name> yum install -y elinks
但是,如果我提供完整的包名称,则一切正常:
docker exec <container-name> yum install -y elinks-0.12-0.37.pre6.el7.0.1.x86_64.rpm
或者,使用通配符来帮助我:
docker exec <container-name> yum install -y elinks*
我收到此错误:
没有可用的软件包 elinks-0.12-0.37.pre6.el7.0.1.x86_64.rpm。
这对我处理异常时的工作造成了阻碍
有没有更简单的方法可以解决这个问题?如果我比其他人先发现什么,我一定会在这里发布。
谢谢!
对于所需的任何其他信息,请随时发表评论,我已经在许多不同实例中测试了相同的内容,但结果是一样的,似乎 docker 无法处理完整的包名称。
答案1
好的,我想,我明白了,显然,docker 正在完成软件包名称及其扩展名,即“.rpm”
而且,如果我们提供扩展名和包名称,似乎就无法使用 yum 安装包。
解决方案相当简单,我必须创建一个 shell 脚本,从包名称中删除额外的“.rpm”并在容器上运行它,这对我来说很有效。
希望这些信息对您有帮助。谢谢!
答案2
我必须创建一个 shell 脚本,从包名称中删除额外的“.rpm”并在容器上运行它,这对我来说很有效。